VBA Zelle Vergleichen und bei Bedingung Kopieren, Finden

  • Excel

Es gibt 21 Antworten in diesem Thema. Der letzte Beitrag () ist von Sebastian_2004.

    In den Büchern in die ich geguckt habe ist alles immer so ganz einfach, in Wirklichkeit natürlich nicht. Ich hab schon dran gedacht die Liste zu erweitern die ich durchsuche in dem ich die Wortstämme umdrehe oder die weibliche Form automatisch weglasse (/ entfernen), trotzdem muss ich danach noch diesen Levenshtein Algorithmus in irgendeiner Form anwenden. Der angegebene Code klappt so nicht.

    Visual Basic-Quellcode

    1. Sub Detail2()
    2. Dim Eingabe, Vorgabe, Suchen, Zelle, Suchzelle As Range
    3. Dim Einteil As String
    4. Dim i, i2 As Integer
    5. Set Eingabe = Worksheets("Eingabe").Range("A:A")
    6. Set Vorgabe = Worksheets("Vorgabe").Range("A:A")
    7. Set Suchen = Worksheets("Suchen").Range("A:A")
    8. i = InStr(Vorgabe.Value, "/")
    9. i2 = Len(Vorgabe.Value)
    10. Einteil = Left(Vorgabe.Value, i - 1)
    11. Sheets("Suchen").Value = Einteil
    12. For Each Zelle In Eingabe
    13. If Zelle = "" Then Exit For
    14. For Each Suchzelle In Suchen
    15. If Suchzelle = "" Then Exit For
    16. If InStr(Suchzelle, Einteil) > 0 And Zelle.Offset(0, 1) = "" Then
    17. Zelle.Offset(0, 1) = Suchzelle.Offset(0, 1)
    18. Exit For
    19. End If
    20. Next Suchzelle
    21. Next Zelle
    22. ' ...
    23. End Sub
    24. ' ...
    25. Sub Drehen()
    26. Dim Zelle As Range
    27. Set Zelle = Worksheets("Umdrehen").Range("A:A")
    28. For Each Zelle In Selection
    29. Zelle.Offset(0, 1).Value = Mid(Zelle.Value, InStr(Zelle.Value, " ") + 1, _
    30. (Len(Zelle.Value) - InStr(Zelle.Value, " "))) & _
    31. " " & Left(Zelle.Value, InStr(Zelle.Value, " ") - 1)
    32. Next Zelle
    33. End Sub
    Hallo zusammen,

    auf der Suche nach einer Lösung bin ich auf diesen Beitrag gestoßen der meinem Problem ähnlich ist.

    Und zwar benötige ich Hilfe dabei, den Inhalt aus x Lieferanten-CSV-Dateien anhand der ARtikelnummern in eine Basis-CSV-Datei zu kopieren.

    Also in der Basis-CSV-Datei steht eine Art-Nr. und eine weitere Spalte. In den anderen Lieferanten-CSV-Dateien sind ebenfalls Art-Nr. enthalten sowie Preise und Lieferstatus.
    Nun sollen die Artikelnummern aus den Lieferanten Dateien mit den Artikelnummern der Basis-CSV-Datei verglichen werden. Ich denke dafür müsste jede Zeile der Lieferanten Datei einzeln untersucht werden.
    Also:
    Nehme den Wert aus B2 und finde den gleichen Wert in der Basis-CSV-Datei in der Spalte A. Wenn der Wert gefunden wurde (z.B. A2 = 128 und B241 = 128), kopiere die Zeile aus der Lieferantendatei (128, 20,78€, 1) und füge den Inhalt in die nächstfreie Spalte der passenden Zeile der Basis-CSV-Datei (Also in Zeile B241, sodass dort 128,...,128,20,78€,1) zu finden ist.

    Ich bastele zur einfacheren Erklärung unten noch einmal ein Beispiel.

    Schon einmal vorab vielen Dank für eure Hilfe!

    Basis-CSV-Datei:

    Art-Nr.
    ...
    100
    ...
    101
    ...
    102
    ...
    128
    ...












    LieferantA-CSV-Datei
    Aktiv?
    Art-Nr.
    Bezeichnung
    Preis
    Lieferstatus
    1
    100
    sdfsadf
    15
    0
    0
    128
    sdfsdf
    20,78
    1
    1
    156
    sdfsdf
    36
    0



    Ziel-CSV-Datei

    art-Nr.
    ...
    LieferantA-Art.Nr.
    LieferantA-Preis
    LieferantA-Lieferstatus
    100
    ...
    100
    15
    0
    101
    ...



    102
    ...



    128
    ...
    128
    20,78
    1


    Vielleicht könnt Ihr mit weiterhelfen.

    Viele Grüße

    Sebastian