Immer erste Mappe ansprechen und bestimmten Bereich kopieren
02.05.2024 22:04:57
KamKam
ich bin neu im Forum und freue mich auf eine interessante Mitgliedschaft. Vor allem freue ich mich auf mein Wissen, dass ich mir hier zusätzlich aufbauen und mit euch Erfahrungen rund um VBA austauschen kann.
Ich komme gleich mit einem ersten Thema, das mich seit gut zwei Tagen beschäftigt.
Ich habe eine Datei, in dieser immer zum Monatsende das aktuelle Tabellenblatt (Beispiel: 04_2024) für den Mai auf 05_2024 kopiert wird.
Im Blatt 04_2024 werden alle Werte kopiert und hart eingesetzt, sodass keine Formeln und Verweise mehr vorhanden sind (dient der Nachweiszwecke).
Das nun neue Blatt 05_2024 wird mit aktuellen Daten aus Mai befüllt. Sobald alle Daten vorhanden sind, möchte ich per Code drei unterschiedliche Bereiche kopieren und in eine andere Datei zum Upload einfügen.
Hierzu habe ich folgenden Code (teilweise mit dem Makrorekorder aufgenommen und angepasst).
Sub HB_I_AUSB()
'
' HB_I_AUSB Makro
ActiveSheet.ListObjects("Tabelle3").Range.AutoFilter Field:=1, Criteria1:= _
">"
ActiveSheet.Range("Tabelle3").SpecialCells(xlCellTypeVisible).Copy
Windows("RSBG_Tagetik_Upload-Template_incl. Category only FULLv2.6 .xlsm"). _
Activate
' Range("A3").Select
Range("a" & ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1).Select
ActiveSheet.Paste
End Sub
Sub HB_1_EINB()
ActiveSheet.ListObjects("Tabelle2").Range.AutoFilter Field:=1, Criteria1:= _
">"
ActiveSheet.Range("Tabelle2").SpecialCells(xlCellTypeVisible).Copy
Windows("RSBG_Tagetik_Upload-Template_incl. Category only FULLv2.6 .xlsm"). _
Activate
' Range("A3").Select
Range("a" & ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1).Select
ActiveSheet.Paste
' Windows("Mapping_HI USA_Test.xlsm").Activate
End Sub
Sub HB_II_EINB()
'
' HB_II_EINB Makro
ActiveSheet.ListObjects("Tabelle4").Range.AutoFilter Field:=1, Criteria1:= _
">"
ActiveSheet.Range("Tabelle4").SpecialCells(xlCellTypeVisible).Copy
Windows("RSBG_Tagetik_Upload-Template_incl. Category only FULLv2.6 .xlsm"). _
Activate
' Range("A3").Select
Range("a" & ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1).Select
ActiveSheet.Paste
End Sub
Aktuell werden drei Tabellen angesprochen. In der ersten Spalte werden alle Leerstellen herausgefiltert und in die andere Datei kopiert. Der Code funktioniert also (müsste ich nur noch als schleife anlegen).
Jetzt aber möchte ich nicht mehr die Tabellen ansprechen, da es keine Tabellenformatierung mehr geben soll, sondern ich möchte per Code die drei Bereiche ansprechen und wie gehabt kopieren und einfügen.
Beispiel: Tabelle3 befindet sich in den Spalten AP:BC.
Problem ist, dass es mehrere Dateien gibt und die Spalten bzw. Bereiche, in denen Daten enthalten sind immer unterschiedlich ausfallen. Aber jeder Bereich hat eine eindeutige Kennzeichnung wie die Überschrift: Einbuchung HB1.
Wie müsste ich den obigen Code anpassen, dass der Code die Überschrift ausliest, dann den gesamten Bereich filtert (Leerzeilen müssen ausgeblendet werden), und mir in die andere Datei kopiert?
Würde mich über support tierisch freuen. Hoffe den Sachverhalt einigermaßen verständlich dargestellt zu haben.
Im Voraus vielen Dank für euren Support!
Grüße
KamKam
Anzeige