Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1504to1508
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

Überprüfen ob Worksheet vorhanden

Überprüfen ob Worksheet vorhanden
03.08.2016 11:54:30
Nermin
Hallo liebe Community,
ich hatte schonmal eine Frage gehabt zu diesem Thema, da wurde mir wunderbar geholfen. Jetzt ists ein bisschen abgeändert und ich habe irgendwie das Gefühl ich habe einen Denkfehler und seh den Wald vor lauter Bäumen nicht ;).
Geht um folgendes:
Der Code soll zunächst überprüfen ob ein bestimmtes Worksheet vorhanden ist bevor die Prozedur fortgeführt werden soll. Also Vorhanden = ja, dann fortsetzen, Vorhanden = nein, dann MsgBox "Achtung Worksheet soundso nicht vorhanden!" und exit sub.
Letztes mal musste ich auch überprüfen ob ein Worksheet vorhanden ist, da war es aber andersrum, sprich vorhanden = MsgBox "achtung vorhanden!" und exit sub, nicht vorhanden = fortsetzen.
wurde so gelöst:
Sub prozedur()
Dim BoVorhanden As Boolean
Dim WsTabelle As Worksheet
For Each WsTabelle In Worksheets
If WsTabelle.Name = "Materialbedarf" Then
BoVorhanden = True
Exit For
End If
Next WsTabelle
If BoVorhanden Then
If MsgBox(prompt:="Materialbedarf wurde bereits ermittelt. Ermittelte Daten werden ü _
berschrieben!", Buttons:=vbOKCancel, Title:="Achtung!") = vbCancel Then
Exit Sub
Else
Application.DisplayAlerts = False
Worksheets("Materialbedarf").Delete
Application.DisplayAlerts = True
End If
Else
GoTo Prozedur
End If
Prozedur:
' weiterer Code
End Sub
Meine Idee war BoVorhanden = False aber irgendwie klappts nicht, daher bitte ich um Hilfe! :)
Vielen Dank im Voraus!!
Lieben Gruß,
Nermin

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Überprüfen ob Worksheet vorhanden
03.08.2016 12:41:56
Nermin
Hallo nochmal,
habs mit nem Fehlerabfang hinbekommen, ist das ok so:
Sub prozedur()
Dim BoVorhanden As Boolean
Dim WsTabelle As Worksheet
Dim strName As String, strTest As String
strName = "BMDS"
On Error GoTo NichtDa
strTest = Sheets(strName).Name
For Each WsTabelle In Worksheets
If WsTabelle.Name = "Materialbedarf" Then
BoVorhanden = True
Exit For
End If
Next WsTabelle
If BoVorhanden Then
If MsgBox(prompt:="Materialbedarf wurde bereits ermittelt. Ermittelte Daten werden ü _
berschrieben!", Buttons:=vbOKCancel, Title:="Achtung!") = vbCancel Then
Exit Sub
Else
Application.DisplayAlerts = False
Worksheets("Materialbedarf").Delete
Application.DisplayAlerts = True
GoTo Prozedur
End If
Else
GoTo Prozedur
End If
NichtDa:
MsgBox "Bolzen, Muttern, Dichtungen und Supports noch nicht erfasst!"
Worksheets("Tabelle1").Select
Exit Sub
Prozedur:
' Tabellenblatt Materialbedarf erzeugen
End Sub
Lieben Gruß,
Nermin
Anzeige
AW: Überprüfen ob Worksheet vorhanden
03.08.2016 12:54:32
ChrisL
Hi Nermin
Geschmackssache, aber GoTo versuche ich eher zu vermeiden. Schlussendlich ist es aber vor allem eine Frage der Übersichtlichkeit.
Sub mach()
Dim sTBName As String
sTBName = "Materialbedarf"
If TBExists(sTBName) Then
If MsgBox(prompt:="Materialbedarf wurde bereits ermittelt. Ermittelte Daten werden ü _
berschrieben!", Buttons:=vbOKCancel, Title:="Achtung!") = vbCancel Then
Exit Sub
Else
Application.DisplayAlerts = False
Worksheets(sTBName).Delete
Application.DisplayAlerts = True
End If
End If
MsgBox "es geht weiter..."
End Sub
Private Function TBExists(sTBName As String) As Boolean
Dim WS As Worksheet
For Each WS In ThisWorkbook.Worksheets
If WS.Name = sTBName Then
TBExists = True
Exit Function
End If
Next WS
End Function

cu
Chris
Anzeige
AW: Überprüfen ob Worksheet vorhanden
03.08.2016 13:08:10
Gerd
Hallo Chris!
Soweit o.K.
Allerdings wird man das Blatt "Materialbedarf" nicht löschen müssen, wenn es
nicht vorhanden ist.
Gruß Gerd
AW: Überprüfen ob Worksheet vorhanden
03.08.2016 13:13:58
Nermin
Hallo Chris,
deine Lösung probiere ich gleich mal aus. Vorab aber eine Frage: welche Nachteile hat GoTo denn noch, außer der Übersichtlichkeit :D?
Vielen Dank!
Lieben Gruß,
Nermin
AW: Überprüfen ob Worksheet vorhanden
03.08.2016 13:16:34
ChrisL
Hi Gerd
Stimmt, aber wenn es vorhanden ist und die MsgBox entsprechend beantwortet wird... Es scheint der Code ist doch nicht so übersichtlich wie gedacht ;)
cu
Chris
Anzeige
AW: Überprüfen ob Worksheet vorhanden
03.08.2016 13:19:13
Daniel
Hi
zum Überprüfen, ob ein bestimmtes Worksheet vorhanden ist kannst du einfach so vorgehen:
1. weise unter "On Error Resume Next" das Worksheet einer Variablen zu:
dim  wshMatB as worksheet
on error Resume Next
set wshMatb = Worksheets("Materialbedarf")
On error goto 0
wenn jetzt das Blatt nicht vorhanden ist, bleibt die Variable leer.
2. wenn du wissen willst ob das Blatt vorhanden ist, fragst du einfach ab, ob die Variable wshMatB einen Wert erhalten hat oder leer ist. Dazu verwendet man bei Objektvariablen die Funktion IsNothing.
if wshMatB is nothing then
Msgbox "das Blatt ""Materialbedarf"" fehlt."
else
Msgbox "das Blatt ""Materialbedarf"" ist vorhanden."
End if
Gruß Daniel
Anzeige

318 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige