Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Tabellen Automatisch erstellen und Umbenennen

Tabellen Automatisch erstellen und Umbenennen
07.02.2008 20:44:00
Juergen
Hallo Ihr Excel Profis
Ich habe mich an einer Aufgabe so festgefressen das ich nicht mehr weiterkomme darum bitte ich Euch um mithilfe.
Das Problem:
Auf ein Tabellenblatt habe ich ein Drehfeld mit einer Zelle (ZB a2)verknüpft und in der Zelle steht dann die Jahreszahl.
Außerdem habe ich dort noch ein Botton den Ich das gewisse Makro zuweisen möchte.
Dieses Makro soll dann den Wert aus der Zelle nehmen und ein Tabellenblatt erstellen,
hat auch alles soweit geklappt aber wenn ich ein zweites mal auf den Botton Drücke erstellt er mir eine an dere Tabelle und das soll vermieden werden.
Kurz und knapp: Beim Klick auf den Botton soll die Tabelle erstellt werden,sollte man ein zweites mal Klicken soll eine Fehlermeldung erscheinen das die Tabelle schon vorhanden ist.
Es müßte evt.mit einer Funktion gearbeitet werden, die prüft ob die Tabelle schon vorhanden ist.
Mein kläglicher Versuch sieht so aus:ohne Funktion

Sub Tabelle_erstellen()
zb = ActiveSheet.Index
Sheets("Tabelle1").Activate
Range("A23:L37").Copy
n = [a2].Value
Sheets.Add
For Each w In Worksheets
ActiveSheet.Name = n
ActiveSheet.Paste
On Error Resume Next
w.Name = n
zb = zb + 1
Next w
End Sub


Ich bedanke mich jetzt schon mal im vorraus und hoffe das das Makro vielen anderen dann ebenfalls nützlich sein kann.
Gruß
Juergen

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellen Automatisch erstellen und Umbenennen
07.02.2008 21:06:00
{Boris}
Hi Juergen,
mit dieser Funktion prüfst Du, ob das Blatt schon da ist.

Option Explicit
Function schon_da(Blattname As String) As Boolean
Dim s As String
On Error Resume Next
s = Worksheets(Blattname).Name
If Err = 0 Then schon_da = True
Err.Clear
On Error GoTo 0
End Function
Sub test()
Const strBlattname As String = "Tabelle2"
If schon_da(strBlattname) Then
MsgBox "Mich gibbet schon"
Else
MsgBox "Mich gibbet noch nicht"
End If
End Sub


Grüße Boris

Anzeige
AW: Tabellen Automatisch erstellen und Umbenennen
07.02.2008 21:20:00
Jan3
Hi,
Du könntest mal folgenden Code probieren.

Sub Tabelle_erstellen()
Dim wks As Worksheet
Dim wks1 As Worksheet
Set wks = Worksheets("Tabelle1")
On Error Resume Next
wks.Range("A23:L37").Copy
n = wks.Range("A2")
If n  "" Then
For Each w In Worksheets
If w.Name = n Then
MsgBox "Tabellenblattname schon vorhanden!"
Exit Sub
End If
Next w
Sheets.Add
ActiveSheet.Name = n
ActiveSheet.Paste
Else
MsgBox "Kein Tabellenblattname in Zelle A2!"
End If
End Sub


Jan

Anzeige
AW: Tabellen Automatisch erstellen und Umbenennen
07.02.2008 21:43:58
Juergen
Hallo Jan3
Leider kommt da das selbe bei raus das erste mal erscheint die Umbenennung und beim 2ten mal erscheint eine zusätzliche Tabelle Namens (Tabelle(Nr.))
Aber Ich muß sagen das mit Copy hast Du besser gelöst.Gefallt mir jedenfalls besser über Variablen.
Trotzdem erstmal Danke für Dein Versuch.
Gruß Juergen

Anzeige
AW: Tabellen Automatisch erstellen und Umbenennen
07.02.2008 21:56:05
Matthias
Hallo
Ich habe das auch mitverfolgt, und bei mir läuft der Code von Jan bestens.
Ich hab nur noch n und w deklariert und es läuft wie geschmiert.
und ein Application.CutCopyMode = False eingefügt
Ich lad mal meine Mappe hoch. Probier mal ob sie bei Dir läuft.
hiermal das File:
https://www.herber.de/bbs/user/49725.xls
Gruß Matthias

Anzeige
AW: Tabellen Automatisch erstellen und Umbenennen
07.02.2008 22:09:36
Juergen
Du hast recht Jan sein Makro in der geladenen Tabelle Klappt ohne wenn und aber genau so wollte Ich es haben .Aber jetzt muß ich mal sehn warum das in meiner nicht Funktioniert hat.
Gruß und Danke sagt
Juergen

AW: Tabellen Automatisch erstellen und Umbenennen
08.02.2008 07:48:00
Jan3
Hi,
Ich habe es bei mir getestet. Danach funktioniert der Code. Ist das Tabellenblatt bereits vorhanden,
wird kein neues Tabellenblatt angelegt und der Kopiervorgang wird nicht ausgeführt. Es wird dabei immer auf die Zelle A2 des Tabellenblattes Tabelle1 zurückgegrifffen.
Hast Du den Code so übernommen oder hast Du Veränderungen vorgenommen?
Jan

Anzeige
AW: Tabellen Automatisch erstellen und Umbenennen
08.02.2008 19:39:52
Juergen
Hallo Jan
Dein Makro funktioniert einwandfrei.Es war wohl ein Fehler von mir habe wohl der Schaltfläche eines meiner alten Makros wieder zugeordnet deshalb kam da das selbe bei raus oh oh.
Aber nachdem ich eine neue Testtabelle erstellt habe hat alles Super geklappt, auch die Tabelle die hier zu Download ist arbeitet auch einwandfrei.
Also Jan
herzlichen Dank für Deine Unterstützung sagt:
Juergen

Anzeige
AW: Tabellen Automatisch erstellen und Umbenennen
07.02.2008 21:55:53
Juergen
Hallo Jan
Hab`s noch mal getestet mit Buchstaben statt Zahlen dann klappt es.
Werd es mal versuchen anzupassen.Und wenn Fertig werd Ich mich wieder melden.
besten Dank sagt
Juergen

AW: Tabellen Automatisch erstellen und Umbenennen
07.02.2008 22:11:00
Juergen
SUPER DANKE JAN
Gruß Juergen
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Tabellen Automatisch Erstellen und Umbenennen in Excel


Schritt-für-Schritt-Anleitung

Um in Excel ein Tabellenblatt automatisch zu erstellen und umzubenennen, kannst Du den folgenden VBA-Code verwenden. Dieser Code prüft, ob das Tabellenblatt bereits existiert, bevor es erstellt wird:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Wähle "Einfügen" -> "Modul".
  3. Füge den folgenden Code in das Modul ein:
Sub Tabelle_erstellen()
    Dim wks As Worksheet
    Dim Blattname As String
    Set wks = Worksheets("Tabelle1") ' Anpassung an Dein Hauptblatt
    On Error Resume Next
    Blattname = wks.Range("A2").Value ' Der Name kommt aus Zelle A2
    If Blattname <> "" Then
        For Each w In Worksheets
            If w.Name = Blattname Then
                MsgBox "Tabellenblattname schon vorhanden!"
                Exit Sub
            End If
        Next w
        Sheets.Add.Name = Blattname ' Neues Blatt erstellen und benennen
        wks.Range("A23:L37").Copy ' Daten kopieren
        ActiveSheet.Paste
    Else
        MsgBox "Kein Tabellenblattname in Zelle A2!"
    End If
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Weise den Code einer Schaltfläche zu, um das Makro auszuführen.

Häufige Fehler und Lösungen

  • Fehler: "Tabellenblattname schon vorhanden!" erscheint, obwohl das Blatt nicht existiert.

    • Lösung: Stelle sicher, dass der Name in Zelle A2 korrekt ist und keine Leerzeichen enthält.
  • Fehler: Das neue Tabellenblatt wird trotzdem erstellt.

    • Lösung: Überprüfe, ob Du den richtigen Code in der Schaltfläche zugewiesen hast.

Alternative Methoden

Falls Du keine VBA-Lösungen verwenden möchtest, kannst Du folgende Methoden in Betracht ziehen:

  • Manuelle Erstellung: Du kannst manuell ein neues Blatt erstellen und es umbenennen, indem Du mit der rechten Maustaste auf das Tab klickst und "Umbenennen" auswählst.
  • Excel-Formeln: Verwende Formeln zur Datenorganisation, anstatt neue Blätter zu erstellen, wenn es nicht notwendig ist.

Praktische Beispiele

  1. Excel neues Blatt automatisch erstellen: Wenn Du ein neues Blatt für jedes Quartal erstellen möchtest, kannst Du die Zelle A2 mit "Q1", "Q2", "Q3" oder "Q4" füllen und das Makro anpassen, um diese Namen zu verwenden.

  2. Datenblätter automatisch erstellen: Nutze eine Liste in einem bestehenden Blatt, um mehrere Tabellenblätter zu erstellen, indem Du die Namen aus dieser Liste in den Code überträgst.


Tipps für Profis

  • Nutze die Funktion Application.CutCopyMode = False, um den Kopiermodus zu beenden und den Speicher zu schonen.
  • Implementiere Fehlerbehandlungsroutinen, um unerwartete Fehler elegant zu handhaben.
  • Experimentiere mit Sheet.Name um Excel-Tabellenblätter automatisch zu benennen, basierend auf Daten oder Benutzerinteraktionen.

FAQ: Häufige Fragen

1. Wie kann ich ein Excel-VBA-Makro für mehrere Blätter erstellen?
Du kannst eine Schleife durch alle Blätter verwenden und die Namen aus einer Liste in einem bestimmten Blatt ziehen.

2. Was muss ich beachten, wenn ich Excel-Tabellenblätter aus einer Liste erstellen möchte?
Stelle sicher, dass die Namen in der Liste eindeutig sind und keine ungültigen Zeichen enthalten.

3. Wie kann ich sicherstellen, dass ein Tabellenblatt umbenannt wird?
Verwende den Code If Not WorksheetExists(Blattname) Then Sheets.Add.Name = Blattname um dies zu gewährleisten.

4. Funktioniert dieser Code in allen Excel-Versionen?
Der VBA-Code ist für Excel 2007 und höher geeignet. Stelle sicher, dass Du die richtige Version verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige