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

Werte abgleichen

Werte abgleichen
05.10.2018 21:19:22
Hendrik
Hallo zusammen,
ich schon wieder... Brauche jemanden der mir sagen kann was ich wieder an dieser For-Schleife falsch mache. Bin für jeden Kommentar dazu dankbar!
Was macht der Code momentan: Nichts...es werden einfach keine Werte aufgezählt, obwohl defintiv welche vorhanden wären.
Viele Dank vorab!
Gruß
Hendrik
Sub zsm_bestell()
For c = 2 To 20
For i = 2 To 5000
If Sheets("Tabelle2").Cells(c, 1) = Sheets("Tabelle3").Cells(i, 1) _
And Sheets("Tabelle2").Cells(c, 2) = Sheets("Tabelle3").Cells(i, 2) Then
Sheets("Tabelle2").Cells(c, 4) = Sheets("Tabelle3").Cells(i, 1)
Sheets("Tabelle2").Cells(c, 5) = Sheets("Tabelle3").Cells(i, 2)
Sheets("Tabelle2").Cells(c, 6) = Sheets("Tabelle3").Cells(i, 3)
Sheets("Tabelle2").Cells(c, 7) = Sheets("Tabelle3").Cells(i, 6)
End If
Next i
Next c
End Sub

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte abgleichen
05.10.2018 22:25:30
onur
Wo ist die Datei?
AW: Werte abgleichen
06.10.2018 00:55:29
onur
1)Wie startest du das Makro überhaupt?
2)Dein Makro vergleicht u.A. auf beiden Tabellen Spalte A. In der einen Tabelle stehen in A Bestellnummern und in der anderen Tabelle irgendwelche 4-stellige Zahlen, wie soll da die IF-Bedingung jemals zutreffen?
Offensichtlich ist das Makro gar nicht von Dir und du hast keinen Schimmer, was drin steht.
AW: Werte abgleichen
06.10.2018 10:02:04
Werner
Hallo Hendrik @Onur,
die Bestellnummern in Spalte A passen schon, die NB-Nummern beginnen in Tabelle3 erst ab Zeile 1232.
Aber in beiden Tabellen sind sowohl bei den Bestellnummern als auch bei den Artikelnummern geschützte Leerzeichen (Zeichen(160)) vorhanden und müssten vorher entfernt werden.
=WECHSELN(B2;ZEICHEN(160);"")
Gruß Werner
Anzeige
AW: Werte abgleichen
06.10.2018 10:58:35
Hendrik
Hallo Werner,
WOW! vielen herzlichen Dank Dir! Da wäre ich ja nie drauf gekommen...
Eine Frage fürs Verständnis hätte ich aber noch: Wie ist dir das aufgefallen ?
Vielen Dank nochmals!
Gruß
Hendrik
AW: Werte abgleichen
06.10.2018 11:08:32
Werner
Hallo Hendrik,
einfach indem ich mir mal die Werte in beiden Tabellen angeschaut habe. Habe dazu den Filter benutzt und deine Tabelle2 nach NB-4034933 gefiltert.
Da sieht man ja, dass die Werte von Spalte A und B aus Tabelle3 in Tabelle2 vorhanden sind. Da das Makro in der If-Prüfung trotzdem keinen Treffer gefunden hat, habe ich zunächst mal überprüft, ob da eventuell noch Leerzeichen am Anfang oder am Ende der Werte vorhanden sind.
=LÄNGE(B2)
Da hierbei beide Werte in den Tabellen die gleich Länge hatten, blieb eigentlich nur die Vermutung, dass es sich bei den Ursprungsdaten um einen Import einer .CSV oder sonstigen Textdatei handeln könnte, wobei gerne mal das geschützte Leerzeichen übertragen wird.
Gruß Werner
Anzeige
AW: Werte abgleichen
06.10.2018 11:29:15
Hendrik
Hallo Werner,
vielen Dank für die Erklärung und deine Bemühungen. Schon wieder etwas gelernt!
Gruß
Hendrik
AW: Werte abgleichen
06.10.2018 11:29:16
Hendrik
Hallo Werner,
vielen Dank für die Erklärung und deine Bemühungen. Schon wieder etwas gelernt!
Gruß
Hendrik
AW: Werte abgleichen
06.10.2018 11:29:18
Hendrik
Hallo Werner,
vielen Dank für die Erklärung und deine Bemühungen. Schon wieder etwas gelernt!
Gruß
Hendrik
Abgesehen davon....
06.10.2018 11:19:09
Werner
Hallo Hendrik,
...würde ich da einen völlig anderen Ansatz wählen.
Ich würde dafür den Filter benutzen. Erst prüfen, ob die Bestellnummer mit Artikelnummer aus Tabelle3 in Tabelle2 vorhanden ist. Wenn ja dann Tabelle2 nach Bestellnummer und Artikelnummer filtern, Filterergebnis kopieren.
Das wären in deiner Beispielmappe exakt zwei Filtervorgänge und zwei Kopiervorgänge und nicht knapp 95000 Schleifendurchläufe.
Gruß Werner
Anzeige
AW: Abgesehen davon....
06.10.2018 11:31:31
Hendrik
Hallo Werner,
gute Idee! Das passiert wohl, wenn man vor lauter Schleifen den Filter nicht mehr sieht :)
Gruß
Hendrik
AW: Abgesehen davon....
06.10.2018 14:01:20
Werner
Hallo Hendrik,
falls interessiert, dann hier deine Datei mit einem Makro das den Filter für den Vorgang verwendet.
Folgende Änderungen in deiner Beispielmappe habe ich vorgenommen:
-Formeln Tabelle2 Spalte A, B und C angepasst, damit keine 0 ausgegeben wird wenn Wert nicht vorhanden
-Tabelle3 Überschriften in Zeile 1 aufgenommen (wegen dem Filter)
-letzte belegte Zelle Tabelle2 Spalte A wird jetzt im Makro ermittelt und ist somit flexibel
Deine Schleifenlösung läuft mehr als 4 Sekunden bei nur 20 zu suchenden Begriffen. Die Lösung mit Filter braucht noch nicht mal 1 Sekunde.
https://www.herber.de/bbs/user/124457.zip
Gruß Werner
Anzeige
AW: Abgesehen davon....
06.10.2018 14:04:40
Werner
Hallo Hendrik,
übrigens interessiert den Filter das geschützte Leerzeichen nicht. Du brauchst das also dann auch nicht vorher zu entfernen.
Gruß Werner
AW: Werte abgleichen
06.10.2018 10:32:04
Hendrik
Hallo onur,
vielen Dank für deine Antwort.
1. Wie ich das Makro starte ? Natürlich erstmal im Editor.
2. Vorsicht mit solchen Behauptungen.
Gruß
Hendrik
AW: Werte abgleichen
06.10.2018 10:48:35
onur
Wieso Vorsicht?
Ist doch keine Schande, etwas nicht zu wissen, man sollte es nur zugeben können.
AW: Werte abgleichen
06.10.2018 13:55:31
Ludwig
Die If-Bedingung trifft zu. Die erste Übereinstimmung gibts erst in Zeile 3600 oder so. Daher läuft das Makro erst ziemlich lange durch, bis es ne Übereinstimmung gibt.
Seine If-Bedingung prüft zwei Bedingungen, die mit einem And verknüpft sind. Aber irgendwie funktioniert das And nicht. Vielleicht weisst du, warum?
Anzeige
AW: Werte abgleichen
06.10.2018 13:52:19
Ludwig
Ich habs mal getestet. Folgendes: Ich habe das And rausgenommen, dann funktioniert es einwandfrei.
Sprich, dieses Makro funktioniert:
Sub zsm_bestell()
For c = 2 To 20
For i = 2 To 5000
If Sheets("Tabelle2").Cells(c, 1).Value = Sheets("Tabelle3").Cells(i, 1).Value Then
'Sheets("Tabelle2").Cells(c, 2).Value = Sheets("Tabelle3").Cells(i, 2).Value
Sheets("Tabelle2").Cells(c, 4).Value = Sheets("Tabelle3").Cells(i, 1).Value
Sheets("Tabelle2").Cells(c, 5).Value = Sheets("Tabelle3").Cells(i, 2).Value
Sheets("Tabelle2").Cells(c, 6).Value = Sheets("Tabelle3").Cells(i, 3).Value
Sheets("Tabelle2").Cells(c, 7).Value = Sheets("Tabelle3").Cells(i, 6).Value
End If
Next i
Next c
End Sub

Dieses hier (mit And) funktioniert nicht:
Sub zsm_bestell2()
For c = 2 To 20
For i = 2 To 5000
If Sheets("Tabelle2").Cells(c, 1).Value = Sheets("Tabelle3").Cells(i, 1).Value And _
Sheets("Tabelle2").Cells(c, 2).Value = Sheets("Tabelle3").Cells(i, 2).Value Then
Sheets("Tabelle2").Cells(c, 4).Value = Sheets("Tabelle3").Cells(i, 1).Value
Sheets("Tabelle2").Cells(c, 5).Value = Sheets("Tabelle3").Cells(i, 2).Value
Sheets("Tabelle2").Cells(c, 6).Value = Sheets("Tabelle3").Cells(i, 3).Value
Sheets("Tabelle2").Cells(c, 7).Value = Sheets("Tabelle3").Cells(i, 6).Value
End If
Next i
Next c
End Sub
Es würde mich mal brennend interessieren, warum das And nicht funktioniert. Kann einer der User helfen?
Anzeige
AW: Werte abgleichen
06.10.2018 14:03:19
Werner
Hallo Ludwig,
du kannst dir selbst helfen, indem du alle Beiträge zum Thema durchliest.
Gruß Werner
AW: Werte abgleichen
06.10.2018 14:37:37
Ludwig
Ok habs gecheckt, damit ist das Thema geklärt.
AW: Werte abgleichen
06.10.2018 13:33:09
Ludwig
Ich gucks mir gleich genauer an...aber ich vorab sagen, dass das .Value fehlt ;)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige