Wir bekommen von unserer Mutterfirma Stückliste mit Fremdartikelnummern.
Dazu gibt es eine Vergleichsliste mit unseren eigenen Nummern.
Zurzeit wird die Stückliste von einem Kollegen händisch auf unsere eigenen Nummern übersetzt. Natürlich können da schon mal Fehler passieren und es kostet eine menge Zeit!
Einfaches Beispiel:
SpalteA-Fremdartikel
SplateB-Eigenartikel
SpalteC-Fremdartikel aus Stückliste
SOLL SpalteD-Zugehöriger Eigenartikel zu Spalte C
Ich habe nur die Funktion =ODER(IDENTISCH(AX;AY:smiley:X)) die mir das Argument WAHR ausgibt, das hilft mir aber nicht weiter?
In Splate A sind ALLE Artikel der Mutterfirma aufgelistet, daneben in Spalte B unsere Vergleichsartikelnummer.
Spalte C sind nun auftragsbezogen nur einige Artikel aufgelistet (Nummern in Spalte A vorhanden) und zu welchen nun unsere Vergleichsartikelnummern herausgesucht werden sollen.
Man könnte theoretisch alle einzeln händisch suchen und eintragen *würg*.
Makro hört sich gut an, kenn mich aber nicht besonders gut aus damit.
Auf den ersten Blick hat alles tadellos funktioniert, aber eben nur auf den ersten.
Die Tabelle wo gesucht werden soll muss der Größe nach sortiert werden sonnst kommt nur Blödsinn heraus.
Wenn ein falscher, nicht vorhandener Wert gesucht wird gibt es trotzdem ein Ergebnis, nämlich den nächst kleineren Wert, was natürlich unbrauchbar ist!
Wie kann man gewährleisten dass der exakte Wert gefunden werden muss?
Wenn ein falscher, nicht vorhandener Wert gesucht wird gibt
es trotzdem ein Ergebnis, nämlich den nächst kleineren Wert,
was natürlich unbrauchbar ist!
–> als „Bereichsverweis“ nach dem Spaltenindex den Text: „FALSCH“ eingeben damit kein Wert - #NV angezeogt wird.
Makro
Hallo Daniel
Hier eine Makro-Lösung. Sie funktioniert unabhängig davon, wie die Spalten sortiert sind. Klappert einfach alles der Reihe nach ab. Falls du sehr viele Daten hast, dauert es wohl etwas; wenn das nicht annehmbar ist, könnte das Makro wohl noch „getunt“ werden. Probiere es einmal aus und melde bitte deine Erfahrungen!
Option Explicit
Dim i, Zahl, Var, Total, z
Sub mach()
'Zeilen zählen in Kol C
Zahl = Cells(Rows.Count, 3).End(xlUp).Row
'Zeilen zählen in Kol A
Total = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To Zahl
'Wert in Kol C festhalten
Var = Cells(i, 3).Value
'Wert in Kol A suchen und Wert von Kol B nach D kopieren
For z = 1 To Total
If Cells(z, 1).Value = Var Then Cells(i, 4).Value = Cells(z, 2).Value
Next z
Next i
End Sub
ich habe den Code eingefügt, funktioniert aber irgendwie
nicht, wie gesagt ich kenn mich auch in VB und mit Makros
nicht aus.
Dann ist es höchste Zeit, dass du dich mit diesem sehr interessanten Werkzeug etwas vertraut machst! Mindestens solltest du lernen, fertige Makros anzuwenden.
Option Explicit - Fehler beim kompilieren
Falls oben (und evtl. auch unten) ein "
" erscheint dann musst du diese löschen; der Code muss genau so aussehen, wie er im w-w-w erscheint (ohne diese speziellen Formatierungszeichen, die mit dem Makro nichts zu tun haben). Ich habe das Makro seriös getestet; wenn du es richtig kopierst, läuft es.
Viel Erfolg
Erich