Office: Tabellenblätter anlegen und benennen

Helfe beim Thema Tabellenblätter anlegen und benennen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich benötige jedes Jahr zu Beginn eine Arbeitsmappe mit 52 Tabellenblättern für die Kalenderwochen, die dann über das Jahr befüllt werden. Jedes... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von archi01, 17. Februar 2013.

  1. Tabellenblätter anlegen und benennen


    Hallo,
    ich benötige jedes Jahr zu Beginn eine Arbeitsmappe mit 52 Tabellenblättern für die Kalenderwochen, die dann über das Jahr befüllt werden. Jedes Tabellenblatt muss benannt werden mit Anfangs- und Enddatum der ARBEITSwoche (Mo bis Fr). ZB Blatt 1: 01.01-04.01, Blatt 2: 07.01.-11.01.
    Bisher haben wir das händisch gemacht. Tut aber weh *wink.gif*
    Ich hatte nun folgende Strategie erdacht:
    Grundgedanke dabei ist eine Vorlagemappe zu erstellen mit einem Datumsblatt aus dem dann die Kalenderwochentabellenblätter generiert werden.
    Ich habe also in Blatt 1 eine Tabelle angelegt. In Zelle A1 wird die Jahreszahl eingetragen. In Zelle A3 steht der erste Jahrestag mittels der Formel ="01.01."&A1. In den Zellen A4 bis A367 werden die Jahresdaten nun über die Formel A3+1, A4+1, ... ermittelt.
    In der Spalte B ermittele ich parallel dazu über die Formel =KALENDERWOCHE(A3;2) die Kalenderwochen.
    In der Spalte C trage ich parallel dazu nur noch die ersten und letzten Tage der Kalenderwochen als entsprechende Zahlen ein. Dies geschieht mit der Formel =WENN(ODER(B3B2;B3B4);B3;"")
    Die Idee ist nun, Excel mittels VBA zu sagen es soll für jede KW ein Blatt anlegen und jedes Blatt mit den beiden Datumswerten aus Spalte A benennen bei denen in Spalte C ein gleicher Eintrag steht.
    Aber wie leider häufig (man könnte auch sagen immer) kann ich das nicht umsetzen.
    Evtl. gibt es ja auch einen leichteren Ansatz.
    Gruß und Danke
    Andreas

    :)
     
    archi01, 17. Februar 2013
    #1
  2. Hallo andreas,

    hilft dir das ein wenig weiter?


    PHP:
             Sub Kalendererstellen()

    Dim Sheet1 As Worksheet
    Dim sheetnew 
    As Worksheet
    Dim a 
    As Integer
    Dim i 
    As Integer

    Set Sheet1 
    ThisWorkbook.Worksheets("Tabelle1")
    1

    For 1 To 52
    Set sheetnew 
    Worksheets.Add(After:=Sheets(i))
    With sheetnew
    .Name Sheet1.Range("B" ahier muss deine Zellbeziehung rein aus für deine Bezeichnung
    End With
    1
    Next

    End Sub
     
    Diamant, 19. Februar 2013
    #2
  3. Hallo Andreas,

    Ich habe mal eine Tabelle erstellt und den Code von Diamant entsprechend angepaßt. Allerdings habe ich immer 53 Wochen für 365 Tage.

    Unterstellt habe ich Excel 2010

    Gruß
    Aloys
     
    aloys78, 19. Februar 2013
    #3
  4. Tabellenblätter anlegen und benennen

    Das liegt daran, dass es immer mehr Wochen sind. die Woche in Zeile 55 würde aber, da nur 2 Tage noch vom alten Jahr sind, schon zu 2025 KW1 zählen im Kalender. Hier muss diese aber mitgeschrieben werden - insofern ist dein Cheet correct *Smilie

    Gruß
    Norbert
     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
    Diamant, 19. Februar 2013
    #4
  5. Hallo Diamant und aloys78,
    erstmal danke euch beiden für die hilfe. Habe noch nichts angesehen. Folgender Grund:
    Die Sicherheitseinstellungen hier erlauben mir keinen Dateienup- bzw download. Daher kann ich den Code von aloys78 nicht ansehen. Wäre toll, wenn Du ihn noch im Thread posten könntest *rolleyes.gif*
    @Diamant: Deinen Code habe ich jetzt nicht eingegeben, weil ich irgendwie das Gafühl hatte da stimmt eine Kleinigkeit nicht, oder?

    Also vielen Dank euch beiden nochmal für die Hilfe. Freue mich immer sehr darüber *Smilie

    Gruß
    Andreas
     
    archi01, 19. Februar 2013
    #5
  6. Hier der Code von Aloys:


    PHP:
             Sub Kalendererstellen()
    Dim Sheet1 As Worksheet
    Dim sheetnew 
    As Worksheet
    Dim r 
    As Integer
    Dim i 
    As Integer
    Set Sheet1 
    ThisWorkbook.Worksheets("Tabelle1")
    3
    For 1 To 53
    Set sheetnew 
    Worksheets.Add(After:=Sheets(i))
    With sheetnew
    .Name Sheet1.Range("I" rTabellenname
    End With
    1
    Next
    End Sub
     
    Diamant, 19. Februar 2013
    #6
  7. Hallo Diamant,
    habe doch mal Deinen Code eingegeben. Bin halt so neugierig *wink.gif*
    Ich habe Dein B durch A3 (hier steht das erste Datum, also der 01.01.2013, drin) ersetzt. Das Makro hat mir dann ganz viele Blätter angelegt (ich nehme mal an 52 Stk) und die Blätter fortlaufend mit dem Tagesdatum aus Spalte A benannt. Begonnen hat das Makro merkwürdigerweise beim 29.01.2013. Die blätter heißen also 29.01.2013, 30.01.2013, 31.01.2013.... bis zum 06.02.2013. Dann erfolgt ein großer Sprung auf den 04.11.2013 und es geht weiter mit 05.11.2013, 06.11.2013... bis zum 16.12.2013. ich nehme an dann sind es 52 Blätter.
    Ziel:
    Eigentlich sollte das Makro jedes Blatt mit dem ersten und letzten Tagesdatum der Arbeitskalenderwoche benennen. Also das Blatt zur ersten KW 2013 hieße dann 01.01.-04.01. Das Blatt für die KW2 hieße 07.01.-11.01. etc.

    Meine Tabelle war nur das Abbild einer von meinem manchmal nicht so hilfreichen Hirn ausgedachten Struktur um dann jedes Jahr die Daten einfach erstellen zu können indem man in Zelle A1 die Jahreszahl aktualisiert, dadurch der ganze "Kalender" in Spalte A ab Zelle A3 aktualisiert wird und man dann eben die neuen Daten zur Verfügung hat. Die Spalten B und C hatte ich in diesem Zusammenhang lediglich als Hilfsspalten gedacht, sehe aber gerade das ich da auch einen Formelfehler habe, den ich mit meinem Wissen garnicht korrigieren kann *stupid

    Also eigentliches Ziel habe ich in Abschnitt Ziel dargestellt. Hoffe das war nun verständlicher.
    Beste Grüße
    Andreas
     
    archi01, 19. Februar 2013
    #7
  8. Tabellenblätter anlegen und benennen

    Vielen Dank für das Reinstellen.
    Na dann habe ich das ja gerade ausprobiert.
    Was sagst Du dazu? Ich hoffe ich stehle Dir nicht allzu viel Zeit.
    Beste Grüße
    Andreas
     
    archi01, 19. Februar 2013
    #8
  9. Hallo Norbert,
    ah ja. Nun habe ich zumindest verstanden, warum das Makro bei meiner Anpassung zu Ende Januar beginnt. Ich habe für I den Wert A3 eingesetzt. Dann beginnt das Makro natürlich bei Zelle A3+1, also A31 *mrcool Jetzt darfst Du Schlauerle zu mir sagen hahaha.
    O.k., ein einfaches A würde reichen, aber die Blätter werden auch dann "nur" mit einem fortlaufenden Tagesdatum benannt.
    Beste Grüße
    Andreas
     
    archi01, 19. Februar 2013
    #9
  10. Naja...da ich deine Datenstruktur nunmal nicht 100% kenne, hatte ich mir gedacht ich geb dir einen Beispielcode zur Tabellenerstellung. *wink.gif*

    wenn ich dich richtig verstanden hatte, dann wolltest du die Tabellennamen ja per Formeln in eine Spalte untereinander schreiben, oder?

    Gruß
    Norbert
     
  11. Hallo Norbert,
    danke für den Gedankenkick. Das hat mich auf die richtige Spur gebracht. Habe das jetzt so hinbekommen, das in Spalte A die Blattbezeichnungen so stehen, daß dein Makro sie nur noch übernehmen muss. Ein kleines Aber gibt es jedoch noch:
    Wäre es Dir möglich, das Makro so zu ergänzen das es Leerzellen überspringt bzw ignoriert? Bislang kommt bei der ersten Leerzelle eine Fehlermeldung. Ich bekomme die Tabelle aber nur so hin, dass eben in jeder siebten Zelle die korrekte Wochenbezeichnung steht. Die anderen Zellen sind leer (eigentlich nicht wirklich leer. Es steht halt die Formel =WENN(B3>1;"";G3&"-"&G7) drin, sodass in diesen Zellen nichts angezeigt wird).
    Geht das?
    Beste Grüße
    Andreas
     
  12. Kannst du mir bitte nochmal deinen derzeit aktuellen Code hier posten? Dann kann ich die derzeitigen Variablen verwenden. Ich weiss schon nicht mehr welchen du verwendet hast bei dir *rolleyes.gif*

    Gruß
    norbert
     
  13. Tabellenblätter anlegen und benennen

    Code:
    Danke *Smilie
     
  14. und hier das Update dazu *Smilie


    PHP:
             Sub Kalendererstellen()
    Dim Sheet1 As Worksheet
    Dim sheetnew 
    As Worksheet
    Dim Blattname 
    As String
    Dim i 
    As Integer
    Dim LetzteZeile 
    As Integer

    Set Sheet1 
    ThisWorkbook.Worksheets("Tabelle1")
    LetzteZeile Sheet1.Cells(Rows.Count1).End(xlUp).Row

    Blattname 
    Sheet1.Name
    For 1 To LetzteZeile
    If Sheet1.Cells(i1).value <> "" Then
    Set sheetnew 
    Worksheets.Add(After:=Sheets(Blattname))
    With sheetnew
    .Name Sheet1.Range("A" iTabellenname
    End With
    Blattname 
    sheetnew.Name
    End 
    If
    Next
    End Sub
     
  15. Perfekt! *winner
    Vielen Dank. Das hilft wirklich weiter.
    Beste Grüße
    Andreas
     
Thema:

Tabellenblätter anlegen und benennen

Die Seite wird geladen...
  1. Tabellenblätter anlegen und benennen - Similar Threads - Tabellenblätter anlegen benennen

  2. commandbutton fließend auf dem Tabellenblatt einrichten

    in Microsoft Excel Hilfe
    commandbutton fließend auf dem Tabellenblatt einrichten: Hallo zusammen. Habe mal eine wahrscheinlich einfachen Frage. Ich richte einen CommandButton auf einem Tabellenblatt in EXCEL ein. Nun möchte ich, dass dieser Button immer in der gleichen Position...
  3. Tabellenblatt in neue Mappe kopieren

    in Microsoft Excel Hilfe
    Tabellenblatt in neue Mappe kopieren: Hallo zusammen, ich hoffe, jemand kann mir weiterhelfen. Das Vorhaben: Nach Befüllen einer Excel-Tabelle soll ein Blatt daraus in eine eigenständige Mappe kopiert werden und alle Verknüpfungen...
  4. Beträge in anderem Tabellenblatt anzeigen lassen mit Bezug auf einen Monat und ohne Leerzellen

    in Microsoft Excel Hilfe
    Beträge in anderem Tabellenblatt anzeigen lassen mit Bezug auf einen Monat und ohne Leerzellen: Hello, nun habe ich noch ein kleines Problem... ich habe es schon mal versucht, aber komme nicht zum richtigen Ergebnis... Jetzt soll ein Betrag in einem anderen Tabellenblatt angezeigt...
  5. Daten aus einem Tabellenblatt in ein anderes kopieren ohne Leerzellen anzuzeigen

    in Microsoft Excel Hilfe
    Daten aus einem Tabellenblatt in ein anderes kopieren ohne Leerzellen anzuzeigen: Hallo zusammen, ich habe folgendes Problem. Ich würde gerne in einem Tabellenblatt, bestimmte Daten aus einem anderen Tabellenblatt automatisch anzeigen lassen. Tabellenblatt 1 = Grundlage...
  6. Formel für Auswahlmöglichkeiten im Tabellenblatt

    in Microsoft Excel Hilfe
    Formel für Auswahlmöglichkeiten im Tabellenblatt: Hallo liebe Community, ich hoffe, dass ich die Herausforderung richtig erkläre :-) Ich benötige eine Formel, die mir Daten ausspuckt, wenn in einer anderen Zelle ein bestimmter Wert ausgewählt...
  7. Zeile per Klick farblich machen auch für weitere Tabellenblätter möglich?

    in Microsoft Excel Hilfe
    Zeile per Klick farblich machen auch für weitere Tabellenblätter möglich?: Hallo. Ich habe mehrere Tabellenblätter. Das 1. Blatt ist Bedingt formatiert mit: =ZEILE()=ZELLE("Zeile") dazu die Farbe grün und dem VBA Code: Target.Calculate (Datei ist im Anhang) Wenn ich...
  8. Verweis oder dynamischer Tabellenname erstellen

    in Microsoft Excel Hilfe
    Verweis oder dynamischer Tabellenname erstellen: Hallo liebe Wissensgemeinde, ich habe ein eigentlich sehr simples Problem. Meine Excel-Datei "Wunschdienstplan" besteht aus 2 Arbeitsblättern. Im Arbeitsblatt1 werden mittels Dropdown-Feld die...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden