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

Forumthread: Neues Tabellenblatt wenn Zelle nicht leer

Neues Tabellenblatt wenn Zelle nicht leer
21.03.2008 10:39:00
Robert
Hallo Freunde,
ich habe in Spalte a untereinander in den Zellen Codes und möchte jeweils ein neues Tabellenblatt mit dem Code als Namen haben, insofern die zelle in Spalte a nicht leer ist.
Bsp.weise: Also wenn jemand in zelle A3 "gsfd" einträgt, möchte ich, dass automatisch ein Tabellenblatt mit dem Namen "gsfd" entsteht, deren Inhalt Tabelle"Vorlage" kopiert hat...
ist so etwas möglich?
viele Grüße,
robert

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Neues Tabellenblatt wenn Zelle nicht leer
21.03.2008 10:56:00
Daniel
Hi
diesen Code ins Modul des Tabellenblatts einfügen:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 1 Then Exit Sub
If Target.Cells.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
Sheets("Vorlagen").Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
ActiveSheet.Name = Left(Target.Value, 31)
End Sub


Gruß, Daniel

Anzeige
AW: Neues Tabellenblatt wenn Zelle nicht leer
21.03.2008 11:11:04
fcs
Hallo Robert,
folgendes Makro im VBA-Editor unter der Tabelle einfügen in der die Codes eingegeben werden.
ggf. im Code noch die Zeile anpassen, ab der Codes eingegeben werden.
Gruß
Franz

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim ws As Object
Application.ScreenUpdating = False
If Target.Row >= 3 And Target.Column = 1 Then
If MsgBox("Tabelenblatt mit Name """ & Target.Value & """ anlegen ?", _
vbYesNo, "Blatt Vorlage kopieren") = vbYes Then
For Each ws In ActiveWorkbook.Sheets
If LCase(ws.Name) = LCase(Target.Value) Then
MsgBox "Blatt mit dem eingegeben Namen existiert bereits!"
GoTo ende
End If
Next
Worksheets("Vorlage").Copy before:=Worksheets("Vorlage")
ActiveSheet.Name = Target.Value
'      Me.Activate
End If
End If
ende:
Set ws = Nothing
Application.ScreenUpdating = True
End Sub


Anzeige
AW: mit verfeinerter Eingabefehler-Prüfung
21.03.2008 11:32:00
fcs
Hallo Robert,
hier eine Variante, die noch ein paar mehr Fehler bei der Zell-Auswahl und beim Blattnamen abfängt.
Gruß
Franz

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Fehler As Integer, ws As Object
On Error GoTo Fehler
Application.ScreenUpdating = False
If Target.Row >= 3 _
And Target.Column = 1 _
And Target.Cells.Count = 1 _
And Target.Range("A1").Value  "" Then
If MsgBox("Tabelenblatt mit Name """ & Target.Value & """ anlegen ?", _
vbYesNo, "Blatt Vorlage kopieren") = vbYes Then
For Each ws In ActiveWorkbook.Sheets
If ws.Name = Target.Value Then
MsgBox "Blatt mit dem eingegeben Namen existiert bereits!"
Target.Select
GoTo ende
End If
Next
Worksheets("Vorlage").Copy before:=Worksheets("Vorlage")
Fehler = 1
ActiveSheet.Name = Target.Value
Fehler = 0
'      Me.Activate
End If
End If
GoTo ende
Fehler:
Select Case Fehler
Case 1
MsgBox "Fehler Nr. " & Err.Number & " ist aufgetreten!" & vbLf & Err.Description
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
Me.Activate
Target.Select
Case Else
MsgBox "Fehler Nr. " & Err.Number & " ist aufgetreten!" & vbLf & Err.Description
End Select
ende:
Application.ScreenUpdating = True
End Sub


Anzeige
AW: mit verfeinerter Eingabefehler-Prüfung
21.03.2008 12:00:07
Robert
danke, funzt bestens....
ihr seid ja echte cracks ;-)

AW: mit verfeinerter Eingabefehler-Prüfung
21.03.2008 13:52:28
Robert
Kann ich nun auch mit irgendeiner formel in einem blatt "zusammenfassung" bsp.weise auf die Zelle C5 aller so entstanden tabellen zugreifen?
cheerio,
Robert

AW: mit verfeinerter Eingabefehler-Prüfung
21.03.2008 14:24:34
fcs
Robert,
das geht dann innerhalb der Arbeitsmappe mit der Funktion INDIREKT.
Gruß
Franz
Beispiel:

Tabellenblattname: Zusammenfassung
A        B          C
1                        Wert
2  Code    Wert C5         C5
3   bbb   bbb 1234   bbb 1234
4   aah   aah 1234   aah 1234
Benutzte Formeln:
B3:  =INDIREKT("'"& $A3 &"'!C5")
B4:  =INDIREKT("'"& $A4 &"'!C5")
C3:  =INDIREKT("'"& $A3 &"'!" & C$2)
C4:  =INDIREKT("'"& $A4 &"'!" & C$2)


Anzeige
AW: Neues Tabellenblatt wenn Zelle nicht leer
21.03.2008 11:43:10
Tino
Hallo,
hier noch eine Version von mir.
Ich arbeite mit einer Hilfsspalte (kann ausgeblendet werden), kann somit
die Tabellen durch entfernen in A1 bis A20 wieder löschen.
https://www.herber.de/bbs/user/50898.xls
Gruß
Tino

Anzeige
Interessiert es noch?
21.03.2008 12:07:39
Tino
Hallo,
bin mir nicht sicher ob es noch interessiert.
Habe es noch etwas aufgemotzt, jetzt kannst du durch ändern des Textes in
A1-A20 auch die entsprechenden Tabellen umbenennen.
https://www.herber.de/bbs/user/50899.xls
Gruß
Tino
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Neues Tabellenblatt erstellen, wenn Zelle nicht leer ist


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor in Excel, indem Du ALT + F11 drückst.

  2. Wähle das entsprechende Tabellenblatt aus, in dem Du die Codes eingeben möchtest.

  3. Füge den folgenden VBA-Code in das Modul des Tabellenblatts ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Column > 1 Then Exit Sub
       If Target.Cells.Count > 1 Then Exit Sub
       If Target.Value = "" Then Exit Sub
       Sheets("Vorlagen").Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
       ActiveSheet.Name = Left(Target.Value, 31)
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Deinem Arbeitsblatt.

  5. Trage in Spalte A ab der Zelle A3 Deine Codes ein. Sobald Du einen Code eingibst, wird automatisch ein neues Tabellenblatt mit dem Namen des Codes erstellt.


Häufige Fehler und Lösungen

  • Problem: Das neue Tabellenblatt wird nicht erstellt.
    Lösung: Stelle sicher, dass Du den Code im richtigen Tabellenblatt-Modul eingefügt hast und dass die Zelle nicht leer ist.

  • Problem: Der Name des neuen Tabellenblatts enthält ungültige Zeichen.
    Lösung: Der Code schneidet den Namen auf 31 Zeichen. Achte darauf, dass der eingegebene Name keine Sonderzeichen enthält.

  • Problem: Es erscheint eine Fehlermeldung beim Erstellen des Blattes.
    Lösung: Füge eine Fehlerbehandlung in den Code ein, um diese Meldungen zu managen.


Alternative Methoden

  • Du kannst auch eine Hilfsspalte nutzen, um die Tabellenblätter zu verwalten. Indem Du die Namen in dieser Spalte eingibst, kannst Du die Blätter anpassen oder löschen, ohne den VBA-Code zu ändern.

  • Eine weitere Methode ist die Verwendung der INDIREKT-Funktion, um auf Zellen in den neu erstellten Blättern zuzugreifen. Dies kann besonders nützlich sein, wenn Du eine Zusammenfassung der Werte in einem separaten Blatt benötigst.


Praktische Beispiele

  1. Erstellen eines neuen Blattes: Wenn Du in Zelle A3 "gsfd" eingibst, wird ein neues Blatt mit dem Namen "gsfd" erstellt, das eine Kopie des Blattes "Vorlagen" enthält.

  2. Zugriff auf Zellen in anderen Blättern: Wenn Du in einem Blatt "Zusammenfassung" auf die Zelle C5 der neuen Blätter zugreifen möchtest, kannst Du folgende Formel verwenden:

    =INDIREKT("'"&A3&"'!C5")

    Dies ermöglicht es Dir, dynamisch auf die Zellen der neu erstellten Blätter zuzugreifen.


Tipps für Profis

  • Namenskonventionen: Achte darauf, dass die eingegebenen Namen konsistent und ohne Sonderzeichen sind, um Probleme beim Erstellen der Blätter zu vermeiden.

  • Code anpassen: Du kannst den Code weiter anpassen, um zusätzliche Bedingungen für die Erstellung der Blätter hinzuzufügen, wie z.B. das Überprüfen auf Duplikate.

  • Verstecken von Hilfsspalten: Wenn Du eine Hilfsspalte verwendest, kannst Du diese ausblenden, um die Übersichtlichkeit Deines Arbeitsblatts zu erhöhen.


FAQ: Häufige Fragen

1. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der Code sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen.

2. Was passiert, wenn der Name des neuen Blattes bereits existiert?
Der Code enthält eine Überprüfung, die sicherstellt, dass kein Blatt mit demselben Namen erstellt wird. Wenn ein Blatt bereits existiert, erhältst Du eine entsprechende Fehlermeldung.

3. Kann ich den VBA-Code anpassen, um andere Blätter zu kopieren?
Ja, Du kannst den Namen "Vorlagen" im Code ändern, um ein anderes Blatt zu kopieren. Achte darauf, dass das angegebene Blatt existiert.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige