ich habe eine Excel-Datei, welche aus einem Input-Sheet und mehreren Ziel-Sheets (in meiner beigefügten Beispiel Datei: "Projekt A", "Projekt B", "Projekt C" und "Projekt D") besteht. Nun möchte ich ein Makro schreiben, welche den Inhalt des Input-Sheets in die einzelnen Ziel-Sheets kopiert.
Hier ist der Link zur vereinfachten Datei zum besseren Verständnis: https://www.herber.de/bbs/user/157465.xlsm
Der Inhalt der Tabelle des Input-Sheets wird regelmäßig aktualisiert und nicht jedes Mal sind neue Informationen für alle Projekte enthalten (z.B. wenn diese abgeschlossen sind), des Weiteren kommen mit der Zeit weitere Projekte hinzu (deren Tabs sind beim Auslösen des Makros bereits erstellt). Deshalb vermute ich, dass ich für das Ziel-Sheet eine Variable etablieren muss.
Mein Ansatz ist, dass ich einen Loop laufen lasse über die Zeilen des Input-Sheets.
Option Explicit
Sub ProjektdatenVerteilen()
Sheets("Input").Activate
Dim LastRow As Long, FirstRow As Long
Dim Row As Long
With ActiveSheet
FirstRow = 5
LastRow = 50
For Row = FirstRow To LastRow Step 1
If Range("A" & Row).Value > "" Then
Range("B" & Row).Copy
Sheets(?).Range("B1").PasteSpecial Paste:=xlPasteValues
Range("C" & Row).Copy
Sheets(?).Range("C1").PasteSpecial Paste:=xlPasteValues
End If
End with
Mein Gedanke war, dass ich innerhalb des Loops am Anfang eine Variable definiere, aber da weiß ich nicht genau, wie das funktioniert. Ich habe dies so versucht, aber das ist wohl nicht richtig.
Dim Zielsheet As Range
Zielsheet = Range("A" & Row).Value
Und dass dann der "Einfügen" Befehl entsprechend so aussieht:
Sheets(Zielsheet).Range("B1").PasteSpecial Paste:=xlPasteValues
Wenn mir jemand hier helfen kann, wäre ich sehr dankbar!Das zweite Problem wäre dann, dass die Daten nicht wie oben beschrieben in B1 und C1 der Ziel-Sheets kopiert werden sollen, sondern an die jeweilige Stelle des entsprechenden Datums (Monatsende). Hier müsste die Variable "Monatsende" wahrscheinlich vor dem Loop definiert werden, da sie für alle Daten im Input-Sheet gleich ist und die Variable "Zielzeile" dann wieder innerhalb des Loops, da die Zielzeile in jedem Ziel-Sheet unterschiedlich ist.
Leider hat mein Ansatz hier auch nicht funktioniert.
'Vor dem Loop die Definition von "Monatsende"
Dim Monatsende As Date
Monatsende = Sheets("Input").Range("E2")
'Innerhalb des Loop dann die Definition von "Zielzeile"
Dim Zielzeile As Range
Zielzeile = Columns(1).Find(what:=Monatsende)
'Und dann das Einfügen wie folgt
Sheets(?).Range("B" & Zielzeile.Row).PasteSpecial Paste:=xlPasteValues
Mir ist bewusst, dass das wahrscheinlich alles ziemlich wild aussieht. Ich bin noch recht neu in der VBA Welt und habe mir den bisherigen Stand aus verschiedenen Google-Suchen zusammengebastelt.Über jede Hilfe oder jeden Tipp bin ich sehr dankbar!!
Viele Grüße
Rapha