Per Excel VBA eine Zeile mit einer Spalte vergleichen :) Hilfe :O

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!

0

Andere dein If mal ab:

If Tabelle1.Cells(i, 1) = Tabelle2.Cells(1, 1) Then

Laufzeitfehler 1004

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:

  • Ein Argument enthält einen ungültigen Wert. Eine häufige Ursache dieses Problems ist der Zugriffsversuch auf ein Objekt, das nicht existiert (wenn Sie z.B. versuchen, Workbooks(5) zu verwenden, obwohl nur drei Arbeitsmappen geöffnet sind).
  • Die Methode kann im angewendeten Zusammenhang nicht verwendet werden. Bei einigen Methoden des Range-Objekts ist es beispielsweise erforderlich, dass der Bereich Daten enthält. Ist dies nicht der Fall, schlägt die Methode fehl.
  • Ein externer Fehler ist aufgetreten, wie z.B. ein Fehler beim Lese- oder Schreib-Zugriff auf eine Datei.

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!

0
@Iamiam

zu copy/paste siehe meinen letzten Kommentar in der AW von Paule!

0

Nun erscheint eine Fehlermeldung :(

Screenshot - (Microsoft Excel, VBA, Marco)

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?

0

Ich mein Natürlich Zelle mit Spalte Entschuldigung :) Zeile = Zelle ^^... i1 =i....