Clever-Excel-Forum

Normale Version: Tabellen per Makro einfügen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich habe folgendes Makro hinterlegt um Tabellenblätter einzufügen.

Code:
Sub FuegeTabellenEin()
Dim Anzahl As Integer
Dim i As Integer
Anzahl = InputBox("Wie viele Blätter einfügen?")
For i = 1 To Anzahl
 Worksheets.Add after:=Worksheets(Worksheets.Count)
 Worksheets(Worksheets.Count).Name = Date + i
Next i
End Sub

Wie müsste der Code angepasst werden wenn ich zusätzlich zur Anzahl der Tabellenblätter auch das Datum festlegen möchte. Also nicht wie im Code mit dem heutigen Datum!

VG
Rudi
Du brauchst nur 1 Arbeitsblatt für diene Daten.
Benütze eine 'Intelligente' Tabelle.
Splitten ähnliche Daten ist nie eine gute Idee.
Hallo

ich stimme  snb  zu, besser ist es alle Daten in einer tabelle zu sammeln. Dasvon abgesehen funktioniert der Code sogar.
Bei 2 Tabellen fügt er den "23.11.20121 + 24.11.2021" ein!

mfg Gast 123
Hallo zusammen,

danke für die Antworten. Ich glaube, dass ich meine Herausforderung falsch formuliert habe.

Das einfügen der Tabellenblätter funktioniert auch reibungslos. Ich würde gerne Tabellenblätter, z.B. ab dem 06.12.2021 einfügen weil bis zu diesem Datum Tabellen bereits vorhanden sind. Darauf läuft meine Frage hinaus. Sorry wenn ich mich da falsch ausgedrückt habe.

VG
Rudi
Hallo

bei vielen Blättern verliert man leicht die Übersicht über den letzten Tag.  Es sei denn das Makro ermittelt ihn automatisch, und erstellt ab dem Tag weitere Blätter.
Bitte mal testen ob das so richtig ist?

mfg Gast 123

Code:
Sub FuegeTabellenEin()
Dim Anzahl As Integer, i As Integer
On Error Resume Next
'Letztes Datum ermitteln
For i = 1 To Worksheets.Count
   If CDate(Worksheets(i).Name) > Datum Then _
      Datum = CDate(Worksheets(i).Name)
Next i

'letztes Datum in inputBox anzeigen
Anzahl = InputBox("Wie viele Blätter einfügen?" & vbLf & "Letztes Datum:  " & Datum)
If Anzahl = Empty Then Exit Sub

'neue Blätter ab gefundenem Datum einfügen
For i = 1 To Anzahl
Worksheets.Add after:=Worksheets(Worksheets.Count)
Worksheets(Worksheets.Count).Name = Datum + i
Next i
End Sub
Hallo Gast 123,

konnte es jetzt gerade testen. Klappt einwandfrei.

Eine Frage hätte ich dennoch. Nehmen wir mal an, die Tabelle 06.12.2021 ist komplett eingerichtet, formatiert etc.

Wie kann ich die Formatierungen etc. beim Einfügen der Tabellen mit Deinem VBA automatisch übernehmen? Ist das ein großer Aufwand?

VG
Rudi
Hallo

da habe ich noch eine ganz andere Idee, die ist noch einfacher.  Erstelle dir ein Vorlageblatt, nenne es "Vorlage", das kannst du auch ausblenden.
Mit dieser geänderten VBA Zeile kopierst du einfach die Vorlage und benennst das kopierte Blatt mit dem zweiten Befehl automatisch um.  Probier es bitte mal aus.

Code:
Worksheets("Vorlage").Copy after:=Worksheets(Worksheets.Count)     'statt ADD den Copy Befehl verwenden!!  Das sollte klaooen.

mfg Gast 123
Hallo,

was soll ich sagen. Einwandfrei!

Vielen lieben Dank.

VG
Rudi
Hallo zusammen,

bisher hat dieser Code einwandfrei funktioniert:

Code:
Sub FuegeTabellenEin()
 Dim Anzahl As Integer, i As Integer
 On Error Resume Next
 'Letztes Datum ermitteln
 For i = 1 To Worksheets.Count
    If CDate(Worksheets(i).Name) > Datum Then _
       Datum = CDate(Worksheets(i).Name)
 Next i
 'letztes Datum in inputBox anzeigen
 Anzahl = InputBox("Wie viele Blätter einfügen?" & vbLf & "Letztes Datum:  " & Datum)
 If Anzahl = Empty Then Exit Sub
 'neue Blätter ab gefundenem Datum einfügen
 For i = 1 To Anzahl
Worksheets("Vorlage").Copy after:=Worksheets(Worksheets.Count)
Worksheets(Worksheets.Count).Name = Datum + i
 Next i
 End Sub


Als ich den Code heute gestartet habe wurden die erzeugten Tabellenblätter nicht mit Datum, sondern mit Vorlage(2), Vorlage(3), Vorlage(4) etc. bezeichnet.

Anm.: Die Tabellenblätter die ich anlegen wollte sind alle für das Jahr 2022 - Falls es etwas damit zu tun hat Wink

Viele Grüße
Rudi