Microsoft Excel

Herbers Excel/VBA-Archiv

VBA - Kopieren unter Bedingung; variable Spalten


Betrifft: VBA - Kopieren unter Bedingung; variable Spalten von: Elmar
Geschrieben am: 22.11.2017 12:45:35

Hallo,

ich komme bei einem Problem nicht weiter und wäre über eine Hilfestellung sehr sehr dankbar.

Ich importiere in Excel eine csv-Datei auf deren Aufbau ich keinen Einfluss habe. Die Daten werden in einem Reiter "Import" gespeichert. Ich möchte bestimmte Daten hieraus in einen anderen Reiter "Extract" kopieren. Ich hatte mir bereits ein zwar nicht elegantes, aber prinzipiell funktionierendes Makro zusammengebastelt, musste dann aber feststellen, dass die Spalten aus der csv-Datei sich teilweise ändern. Ich kann mich also nicht darauf verlassen, dass der Aufbau jeder csv-Datei identisch ist; allerdings sind die Spaltenüberschriften immer wiederkehrend (diese stehen allerdings nicht in der ersten Zeile). Damit funktioniert mein Makro nicht mehr.

Folgende Datei dient als Beispiel:

https://www.herber.de/bbs/user/117831.xlsx

Spalte E enthält immer einen Kategorie-Namen. Spalte F immer eine Unterkategorie. Jede neue Kategorie in Spalte E beginnt mit dem Text "Header" in Spalte F. Hier sind die Spaltenüberschriften zu finden, nach denen gesucht werden muss. Darunter folgen die Daten.

Wunsch wäre bspw. folgendes:
Wenn Spalte E = Cat2 und Spalte F = Data, dann kopiere diese Angaben sowie die Werte aus den Spalten mit der Überschrift C1, C2, C3 und C4 in den Reiter "Extract" untereinander in die Spalten E2 bis J.

Wenn da jemand eine zündende Idee hat, wäre ich sehr glücklich.
Beste Grüße
Elmar

  

Betrifft: AW: Autofilter von: Fennek
Geschrieben am: 22.11.2017 12:55:38

Hallo,

reicht es in der Spalte F den Autofilter auf "Data" zu setzen und die sichtbaren Zellen zu kopieren, per Hand oder VBA?

mfg


  

Betrifft: AW: Autofilter von: Elmar
Geschrieben am: 22.11.2017 14:00:09

Hallo Fennek,

das genügt leider nicht. Geh davon aus, dass die Spalten C1, etc. in wilder Reihenfolge auftauchen und die von mir benötigten auch nicht zusammenhängend vorkommen.
Im Reiter Extract brauche ich die Spalten aber in einer festen Reihenfolge, damit ich mit dem Zahlen weiterrechnen kann.

In meinem ersten Makro habe ich auch einfach jeweils den gesamten Zeilen-Bereich kopiert und dann die nicht benötigten Spalten einfach nicht weiter beachtet.

Ich muss aber wie gesagt, sicherstellen, dass im Reiter Extract in jeder Spalte immer genau die Daten landen, die ich weiterverarbeiten möchte (also nicht, dass C1 auf einmal in einer Spalte landet, wo beim vorherigen Import aber C2 stand). Jedenfalls ist mir noch kein anderes Workaround eingefallen..


Beiträge aus den Excel-Beispielen zum Thema "VBA - Kopieren unter Bedingung; variable Spalten"