Hi Leute,
ich suche jetzt schon seit Stunden den Fehler und finde ihn nicht.
Im Prinzip habe ich 2 Tabellen (Quelle und Ziel).
Dort vergleiche ich nach einer Suche die Zellen der Quelldatei mit den Gefundenen Zellen der Zieldatei.
Nach der Suche erhalte ich also eine QZeile aus der Quelldatei und eine ZZeile aus der Zieldatei.
Das Funktioniert.
Nun möchte ich die einzelnen Zellen aus beiden Zeilen vergleichen.
Dazu mache ich eine Schleife in der ich die Spalten ("A", "B" usw durch Cells mit 1,2,3..) durchsuche.
Mein Problem dabei ist, das die Variablen QZelle und ZZelle immer leer sind, obwohl der Werte der einzelnen Variablen in der Zeile stimmen, wenn ich sie mit dem Curser überfahre.
Spalte =4 ; QZeile =3 ; ZZeile =60 und Cells zeigt mir den entsprechenden Wert (z.B.: M-12345678)
QZelle = Workbooks(QName.Name).Worksheets(QSheet.Name).Range(Cells(QZeile, Spalte)).Value
ZZelle = Workbooks(ZName).Worksheets(ZSheet).Range(Cells(ZZeile, Spalte)).Value
Also sollte mir doch die Variable QZelle auch M-12345678 Anzeigen oder?
Wo mache ich den Fehler?
Als ich noch die Zellen mit:
QZelle = Workbooks(QName.Name).Worksheets(QSheet.Name).Range("A" & QZeile).Value
ZZelle = Workbooks(ZName).Worksheets(ZSheet).Range("A", ZZeile).Value
angesprochen hatte, wurden mir die Werte angezeigt.
Dann müsste ich aber 30x die selbe Befehlsfolge mit ABCD.. machen. Um das zu vermeiden ist doch Cells da.
Was ich auch nicht verstehe ist das wenn ich das erste End if drinnen lasse, zeigt er mit den Fehler "End if ohne If" an obwohl das If direkt darüber steht?
Ich möchte aber das wenn die beiden Zellen leer sind das Goto ausgeführt wird, sollten aber nicht beide Leer sin, soll es die Beiden Vergleichen
Ich hhoffe ihr könnt mir Helfen. Ich weiß nicht weiter.
Danke
Dim QZelle As String 'Zelle in der Quelldatei
Dim ZZelle As String 'Zelle in der Zieldatei
Dim WahlTxt As String ' Text in der Auswahlbox (MsgBox)
Dim Spalte As Byte 'Die Variable legt die Spalten (ABCDE...)fest (Byte= max 255)
For Spalte = 1 To 28
QZelle = Workbooks(QName.Name).Worksheets(QSheet.Name).Range(Cells(QZeile, Spalte)).Value
ZZelle = Workbooks(ZName).Worksheets(ZSheet).Range(Cells(ZZeile, Spalte)).Value
If (QZelle = "") And (ZZelle = "") Then GoTo WahlNein
' End If
If (Workbooks(QName.Name).Worksheets(QSheet.Name).Range(Cells(QZeile, Spalte)).Value = Workbooks(ZName).Worksheets(ZSheet).Range(Cells(ZZeile, Spalte)).Value) = False Then
GoTo Auswahl
Else: GoTo WahlNein
End If
Auswahl: ' Auswahl Quell Ziel Zelle
WahlTxt = "Quelle: " & vbCr & QZelle & vbCr & "Ziel: " & vbCr & ZZelle
If MsgBox(WahlTxt, vbYesNo Or vbQuestion, "Auswahl") = vbYes Then 'Ja = Übernahme der Quellwerte
Workbooks(ZName).Worksheets(ZSheet).Range(Cells(ZZeile, Spalte)) = Workbooks(QName.Name).Worksheets(QSheet.Name).Range(Cells(QZeile, Spalte)).Value
WahlNein: End If ' Wenn Nein, bleib der Zielwert erhalten
Next
|