16.10.2019, 17:58
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
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