Makro: verschiedene Werte suchen und kopieren

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Makro: verschiedene Werte suchen und kopieren
von: Hilfesucher
Geschrieben am: 08.05.2015 14:01:45

Hallihallo,
Ich habe ein kleines VBA Problem und komme nicht weiter.
Zum Hintergrund, ich habe eine Tabelle die ca 11.000 Zeilen hat.Ich möchte diese Zeilen an einer ID identifizieren die in Spalte I steht(eine ID kommt mehrmals vor)und dann in ein neues Blatt kopieren
In dem rohen Datensatz gibt es ca 50 verschiende IDs von denen mich allerdings nur ca 30 interessieren. Jetzt könnte ich einfach über den Filter jedesmal die ausblenden die mich nicht interessieren, da ich diesen Vorgang allerdings fast täglich wieder hole bzw berichten muss und sich die Daten ändern, würde ich dies gern automatisieren mit einem Makro.
Bisher bin ich mit meinem Makro soweit, dass ich für eine ID die Zeilen auslessen kann und in ein neues Blatt kopieren kann(in meinem fall die 1001. Kann mir jemand helfen wie ich die anderen 31 IDs einfügen kann, ohne dass sich das Makro bis ins unendliche aufbläht?

Sub FindenUndKopieren()
Dim rng As Range
Dim loDeinWert As Long
Dim sFirstAdress As String
loDeinWert = "1001" 'gesuchter Wert
Set rng = Worksheets("1").Range("I:I").Find(loDeinWert)
If rng Is Nothing Then
 MsgBox "Wert " & loDeinWert & " nicht gefunden!"
Else
  sfirstaddress = rng.Address
  Do
   rng.EntireRow.Copy
   Worksheets("2").Cells(Rows.Count, "A").End(xlUp) _
     .Offset(1, 0).PasteSpecial Paste:=xlPasteAll
    Set rng = Worksheets("1").Range("I:I").FindNext(rng)
  Loop While Not rng Is Nothing And rng.Address <> sfirstaddress
End If
End Sub
Vielen Dank schomal vorab
Fred

Bild

Betrifft: AW: Makro: verschiedene Werte suchen und kopieren
von: Werner
Geschrieben am: 08.05.2015 15:04:32
Hallo Fred,
schreibe doch die gesuchte ID in eine Zelle z.B. A1 und weise der Variablen LoDeinWert den Inhalt der entsprechenden Zelle zu.
Gruß Werner

Bild

Betrifft: AW: Makro: verschiedene Werte suchen und kopieren
von: Hilfesucher
Geschrieben am: 08.05.2015 20:42:43
Hi Werner,
Vielen Dank für deine Antwort, allerdings glaube ich dass ich damit mein Problem noch nicht ganz lösen kann. Ich möchte, dass das Makro eine komplette Liste erstellt von allen IDs und deren Zeilen, die mich interessieren, damit ich diese Liste dann durch eine Pivot-Tabelle auslesen kann.
Viele Grüße
Fred

Bild

Betrifft: AW: Makro: verschiedene Werte suchen und kopieren
von: Werner
Geschrieben am: 10.05.2015 00:02:13
Hallo Fred,
ich hab mal was mit dem Autofilter zusammengebaut.

Option Explicit
Sub FilternUndKopieren()
Dim loNummer As Long
Dim loLetzte As Long
Dim loLetzte1 As Long
Dim i As Long
Application.ScreenUpdating = False
loLetzte = Sheets(1).Cells(Rows.Count, 10).End(xlUp).Row
loLetzte1 = Sheets(2).Cells(Rows.Count, 1).End(xlUp).Row
    If loLetzte1 > 1 Then
        Sheets(2).Range("A2:I" & loLetzte1).ClearContents
    End If
For i = 2 To loLetzte
   With Sheets(1)
    loNummer = Sheets(1).Cells(i, 10).Value
    .Range("A1").AutoFilter Field:=9, Criteria1:=loNummer
        If .Cells(.Rows.Count, 9).End(xlUp).Row > 1 Then
            Intersect(.Columns("A:I"), .Range(.Rows(2), .Rows(.Range("A1").CurrentRegion.Rows. _
Count))).Copy
            Sheets(2).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteFormats
            Sheets(2).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
            .AutoFilter.ShowAllData
            .Application.CutCopyMode = False
        End If
   End With
Next i
Sheets(1).AutoFilterMode = False
Application.ScreenUpdating = True
End Sub
Zugrunde lag bei mir eine Datei mit den Blättern Tabelle1 und Tabelle2.
In Tabelle1 von A1 bis J1 befinden sich Überschriften. Von A2 bis I2 beginnen die Daten. Die ID steht in spalte I.
In Spalte J, ab J2 kannst du dann die ID-Nummern eingeben, die dich "interessieren".
Bei Ausführen des Makros werden zuerst die Daten in Tabelle2 (von A2 bis J-letzte Zeile) gelöscht.
Anschließend wird in Blatt 1 die Spalte mit den ID-Nummern (hier Spalte I) über die Nummern in Spalte I gefiltert und die gefilterten Daten (Spalte A bis Spalte I) in Tabelle2 ab A2 kopiert. In Blatt 2 habe ich (sowohl bzgl. des Löschens als auch bzgl. des Einkopierens von Daten) für etwaige Überschriften frei gelassen.
Kannst es ja mal ausprobieren und ggf. auf deine Bedürfnisse anpassen.
Gruß Werner

Bild

Betrifft: AW: Makro: verschiedene Werte suchen und kopieren
von: Hilfesucher
Geschrieben am: 11.05.2015 09:06:57
Hi Werner,
Jetzt klappt es perfekt.
Vielen Dank

Bild

Betrifft: AW: Makro: Danke für die Rückt owT
von: Werner
Geschrieben am: 11.05.2015 09:21:01


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Makro: verschiedene Werte suchen und kopieren"