Excel - bestimmte Daten per Makro auslesen?

1 Antwort

Es ist eigentlich KEIN VBA nötig, wenn die Daten so organisiert wären, dass sie PIVOT Auswertungen unterstützen.
Also.
Zunächst die Zeile finden die die "erste" ID enthält.
Dies geht mit Bericht1Start=Application.Match(...)
Dann die Zeile finden in welcher das "erste" mal "End Report steht.
Dies geht auch mit Bericht1Ende = Application.Match(...)
Dann den Bereich auf die andere Seite bringen

Worksheets("ZielSeite").Range("A" & Bericht1Start& ":A" & Bericht1Ende).Value = _
Worksheets("QuellSeite").Range("A" & Bericht1Start& ":A" & Bericht1Ende).Value
Die weiteren Berichte finden sich dann in dem man wieder Start und Ende sucht ABER dieses mal AB der Zeile die noch NOCH nicht berichtet wurde.
Diese neue StartZeile für die Suche ist denn (Bericht1Ende + 1)
So kombinieren sich die Application.Match mehrfach bis alle Bereiche erkannt und auf die andere Seite gespiegelt wurden.
===
Wie immer. Es gäbe auch andere Lösungen. z.B.: Mit Schfeifen

Vikinteresse 
Fragesteller
 08.03.2024, 05:59

Guten Morgen IchMalWieder. Vielen Dank dir für deine ausführliche Antwort. Ich werde das dann diese Tage mit pivot ausprobieren. ( Report ist etwas kompliziert aufgebaut) . Ich wünsche dir einen schöns Wochenende! PS: 😃 Natürlich mit einem Makro wäre etwas einfacher....ein Klick und fertig.

0
IchMalWiederXY  09.03.2024, 16:44
@Vikinteresse

Nein, Pivot ist einfacher als eine programmierte Lösung.
Je nach dem wer alles die Datei verwendet ist alles in der Datei an Formaten und Struktur verändert, was dein Makro ggf neu berücksichtigen muss.
Bedeutet im Umkehrschluss, man muss die Datei gegen jede Anpassung 3ter schützen, was in Excel aber leider nicht möglich ist.

0