Per Excel VBA eine Zeile mit einer Spalte vergleichen :) Hilfe :O
Ich versuche gerade ein Programm zu schreiben das eine Zeile mit einer Spalte vergleicht. Nun ic bin gerade noch am Anfang des Programmes und nicht sehr erfolgreich. Das Prizip ist es die Zeile (in Tabelle2) mit der Spalte(bzw. erstmal mit der Zelle(in Tabelle1)zu vergleichen). Die Zeile in Tabelle1 wird so gebildet das A und i zsm eine zeile angeben und i als Variable für die Forschleife dient. Das heißt das Programm geht Zeile für Zeile durch und sucht nach einer Zahlenübereinstimmung. Falls was gefunden wurde soll er erstmal per MsgBox ein Simples Test ausgeben damit ich weiß das es Funktioniert. Ich muss zugeben das ich VBA erst vor 3 Tagen angefangen habe zu Lernen. Dehalb seid nicht so Streng mit Fehlern zu mir :D ich hoffe ihr konnte mich helfen mfg Dennis :)
Sub CommandButton1_Click()
Dim i1 As Integer
i = 1
For i = 1 To 100
If Tabelle1.Cells(1 & i) = Tabelle2.Cells(1, 1) Then
MsgBox "Test"
End If
Next i
End Sub
5 Antworten
Sub VergleichenZelle_
Spalte()
dim Z 'hier für Zelle
for each Z in Activesheet.Range("A1:A10") 'VBA erkennt Zelle als Untereinheit von Range
if z.value = Worksheets("Tabelle2).cells(1, 1).value then
'Cells:(zeile, Spalte), Range:("Spalte:Zeile") auch könnte man sich das .value sparen, weil Vorgabeargument, ist aber der Klarheit wegen nicht zu empfehlen.
MSGbox "Treffer in: " & z.Address
else 'leer lassen oder gar kein else
end if
Debug.print "erledigt: " & z.Address external:=true & " mit " & z.value
' ist nur ein Beispiel, was man im Direktfenster tracen kann
Next i ' i nicht nötig, bei verschachtelten Schleifen später aber besser verstehbar
end sub
das ist als Anregung gedacht, das Direktfenster zum Tracen zu nutzen sowie ein paar andere Anregungen. Habe das auf 10 Zellen begrenzt, danit im Fenster besser kontrollierbar.
sorry, ich hab gelesen : eine ZELLE mit einer Spalte vergleicht! Du willst also A2 mit B1, A3 mit C1, A4 mit D1 usw vergleichen? Dann doch nicht FOR EACH Z (obwohl das etwas komplizierter auch ginge, sondern For i = 2 to 10 Step 1
...
if activesheet.cells(i, 1),value <> Worksheets("Tabelle2").cells(1, i).value then
MSGBOX activesheet.cells(i, 1),address & " abweichend von " _
Worksheets("Tabelle2").cells(1, i).address external:=true
end if
...
Hab ich Dich so richtig verstanden?
in der AW oben sind übrigens zwei Fehler:
1.fehlt ein Gänsefüßchen, muss heissen: Worksheets("Tabelle2")...
2. muss es heißen Next Z (nicht next i)
dürfte sich aber ohnehin erledigt haben.
Du musst Dich darauf einstellen, dass Du seeehhhr viele Fehlermeldungen kriegst, das ist der tägliche Frust des Hobby-Programmierers, da muss man resistent werden ... aber das bringt einen auch weiter!
Andere dein If mal ab:
If Tabelle1.Cells(i, 1) = Tabelle2.Cells(1, 1) Then
Laufzeitfehler 1004
Nun erscheint eine Fehlermeldung :(

Du solltest dir angewöhnen eine Antwort zu kommentieren und nicht immer wieder auf deine eigene Frage zu antworten. so kommt alles durcheinander.
Warum deklarierst du den Integer i1 nutzt dann aber in deiner if-Bedingung aber i?
Und warum hast du die For-Schleife entfernt?
Ich mein Natürlich Zelle mit Spalte Entschuldigung :) Zeile = Zelle ^^... i1 =i....
1004 Die '[Methodenname]'-Methode des '[Objektname]'-Objekts ist fehlerhaft. Die Methode kann nicht auf das Objekt angewendet werden. Mögliche Gründe dafür können folgende sein:
Weitere Informationen zu der Methode finden Sie in der Hilfe unter dem Namen der Methode.
aus:
http://xlam.ch/pos/vbaerror.htm
aber im inet findest du mit den Stichworten laufzeitfehler VBA Liste jede Menge!
ich kann den Screenshot übrigens nicht lesen, mach dafür die Schrifteinstellung im Editor größer!