VBA Suche nach 1 Kriterium + innerhalb einer KW - Ausgabe auf anderem Tabellenblatt

  • Excel

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Nickerchen.

    VBA Suche nach 1 Kriterium + innerhalb einer KW - Ausgabe auf anderem Tabellenblatt

    Guten Tag,

    ich habe zwar ein ähnliches Thema gefunden, aber leider nicht genau dass was Ich brauche.

    Ich habe versucht (mit Hilfe von Google), mir einen Code zu basteln, der in einem Blatt in einer bestimmten Spalte nach einem Wert Sucht der wiederum über einen Zellbezug festgelegt wird.

    So sieht das bei mir aus, funktioniert allerdings schon mal nicht....

    Visual Basic-Quellcode

    1. Sub FindenUndKopieren()
    2. Dim ZellenInhalt As String
    3. Dim rng As Range
    4. Dim loDeinWert As Long
    5. Dim sfirstaddress As String
    6. ZellenInhalt = Worksheets("4-Wochen").Range("B3").Value
    7. loDeinWert = ZellenInhalt 'gesuchter Wert
    8. Set rng = Worksheets("AX").Range("K:K").Find(loDeinWert)
    9. If rng Is Nothing Then
    10. MsgBox "Wert " & loDeinWert & " nicht gefunden!"
    11. Else
    12. sfirstaddress = rng.Address
    13. Do
    14. rng.EntireRow.Copy
    15. Worksheets("Tabelle1").Cells(Rows.Count, "A").End(xlUp) _
    16. .Offset(1, 0).PasteSpecial Paste:=xlPasteAll
    17. Set rng = Worksheets("AX").Range("K:K").FindNext(rng)
    18. Loop While Not rng Is Nothing And rng.Address <> sfirstaddress
    19. End If
    20. End Sub


    Gesucht werden soll nach dem Wert aus Zelle B3 des Blatts "4-Wochen".
    Die Werte sollen im Blatt "AX" Spalte K gesucht werden.
    Alle gefunden Werte sollte mir der Code im "Tabellenblatt1" untereinander kopieren. (die ganze Zeile des gefundenen Wertes)

    Kann mir hierzu jemand bitte meine Fehler aufzeigen?

    Ich würde den Code auch gern noch erweitern dass er mir nur die Werte innerhalb einer festgelegten Kalenderwoche ausgibt. Die KW wird im Blatt "4-Wochen" Zelle B2 festgelegt.


    Bin dankbar für jede Antwort
    MfG B. Mühlburger
    Guten Tag,

    ich habe bereits Hilfe bekommen und falls jmd ein ähnliches Problem haben sollte, hier die beiden Codes.

    Einfache Variante nach einem Kriterium suchen:

    Visual Basic-Quellcode

    1. Sub FindenUndKopieren()
    2. Dim ZellenInhalt As String
    3. Dim rng As Range
    4. Dim loDeinWert As Long
    5. Dim sfirstaddress As String
    6. loDeinWert = Worksheets("Übersicht").Range("B3").Value 'gesuchter Wert
    7. Set rng = Worksheets("AX").Range("L:L").Find(loDeinWert) 'wo wird gesucht
    8. If rng Is Nothing Then
    9. MsgBox "Wert " & loDeinWert & " nicht gefunden!"
    10. Else
    11. sfirstaddress = rng.Address
    12. Do
    13. rng.EntireRow.Copy
    14. Worksheets("Tabelle1").Cells(Rows.Count, "A").End(xlUp) _
    15. .Offset(1, 0).PasteSpecial Paste:=xlPasteAll 'Ziel zum kopieren
    16. Set rng = Worksheets("AX").Range("L:L").FindNext(rng)
    17. Loop While Not rng Is Nothing And rng.Address <> sfirstaddress
    18. End If
    19. End Sub


    Nach 2 Kriterien suchen:

    Visual Basic-Quellcode

    1. Sub MeinFindenundKopieren()
    2. Dim rngWhat As Range, rngWeek As Range, rngRow As Range, rngTarget As Range
    3. Dim intCnt As Integer
    4. 'Bedingung1
    5. Set rngWhat = Sheets("Übersicht").Range("B3")
    6. 'Bedingung2
    7. Set rngWeek = Sheets("Übersicht").Range("B2")
    8. 'alle Zeilen
    9. For Each rngRow In Sheets("AX").UsedRange.Rows
    10. 'Bedingung1 in Spalte L = 11.Spalte
    11. If rngRow.Cells(12) = rngWhat Then intCnt = intCnt + 1
    12. 'Bedingung2 in Spalte G = 7.Spalte
    13. If rngRow.Cells(7) = rngWeek Then intCnt = intCnt + 1
    14. 'auswerten
    15. If intCnt = 2 Then _
    16. rngRow.Copy Sheets("Tabelle1").Cells(Rows.Count, "A").End(xlUp).Offset(1)
    17. 'Ziel zum kopieren
    18. intCnt = 0
    19. Next rngRow
    20. End Sub


    MfG