Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Tabellen per Makro einfügen
#1
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
Antworten Top
#2
Du brauchst nur 1 Arbeitsblatt für diene Daten.
Benütze eine 'Intelligente' Tabelle.
Splitten ähnliche Daten ist nie eine gute Idee.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#3
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
Antworten Top
#4
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
Antworten Top
#5
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
Antworten Top
#6
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
Antworten Top
#7
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
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • bigrudi1966
Antworten Top
#8
Hallo,

was soll ich sagen. Einwandfrei!

Vielen lieben Dank.

VG
Rudi
Antworten Top
#9
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
Antworten Top
#10
Da capo al fine: https://www.clever-excel-forum.de/Thread...#pid239568
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste