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

Tabellenblatt neu erstellen

Forumthread: Tabellenblatt neu erstellen

Tabellenblatt neu erstellen
07.03.2008 08:41:00
Schallbach
Guten Morgen!
Habe wieder mal ein Problem!
Habe folgendes Macro zum erzeugen eines neuen Tabellenblattes:
Worksheets.Add After:=Worksheets(Worksheets.Count)
Dim vntInput As Variant
Do
Do
vntInput = InputBox("Bitte Tabellenblatt Namen angeben! Format: MM JJJJ z. B. 06 2008")
If vntInput Like "## ####" Then Exit Do
If vntInput "" Then MsgBox "Eingabe Format nicht korrekt oder nicht eingegeben!", vbCritical, "Fehler"
Loop
Loop Until MsgBox("Ist die Eingabe korrekt? : " & vntInput, vbYesNo + vbQuestion) = vbYes
ActiveSheet.Name = (vntInput)
Ich möchte das ganze erweitern.
Das Macro soll auch kontrollieren ob der neu vergebene Name schon in der Arbeitsmappe besteht und das melden bzw. einen Fehler melden und wieder auf die Eingabe gehen.
Kann mir jemand von Euch weiterhelfen!
Mit besten Dank und Gruss
Schallbach

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt neu erstellen
07.03.2008 09:06:00
Beverly
Hi,
versuche es so

Sub tabelle_erstellen()
Dim vntInput As Variant
Dim wsTabelle As Worksheet
Start:
Do
Do
vntInput = InputBox("Bitte Tabellenblatt Namen angeben! Format: MM JJJJ z. B. 06 2008")
If vntInput Like "## ####" Then Exit Do
If vntInput  "" Then MsgBox "Eingabe Format nicht korrekt oder nicht eingegeben!",  _
vbCritical, "Fehler"
Loop
Loop Until MsgBox("Ist die Eingabe korrekt? : " & vntInput, vbYesNo + vbQuestion) = vbYes
For Each wsTabelle In ThisWorkbook.Sheets
If wsTabelle.Name = vntInput Then
MsgBox "Es gibt bereits eine Tabelle " & vntInput
GoTo Start
End If
Next wsTabelle
Worksheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = vntInput
End Sub




Anzeige
AW: Tabellenblatt neu erstellen
07.03.2008 10:09:00
Erich
Hallo ?,
soll der Benutzer die Routine keinesfalls (z. B. per "Abbrechen") verlassen können?
So erzwingst du, dass ein Blatt angelegt wird.
Hier noch eine Version:

Option Explicit
Sub test()
Dim wks As Worksheet, bolOK As Boolean, strInput As String 'Variant
Do
Do
bolOK = True
strInput = InputBox("Bitte Tabellenblatt-Namen angeben!" _
& vbLf & vbLf & "Format: MM JJJJ z. B. 06 2008")
If strInput Like "## ####" Then
For Each wks In ActiveWorkbook.Sheets
If wks.Name = strInput Then
bolOK = False
MsgBox "Blatt  " & strInput & "  ist schon vorhanden!"
Exit For
End If
Next wks
Else
bolOK = False
MsgBox "Eingabeformat nicht korrekt!", vbCritical, "Fehler"
End If
Loop Until bolOK
Loop Until MsgBox("Ist die Eingabe korrekt? : " & strInput, _
vbYesNo + vbQuestion) = vbYes
Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = strInput
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Dankeschön!!!
07.03.2008 13:19:41
Schallbach
Hallo!
Hab beide Vorschläge probiert! Funktioniert super!!
Herzlichen Dank
Schallbach
;

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