matze1508
Goto Top

Excel Makro : Erst prüfen bei erfolgreicher IF einen Wert überschreiben

Guten Tag allerseits,

ich hab heute festgestellt das Datenbanken + Programm + kein Konzept viel Arbeit bedeutet-.-

Nun zur Thematik:

Ich versuche eine Abfrage zu gestalten wo eine Spalte durchlaufen werden soll und bei jedem Unbekannten Wert soll dieser Wert überschrieben werden mit einem Wert aus einer anderen Tabelle. Unten bekommt ihr Screens.
Bisher haut er mir bei Zeile 16 Methode "range" für das Objekt ist fehlgeschlagen.

Sub Makro1()
'  
' Makro1 Makro  
'  

'  
Dim x As Integer    'hochzählvar der tab1  
Dim c As String     'Vergleichsvariable  
Dim y As Integer    'Kopieren der NR  
Dim z As Integer    'hochzählvar der tab2  
Dim b As String     'Übergabe String  
 
Sheets("01.01.16").Select  

While (x < 1500)
    c = Range("B(x)").Value  
    
    If (c <> "(Unbekannt)") Then  
     x = x + 1
     Else
    
    y = Range("A(x)").Select  
    Sheets("Tabelle2").Select  
    
    While (y <> Range("A(z)"))  
    z = z + 1
    
    b = Range("A(z)").Select  
    
    Sheets("01.01.16").Select  
    Range("Bx").Select = b  
       
    Wend
    End If
    
Wend
End Sub

Viele Grüße,
Matze
1
2

Content-ID: 305249

Url: https://administrator.de/contentid/305249

Ausgedruckt am: 23.11.2024 um 04:11 Uhr

129413
Lösung 129413 24.05.2016 aktualisiert um 11:10:36 Uhr
Goto Top
Da sind ja auch jede Menge Fehler drin face-smile

Ohne das ganze überflüssige gedöns, machst du das so
With Sheets("01.01.16")  
    for each cell in .Range("B2:B" & .Cells(Rows.Count,"B").End(xlUp).Row)  
        if cell.Value = "(Unbekannt)" then  
           cell.Value = Sheets("Tabelle2).Cells(cell.Row,2).Value  
       end if
    Next
End with
Mit Range.Find ließe sich das übrigens alternativ auch noch schneller machen.

Gruß skybird
Matze1508
Matze1508 24.05.2016 um 11:30:29 Uhr
Goto Top
Woaw das es so einfach geht hätte ich nicht gedacht 1000 dank !!
Aximand
Aximand 24.05.2016 um 12:12:39 Uhr
Goto Top
Hi Matze,

ich bin gerade auch dabei, Fuß im VBA zu fassen. Was ich aus eigener Erfahrung Dir ans Herz legen kann ist, dass die die Variablen ihrer Zugehörigkeit entsprechend kennzeichnen solltest:

also strc, inty ....

Ansonsten hat mir das snippet von skybird auch genutzt ^^
Matze1508
Matze1508 25.05.2016 um 10:54:32 Uhr
Goto Top
ich hab immer meinen Pseudocode nebenher liegen daher für die Kniffelzeit sind es Müllvariablen danach ist das schön coden dran ;)