Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1784to1788
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Innere Schleife verlassen wenn

Innere Schleife verlassen wenn
15.10.2020 14:51:09
Timo
Hallo zusammen,
ich stehe auf dem Schlauch. Vllt kann jmd helfen.
Mein Makro vergleicht die Spalte A von Tabelle1 mit der Spalte A von Tabelle2.
Für jede Zeile der Spalte A aus Tabelle 1 soll geprüft werden, ob dieser Wert in Spalte A der Tabelle2 vorhanden ist. Wenn alle Zeilen durchlaufen sind und keine Übereinstimmung gefunden, dann soll der Wert in eine Tabelle3 übertragen werden (hier sammel ich die Werte ohne Übereinstimmung).
Leider habe ich einen Fehler gemacht, finde ihn aber nicht.
Sub Abgleich()
Dim zeile1 As Variant
Dim zeile2 As Variant
Dim erstefreiezeile As Variant
Dim t1 As String
Dim t2 As String
erstefreiezeile = Sheets("Tabelle3").Cells(1048576, 1).End(xlUp).Row + 1
t1 = "Tabelle1"
t2 = "Tabelle2"
For zeile1 = 7 To 100
For zeile2 = 2 To 80
If Sheets(t1).Cells(zeile1, 1).Value = Sheets(t2).Cells(zeile2, 1) Then
Else
Sheets(t1).Cells(zeile1, 1).Copy Destination:=Sheets("Tabelle3").Cells( _
erstefreiezeile, 1)
End If
Next zeile1
Next zeile2
End Sub

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Innere Schleife verlassen wenn
15.10.2020 15:22:26
Gerd
Hallo Timo!
Sub Abgleich2()
Dim zeile1 As Long
Dim zeile2 As Long
Dim erstefreiezeile As Long
Dim t1 As String
Dim t2 As String
Dim blnvorhanden As Boolean
erstefreiezeile = Sheets("Tabelle3").Cells(1048576, 1).End(xlUp).Row + 1
t1 = "Tabelle1"
t2 = "Tabelle2"
For zeile1 = 7 To 100
blnvorhanden = False
For zeile2 = 2 To 80
If Sheets(t1).Cells(zeile1, 1).Value = Sheets(t2).Cells(zeile2, 1) Then
blnvorhanden = True
Exit For
End If
Next zeile2
If Not blnvorhanden Then
Sheets(t1).Cells(zeile1, 1).Copy Destination:=Sheets("Tabelle3").Cells( _
erstefreiezeile, 1)
erstefreizeile = erstefreiezeile + 1
End If
Next zeile1
End Sub
Kennst du ZÄHLENWENN bzw. Worksheetfunction.CountIf ?
Gruß Gerd
Anzeige
AW: Innere Schleife verlassen wenn
15.10.2020 15:42:15
Timo
Hi Gerd, vielen Dank dir!
CountIf kenne ich; bringt mir an der Stelle aber nichts, da ich ja die Werte haben möchte von Nichtübereinstimmungen und nicht die Anzahl von Nichtübereinstimmungen...
Dein Code funktioniert gut. Jedoch schreibt er mir immer nur den letzten Wert einer Nichtübereinstimmung in Tabelle3. Ich möchte aber JEDEN Wert haben, der keine Übereinstimmung findet.
Hast du noch eine Idee? Ich grüble ebenfalls kräftig weiter...
Habe mal eine Beispielmappe angehängt.
https://www.herber.de/bbs/user/140893.xlsm
Anzeige
AW: Innere Schleife verlassen wenn
15.10.2020 15:28:01
UweD
Hallo
keine 2 Schleifen

Sub Abgleich()
Dim zeile As Variant
Dim efz1 As Variant, efz3 As Variant
Dim t1 As Worksheet, t2 As Worksheet, t3 As Worksheet
Set t1 = Sheets("Tabelle1")
Set t2 = Sheets("Tabelle2")
Set t3 = Sheets("Tabelle3")
efz1 = t1.Cells(t1.Rows.Count, 1).End(xlUp).Row
efz3 = t3.Cells(t3.Rows.Count, 1).End(xlUp).Row + 1
For zeile = 7 To efz1
If WorksheetFunction.CountIf(t2.Columns(1), t1.Cells(zeile, 1).Value) = 0 Then
t1.Cells(zeile, 1).Copy Destination:=t3.Cells(efz3, 1)
efz3 = efz3 + 1
End If
Next zeile
End Sub

LG UweD
Anzeige
AW: Innere Schleife verlassen wenn
15.10.2020 15:47:42
Timo
großes Sorry, habe deine letzte Antwort überlesen!
AW: Innere Schleife verlassen wenn
15.10.2020 15:48:45
Timo
Und die funkt wie geschmiert. jetzt werde ich versuchen deinen Lösungsweg nachzuvollziehen. Vielen Dank Gerd!
AW: Innere Schleife verlassen wenn
15.10.2020 16:04:00
UweD
Hallo nochmal
Es durchsucht Zeilenweise (ab 7 bis zur Letzten), wie oft der jeweilige Wert in der 2. Tabelle in Spalte A vorkommt.
Dabei ist es ja egal in Welcher Zeile.
Bei Anzahl=0 wird kopiert
LG UweD
AW: Innere Schleife verlassen wenn
15.10.2020 16:37:20
Timo
Achso, clever. Danke UweD!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige