Excel VBA - Tabellenblatt kopieren, in Folgemonat umbenennen und Wert aus momentanem Monat übertragen. Kann mir jmd. helfen?

1 Antwort

Vom Beitragsersteller als hilfreich ausgezeichnet

Hallo,

das neue Blatt kommt vermutlich als letztes und die Vorlage direkt davor? Dann könntest du den zu kopierenden Wert so anwählen (Zeilen und Spaltennummern natürlich entsprechend anpassen):

Worksheets(Worksheets.Count).Cells(1, 1) = Worksheets(Worksheets.Count - 1).Cells(1, 1).Value


KeinPlanhaber 
Beitragsersteller
 18.03.2020, 14:52

Vielen Dank. Super Tipp. Hat bei mir zwar nur mit Range funktioniert, aber es funktioniert. Du warst ne große Hilfe.

Jetzt muss ich nur noch die Umbenennung irgendwie hinbekommen, sodass bspw. nach "Mrz. 20" das nächste Tabellenblatt "Apr. 20" heißt. (Ich bekomms derzeit nur als "3" oder "4" hin.)

Hast du hierfür zufällig auch gleich die passende Lösung?

DanKirpan  18.03.2020, 15:05
@KeinPlanhaber

klingt als hättest du es bereits geschafft Monats- und Jahreszahl als Zahlvariable zu speichern (was mir nicht gelingen will), dann kannst du diese Variablen hierdrin nutzen:

Worksheets(Worksheets.Count).Name = Format(DateAdd("m", 1, DateSerial(Jahr, Monat, 13)), "mmm. yyyy")

KeinPlanhaber 
Beitragsersteller
 19.03.2020, 08:28
@DanKirpan

Das Format ist jetzt schon mal richtig, aber scheint so als hab ich es noch nicht geschafft Monats- und Jahreszahl als Zahlvariable zu speichern. (Nur noch Jan. 2000) Trotzdem riesigen Dank an dich.

DanKirpan  19.03.2020, 09:17
@KeinPlanhaber

Bitte :D

ich scheine gestern zu kompliziert gedacht zu haben, so einfach geht es:

Monat = Month(Worksheets(Worksheets.Count - 1).Name)

Jahr = Year(Worksheets(Worksheets.Count - 1).Name)

KeinPlanhaber 
Beitragsersteller
 19.03.2020, 09:44
@DanKirpan

Okay, jetzt hab ich doch irgendwas doppelt. Sorry, ich versteh's grad überhaupt nicht mehr.

Hier mal das Problem:

Sub Neuer_Monat()

'Vorlage kopieren:

   Sheets("Vorlage").Select
   Sheets("Vorlage").Copy After:=Sheets(Sheets.Count)

'Kopie in nächsten Monat umbenennen:

   Worksheets(Worksheets.Count).Name = Format(DateAdd("m", 1, DateSerial(Jahr, Monat, 13)), "mmm. yyyy")
   Monat = Month(Worksheets(Worksheets.Count - 1).Name)
   Jahr = Year(Worksheets(Worksheets.Count - 1).Name)

'Wert aus Vormonat übertragen:

   Worksheets(Worksheets.Count).Range("B2").Value = Worksheets(Worksheets.Count - 1).Range("B12").Value

End Sub

Und ohne das:

Worksheets(Worksheets.Count).Name = Format(DateAdd("m", 1, DateSerial(Jahr, Monat, 13)), "mmm. yyyy")

wird gar nichts umbenannt :-/

DanKirpan  19.03.2020, 09:50
@KeinPlanhaber

Du weist den Variablen Monat und Jahr gerade erst den Wert zu nachdem du sie bereits verwendest.

DanKirpan  19.03.2020, 09:59
@KeinPlanhaber

und beim Wert kopieren müsste dieses Value weg dann sollte es eigentlich funktionieren:

Worksheets(Worksheets.Count).Range("B2").Value = Worksheets(Worksheets.Count - 1).Range("B12").Value

KeinPlanhaber 
Beitragsersteller
 19.03.2020, 10:20
@DanKirpan

Ahhh, ja klar! Jetzt ergibt es Sinn.

So funktioniert es natürlich.

Vielen Dank für deine Zeit und Geduld mit mir!