Makro-Filtern und Kopieren
#1
Guten Tag Zusammen,

ich habe eine Datenbankabfrage erstellt, und möchte die abgefragten Daten filtern, eine bestimmte Spalte kopieren, diese in einem anderen Blatt einfügen und die doppelten Datensätze löschen. Zur genaueren Erklärung:

Ich habe eine Tabelle in der alle Angebote an Kunden aufgelistet sind. Darin sind auch auftragsbezogene Daten enthalten wie z.B. der angebotene Werkstoff. Jetzt haben wir dem einen Kunden die Werkstoffe ABC und dem anderen die Werkstoffe DEF angeboten. Ich möchte jetzt mittels eines Makros die Tabelle nach der Kundennummer (im Beispiel: 126241) filtern und die gesamte Spalte, welche die Werkstoffe beinhaltet (im Beispiel Spalte Q) kopieren und in einem anderen Blatt einfügen. Dort möchte ich die doppelten Werkstoffe löschen.

Ein Makro ist bereits erstellt mit nachfolgendem Code (über "Makro Aufnehmen" erstellt, ich kann nicht programmieren ;)). Das klappt auch super und alle Schritte werden durchgeführt, aber immer mit der gleichen Kundennummer. Ich beginne mein Makro damit, dass ich die Zelle, in der die gewünschte Kundennummer steht, kopiere und damit in die Tabelle gehe und filtere. Beim Einfügen der kopierten Zelle wird dann immer der Wert aus der Aufzeichnung verwendet und nicht der jeweils aktuelle Wert, den ich manuell in Zelle "B3" eintrage. Das Makro soll flexibel bleiben. Im Prinzip muss der erste Schritt eigentlich nur lauten "Nutze Wert aus Zelle B3 zum filtern" und nicht "Nutze Wert 126241 zum filtern". Die rot markierten Codezeilen bekomme ich nicht passen abgeändert. 

Vielleicht kann mir von euch jemand weiterhelfen. Vielen Dank schonmal!  

Gruß

Mo
____________________

Sub Makro13()
'
' Makro13 Makro
'
'
    Range("B3").Select
    Selection.Copy
    Sheets("Rohdaten Angebote").Select
    ActiveSheet.ListObjects("Abfrage2").Range.AutoFilter Field:=7, Criteria1:= _
        "126241"
    Columns("Q:Q").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Übersicht").Select
    Range("H1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Columns("H:H").Select
    Application.CutCopyMode = False
    ActiveSheet.Range("$H$1:$H$896397").RemoveDuplicates Columns:=1, Header:= _
        xlNo
    Range("I2").Select
End Sub
Antworten Top
#2
Hallo,

so vielleicht:
Sub Makro13()
Sheets("Rohdaten Angebote").ListObjects("Abfrage2").Range.AutoFilter Field:=7, Criteria1:= _
Sheets("Übersicht").Range("B3").Value
Sheets("Rohdaten Angebote").Columns("Q:Q").Copy Sheets("Übersicht").Range("H1")
Sheets("Übersicht").Columns("H:H").RemoveDuplicates Columns:=1, Header:=xlNo
End Sub
Gruß Uwe
Antworten Top
#3
Hallo Uwe,

das funktioniert tadellos. Vielen Dank dafür  :15: !!!

Gruß

Mo
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste