Ansicht:   

#436669

crowsname

Arnsberg,
04.02.2020, 15:54:53

Excel VBA Daten verschieben nach bestimmten Bedingungen (pc.coding)

Hallo zusammen,

ich mache gerade einiges in VBA was mein Können übersteigt, daher die häufigen Fragen in letzter Zeit.

Problembeschreibung:

Es sollen bestimmte Daten aus einer Tabelle ausgewählt werden und dann in eine andere Tabelle übertragen werden. Das Bild verdeutlicht die Quelldatei.

[image]

Jetzt sollen alle Daten getrennt nach Zweig in unterschiedliche Tabellenblätter und unterschiedliche Zellen in einer anderen Datei kopiert werden.

Dafür habe ich bereits eine Form gemacht, in der der Benutzer für jeden Zweig eine Zelle auswählen muss. Diese Zelle wird als Range Variable definiert und gespeichert und ist praktisch der Punkt ab dem die Daten eingefügt werden.

Beispiel:

Der Benutzer gibt für den Zweig Kosmetik in der Datei ziel.xls, Tabelle Kosmetik die Zelle A53 an.

Dann sollen aus der Quelldatei alle Daten die zum Zweig Kosmetik (kb) gehören in die Zieldatei auf das Tabellenblatt Kosmetik ab der Zelle A53 kopiert werden.

Wäre super, wenn da jemand Anregungen für mich hätte. Natürlich gerne mit Code Beispielen.

--
MfG

Michael
-------------------------------------
Personal Training und Ernährungsberatung
http://www.dein-bpc.de

Natürliche Baustoffe:
http://www.auro-online.de

Getreidemühlen und Zubehör:
http://www.getreidemuehlen.de

Sport in Arnsberg:
http://www.personaltraining-nh.de/Home

#436676

manes zur Homepage von manes

Köln,
04.02.2020, 20:55:51

@ crowsname

Excel VBA Daten verschieben nach bestimmten Bedingungen

Hallo
Warum muss denn die Zielzelle jeweils in ein Formular eingetragen werden? Ändert sich das denn andauernd, so dass das jedesmal vom Benutzer abgefragt werden muss?

Ich würde, wenn das Ziel jeweils feststeht, folgendermaßen lösen:
Erstelle ein Arbeitsblatt mit dem Namen Kopierziel. Dort hinein kommen in die Spalten A, B und C folgende Inhalte:
A: Arbeitsblatt B: Kürzel C: Zielzelle mit z.B.
Kosmetik kb A53

Ich gehe davon aus, dass in der Datenquelle die Eintragungen ständig geändert werden. Das kann man auffangen,
entweder bei jeder Zelländerung (wäre m.E. nicht so optimal) oder auch
wenn die Eingaben insgesamt durch Verlassen der Quelltabelle beendet werden.

Am Zielort müssten dann die bisherigen Daten beseitigt werden und die aktuellen eingefügt werden. Dazu wird in dem VBA-Code in der o.a. Tabelle das jeweilige Kopierziel herausgesucht.

Übrigens: Die Quelltabelle könnte man mit Hilfe des Autofilters (VBA-gesteuert) filtern und das jeweilige Ergebnis als Gesamtpaket in einem Schritt zum Ziel kopieren.

FFPX
Manes

--
Also wenn ich ehrlich sein sollte, müsste ich lügen!

#436734

crowsname

Arnsberg,
07.02.2020, 16:00:26

@ manes

Excel VBA Daten verschieben nach bestimmten Bedingungen

Hallo,

danke dir uns sorry das ich mich jetzt erst zurück melde.

Ja, die Daten werden immer an einer anderen nur von dem Benutzer festzulegenden Stelle kopiert. Deshalb die Abfrage der Zelle, ab der die Daten eingefügt werden sollen.

Das mit dem Autofilter ist eine gute Idee.

Da bräuchte ich noch einmal kurz Hilfe zu.

Wenn ich den Autofilter anwende, sind ja die Bezüge nicht mehr gleich, weil die nicht vorhanden Zeilen ausgeblendet werden.

Wie kann ich das in VBA abfangen?

Gruß

Michael

--
MfG

Michael
-------------------------------------
Personal Training und Ernährungsberatung
http://www.dein-bpc.de

Natürliche Baustoffe:
http://www.auro-online.de

Getreidemühlen und Zubehör:
http://www.getreidemuehlen.de

Sport in Arnsberg:
http://www.personaltraining-nh.de/Home

#436735

crowsname

Arnsberg,
07.02.2020, 17:02:15

@ manes

Excel VBA Daten verschieben nach bestimmten Bedingungen

Hallo,

damit du dir nicht umsonst Mühe machst.

Die Auswahl der richtigen Daten zum kopieren habe ich gelöst.

Passt jetzt also erst mal alles. Auch wenn es wahrscheinlich Programmiertechnisch völliger Humbug ist was ich veranstalte.  ;-)

--
MfG

Michael
-------------------------------------
Personal Training und Ernährungsberatung
http://www.dein-bpc.de

Natürliche Baustoffe:
http://www.auro-online.de

Getreidemühlen und Zubehör:
http://www.getreidemuehlen.de

Sport in Arnsberg:
http://www.personaltraining-nh.de/Home

#436738

manes zur Homepage von manes

Köln,
07.02.2020, 19:48:51

@ crowsname

Excel VBA Daten verschieben nach bestimmten Bedingungen

Hallo

Hier mal ein Schnipsel (ohne viel Aufwand), wie man das mit dem Autofilter machen könnte:

Sub KopiereFilterergebnis()
Dim r_Daten As Range
Dim r_Gefiltert As Range
Set r_Daten = Worksheets("Daten").Range("A1").CurrentRegion
r_Daten.AutoFilter field:=3, Criteria1:="Köln"
Set r_Gefiltert = r_Daten.SpecialCells(xlCellTypeVisible)
r_Gefiltert.Copy Destination:=Worksheets("Ziel").Range("C3")
End Sub

Hierdurch wäre es nicht nötig, jede einzelne Zeile zu überprüfen und einzeln zu kopieren.

In dem Beispiel wird aus den Quelldaten alles, was in Spalte 3 die Eintragung Köln aufweist angeiegt, alles andere ausgeblendet und danach die eingeblendeten Zellen an das Ziel kopiert. Nachher müsste man das Autofilter dann evtl. wieder deaktivieren.

FFPX
Manes

--
Also wenn ich ehrlich sein sollte, müsste ich lügen!

#436780

crowsname

Arnsberg,
11.02.2020, 13:32:26

@ manes

Excel VBA Daten verschieben nach bestimmten Bedingungen

Hallo,

danke dir.

Dafür hatte ich bereits eine Lösung gefunden, aber deine ist natürlich wieder viel schöner.

--
MfG

Michael
-------------------------------------
Personal Training und Ernährungsberatung
http://www.dein-bpc.de

Natürliche Baustoffe:
http://www.auro-online.de

Getreidemühlen und Zubehör:
http://www.getreidemuehlen.de

Sport in Arnsberg:
http://www.personaltraining-nh.de/Home

Ansicht:   
Auf unserer Web-Seite werden Cookies eingesetzt, um diverse Funktionalitäten zu gewährleisten. Hier erfährst du alles zum Datenschutz