über mehrere Tabellenblätter Zellinhalt suchen

  • Excel

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von koepi.

    über mehrere Tabellenblätter Zellinhalt suchen

    Guten Abend liebe Community,

    könnt Ihr mir bitte etwas Hilfestellung geben?
    Folgendes soll das Makro machen:

    Wert aus "Tabelle3 A & Variable , n" suchen in "Tabelle2 O & Variable-n", dann speichere aus Tabelle2 O & Variable -J den Wert in Variable X, dann suche in "Tabelle1" nach Variable X, wenn Gefunden speichere aus Tabelle1 "Variable X, L", in Variable XY, dann suche in Tabelle3 in Zeile 4 nach Variable XY, wenn gefunden trage in Tabelle3 "A & Variable, Variable +1) den Wert aus Variable X ein.
    Puhh,ich hoffe dass ich das richtig erklärt habe.
    In der Beisspieldatei, habe ich die Betrefenden Zeilen markiert.
    über einen Lösungsansatz, bzw. Fehlerbehbung bin ich im Vorfeld über aus dankbar.

    koepi
    Dateien
    • Mappe1.xlsm

      (19,94 kB, 156 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „koepi“ ()

    Für den Code in den Codebereich "Tabelle3" ein und führe ihn aus

    Visual Basic-Quellcode

    1. Option Explicit
    2. Sub Fill()
    3. Dim c As Range, KeyCell As Range, Key As String, Hdr As Range
    4. For Each c In Intersect(UsedRange, Range("A:A"))
    5. If c.Value <> "" Then
    6. Set KeyCell = Tabelle2.Range("O:O").Find(c.Value, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
    7. If Not KeyCell Is Nothing Then
    8. Key = KeyCell.Offset(0, -5).Value
    9. If Key <> "" Then
    10. Set KeyCell = Tabelle1.Range("J:J").Find(Key, LookIn:=xlValues, LookAt:=xlWhole)
    11. If Not KeyCell Is Nothing Then
    12. Key = KeyCell.Offset(0, 2).Value
    13. If Key <> "" Then
    14. Set Hdr = Range("4:4").Find(Key, LookIn:=xlValues, LookAt:=xlWhole)
    15. If Not Hdr Is Nothing Then Cells(c.Row, Hdr.Column).Value = "A"
    16. End If
    17. End If
    18. End If
    19. End If
    20. End If
    21. Next
    22. End Sub

    Allerdings ließe sich das Problem auch ohne VBA nur mit Excel-Formeln lösen.
    Wäre wahrscheinlich mein Ansatz gewesen.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --