413 Aufrufe
Gefragt in Tabellenkalkulation von
wieder getaggt
Hallo zusammen

Ich arbeite mit Excel und habe folgendes Problem.

Ich habe mir die erste Tabelle gemacht und möchte die jetzt 365x kopieren samt Inhalt. Rechts Klick -> Verschieben oder Kopieren -> Kopie erstellen und Okei klicken... das 365x geht ziemlich lange... zudem sollte Tabelle 1 das Datum 01.01.2019 und die letzte Tabelle dann den 31.12.2019 sein..

Ich weiss das es mit Makros wesentlich einfacher geht, leider versteh ich noch nicht wirklich viel davon..

Weiss jemand eine passende Lösung?

4 Antworten

0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)

Hi,

benenne die 1. Tabelle 01.01.2019 - dann kannst du mit folgendem Makro diese Tabelle entsprechend oft kopieren:

Sub TabsErstellen()
    Dim lngZaehler As Long
    For lngZaehler = 1 To 364
        Worksheets("01.01.2019").Copy after:=Worksheets(Worksheets.Count)
        ActiveSheet.Name = DateValue("01.01.2019") + lngZaehler
    Next lngZaehler
End Sub

Bis später, Karin

0 Punkte
Beantwortet von
Sali

Wow das hat einwandfrei funktioniert! Dank dir für die schnelle Antwort!! ist es möglich das im Feld B2 jeweils auch das passende Datum ist?

Also sprich Tab1 (01.01.2019) und Feld B2 01.01.2019 und dann natürlich fortlaufend... Tab2 (02.01.2019) Feld B2 02.01.2019??

Dank dir!!
0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)

Hi,

da musst du nur die beiden blau markierten Zeilen ergänzen:

Sub TabsErstellen()
    Dim lngZaehler As Long
    Worksheets("01.01.2019").Range("B2") = DateValue("01.01.2019")
    For lngZaehler = 1 To 364
        Worksheets("01.01.2019").Copy after:=Worksheets(Worksheets.Count)
        ActiveSheet.Name = DateValue("01.01.2019") + lngZaehler
        ActiveSheet.Range("B2") = DateValue("01.01.2019") + lngZaehler
    Next lngZaehler
End Sub

Oder meinst du, dass in den bereits vorhandenen (mit dem Code aus meinem vorhergehenden Beitrag erstellten) Tabellenblättern das Datum nachgetragen wreden soll? Dann benötigst du ein extra Makro:

Sub DatumEintragen()
    Dim lngZaehler As Long
    Dim wksTab As Worksheet
    For Each wksTab In Worksheets
        If IsDate(wksTab.Name) Then
            wksTab.Range("B2") = DateValue(wksTab.Name)
        End If
    Next wksTab
End Sub

Bis später, Karin

0 Punkte
Beantwortet von
Guten Morgen

Ja genau so hab ich mir das vorgestellt! Es funktioniert einwandfrei!!

 Dank dir viel mal du hast mir ne haufen Arbeit abgenommen!!!

Gruss Dominik
...