Excel-Makro (Office)

Detlef, Montag, 22.04.2019, 23:47 (vor 348 Tagen)

Ich bitte euch um Hilfe, da ich kein Makro-Spezialist bin.
In einem Excel-Dokument habe ich für jeden jeden Monat ein Tab (01 01-15, 02 01_15, 03 01-15, usw.). Da alle gleich aussehen habe ich zusätzlich ein Tab EA mit einer neuen Formatierung (Spalten H - AG) erstellt,die ich auf alle Monate 01-12 übertragen wollte. Ich habe dies für den Monat 05 01-15 erstellt und das Makro in den anderen Monaten ausführen wollen. Leider springt das Makro immer wieder in in den Monat 05 zurück und führt ihn da aus. Ich muss also im Makro vom Monat 05 auf das jeweilige Tab wo es ausgeführt wird, geändert werden. Hier stoße ich an meine Grenzen und bitte um eure Hilfe, wofür ich mich jetzt schon bedanke. Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt. Das Makro ist nachtehend beigefügt.

Sub Format_G_AG()
'
' Format_G_AG Makro
'
Sheets("EA").Select
Columns("H:AG").Select
Selection.Copy
Sheets("05 01-15").Select
Columns("H:AG").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("AI12").Select
End Sub

Excel-Makro

Martin Asal @, Dienstag, 23.04.2019, 10:38 (vor 348 Tagen) @ Detlef

Ich bitte euch um Hilfe, da ich kein Makro-Spezialist bin

Wenn man erst mal soweit ist, dass die automatisch aufgezeichneten Makros nicht mehr ausreichen, ist der Zeitpunkt gekommen, an dem man anfangen sollte, das VBA-Tutorial durchzuarbeiten ;-)

Leider springt das Makro immer wieder in in den Monat 05 zurück und führt ihn da aus

Wie du unschwer an deinem Code ablesen kannst, wird nur an einer einzigen Stelle der Name eines Tabs erwähnt, und zwar hier:

Sheets("05 01-15").Select

Es geht also darum, hier alle Namen anzusprechen, von "01" bis "12". Dazu packen wir den ganzen Code in eine Schleife von 1 bis 12 und ändern diese eine Zeile so, dass sich der Name entsprechend ändert. Natürlich darf es nicht "1 01-15" heißen, sondern "01 01-15" usw, deswegen formatieren wir die Zahl noch. Das Ergebnis (ungetestet) sieht dann wie folgt aus:

For i = 1 To 12
 
    Sheets("EA").Select
    Columns("H:AG").Select
    Selection.Copy
    Sheets(Format(i, "00") & " 01-15").Select
    Columns("H:AG").Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    Range("AI12").Select
 
Next


Martin

Danke Martin

Detlef, Dienstag, 23.04.2019, 10:43 (vor 348 Tagen) @ Martin Asal

Martin ich danke dir. Damit werde ich wohl klarkommen und habe was dabei gelernt. Vielen Dank.
Gruß aus Hamburg
Detlef

RSS-Feed dieser Diskussion
powered by my little forum