Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1180to1184
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

wenn bestimmtes Tabellenblatt existiert-löschen

wenn bestimmtes Tabellenblatt existiert-löschen
Karsten
Hallo,
Ich möchte per VBA-Code herausfinden ob eine Tabellenblatt mit einem bestimmten Namen (z.B. "XXX") existiert. Wenn nein, dann soll es erstellt werden, wenn ja dann soll es ohne Nachfrage gelöscht werden.
Könnte mir jemand dabei helfen?
Danke
Karsten
AW: wenn bestimmtes Tabellenblatt existiert-löschen
06.10.2010 12:16:41
welga
Hallo,
vllt so:
Sub test()
Dim ws As Worksheet
Dim srstr As String
Dim a As Boolean
a = False
srstr = InputBox("Tabellennamen")
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each ws In ThisWorkbook.Worksheets
If ws.Name = srstr Then a = True
Next
If a Then
Sheets(srstr).Delete
Else
Sheets.Add after:=ThisWorkbook.Sheets.Count
Sheets(ThisWorkbook.Sheets.Count).Name = srstr
End If
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Gruß
AW: wenn bestimmtes Tabellenblatt existiert-löschen
06.10.2010 12:21:41
welga
Sorry muss natürlich so heißen:
Sheets.Add after:=Sheets(ThisWorkbook.Sheets.Count)
Anzeige
AW: wenn bestimmtes Tabellenblatt existiert-löschen
06.10.2010 12:37:46
Karsten
Hallo welga,
es ging auch nicht und Rudi war schneller.
Nochmal Danke
Gruß
Karsten
AW: wenn bestimmtes Tabellenblatt existiert-löschen
06.10.2010 12:17:32
Rudi
Hallo,
Function SheetExists(sName As String) As Boolean
Dim sh
For Each sh In Sheets
If sh.Name = sName Then
SheetExists = True
Exit Function
End If
Next
End Function
Sub ttx()
Const sName As String = "xxx"
If SheetExists(sName) Then
Application.DisplayAlerts = False
Sheets(sName).Delete
Application.DisplayAlerts = True
Else
Worksheets.Add
ActiveSheet.Name = sName
End If
End Sub

Gruß
Rudi
In der UDF fehlt ein LCase() oder UCase() _oT
06.10.2010 12:22:13
NoNet
_oT : "Tabelle2" "tabelle2"
Mopperkopp
06.10.2010 12:25:25
Rudi
sollt er halt den Namen richtig schreiben ;-)
Gruß
Rudi
Anzeige
AW: wenn bestimmtes Tabellenblatt existiert-löschen
06.10.2010 12:36:30
Karsten
Hallo Rudi,
allerbesten Dank. Dafür hätte ich lange gebraucht und es doch nicht hingekriegt.
Gruß
Karsten
die Function sollte man
06.10.2010 12:48:23
Rudi
wirklich wie von NoNet bemerkt korrigieren:
Function SheetExists(sName As String) As Boolean
Dim sh
For Each sh In Sheets
If LCase(sh.Name) = LCase(sName) Then
SheetExists = True
Exit Function
End If
Next
End Function

Gruß
Rudi
Tabellenblatt per VBA löschen oder erstellen
06.10.2010 12:20:40
NoNet
Hallo Karsten,
hier ein Code-Beispiel :
Sub TabLoeschenErstellen()
Const strshName = "Tabelle2" 'Der Name des zu überprüfenden Blattes
Dim shTmp As Object
On Error Resume Next 'Bei Fehler : Fortfahren im Code
Set shTmp = Sheets(strshName)
If shTmp Is Nothing Then
Worksheets.Add.Name = strshName
Else
Application.DisplayAlerts = False 'Nicht nachfragen
shTmp.Delete
Application.DisplayAlerts = True 'Nicht nachfragen
End If
Set shTmp = Nothing
End Sub
Gruß, NoNet
Anzeige
AW: Tabellenblatt per VBA löschen oder erstellen
06.10.2010 12:40:09
Karsten
Hallo NoNet,
danke für die Mühe, aber ich habe nun Rudis Code drinn.
Gruß
Karsten

17 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige