Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1620to1624
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

Schleife kopiert selbe Zeile mehrmals

Schleife kopiert selbe Zeile mehrmals
23.04.2018 14:50:56
Jan
Hallo Leute,
in einer Schleife vergleiche ich für jede Zeile einen Wert von einer Arbeitsmappe mit dem Wert einer anderen Arbeitsmappe.
Wenn dieser Wert NICHT in beiden vorkommt UND in Spalte P (16) das Wort "xy" vorkommt, soll die gesamte Zeile kopiert werden und in die Arbeitsmappe "MeineAM.xlsm" eingefügt werden.
Ich kann den folgenden Code ausführen, allerdings wird jede Zeile nicht nur einmal kopiert und eingefügt, sondern sehr viel öfter.
Ich gehe davon aus dass der Fehler im Fett markierten Teil liegt. Ist die Suche nach dem Wort "xy" vielleicht nicht richtig, habt ihr eine Ahnung?
Danke.
Es handelt sich hierbei nur um einen Ausschnitt. Einige Deklarationen sind hier also nicht zu sehen.
For y = 4 To letzteZeile
For a = 6 To letzteZeile2
Dim Result As Range
Set Result = xlSheet.Cells(y, 16).Find(what:="xy")
If xlSheet.Cells(y, 1).Value xlSheet2.Cells(a, 2).Value And Not Result Is Nothing Then
Dim letzte As Long
letzte = Workbooks("MeineAM.xlsm").Worksheets(1).Cells(Rows.Count, 2).End(xlUp).Row
letzte = letzte + 1
Application.WindowState = xlNormal
xlSheet.Rows(y).Copy
With Workbooks("MeineAM.xlsm").Worksheets(1).Rows(letzte & ":" & letzte)
.PasteSpecial xlPasteValuesAndNumberFormats
.PasteSpecial xlPasteFormats
.PasteSpecial xlPasteColumnWidths
End With
End If
Next
Next

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife kopiert selbe Zeile mehrmals
23.04.2018 15:48:25
mmat
Hallo,
das .find ist nicht das Problem.
Für jede Zeile wo die beiden Vergleichzellen nicht übereinstimmen wird einmal kopiert. Das dürfte wohl der Regelfall sein.
Probier das mal (ungetestet):
Sub vgl()
Dim gefunden As Boolean
Dim Result As Boolean
Dim letzte As Long
For y = 4 To letzteZeile
gefunden = False
For a = 6 To letzteZeile2
If xlSheet.Cells(y, 1).Value = xlSheet2.Cells(a, 2).Value Then gefunden = True: Exit For
Next
Result = Cells(y, 16) = "xy"
If Not (gefunden) And Result Then
letzte = Workbooks("MeineAM.xlsm").Worksheets(1).Cells(Rows.Count, 2).End(xlUp).Row + 1
Application.WindowState = xlNormal
xlSheet.Rows(y).Copy
With Workbooks("MeineAM.xlsm").Worksheets(1).Rows(letzte)
.PasteSpecial xlPasteValuesAndNumberFormats
.PasteSpecial xlPasteFormats
.PasteSpecial xlPasteColumnWidths
End With
End If
Next
End Sub

Anzeige
AW: Schleife kopiert selbe Zeile mehrmals
24.04.2018 09:36:45
Jan
Zunächst danke für die Antwort.
Leider funktionierts nicht. Es wird ohne Fehlermeldung ausgeführt aber es wird nichts gemacht. Alle Zellen sind leer.
AW: Schleife kopiert selbe Zeile mehrmals
24.04.2018 15:38:47
mmat
Hallo Jan,
sorry, das war wirklich sehr quick und dirty, eine Möglichkeit zum testen hab ich ja nicht.
Wichtig ist, dass du die Änderung der Struktur verstehst. Erst werden alle Zeilen durchsucht und geguckt, ob der Wert da irgendwo erscheint. (Ergebnis in "gefunden")
Dann wird nach dem xy geguckt (Vergleich des Zellinhalts komplett. Wenn xy nur ein Teil des Inhalts der geprüften Zelle ist, muß hier noch eine Änderung hin.)
Nur wenn nix gefunden wurde und xy gesetzt ist, wird einmal kopiert.
Hilft das?
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige