Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
1260to1264
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

Sheet vorhanden ???

Sheet vorhanden ?
Mandy
Hallo,
ich möchte gerne, bevor ich einen Code ausführe, überprüfen, ob es MINDESTENS 1 Scheet gibt, das mit "Vorgang xxx" beginnt. Wenn nein, soll der Code wieder raus.
Irgend wie funktioniert der COde nicht.
Weiß jemand, warum ?
Dim strBlattName As String
strBlattName = (Left(.Name, 7) = "Vorgang")
Worksheets(strBlattName).Activate
If Err.Number 0 Then
Err.Clear
MsgBox "Es gibt nicht min. einen VORGANG", , "Hinweis"
exit sub
End If
'wenn min. 1 Sheet vorhanden, dann weiter :
Danke
Mandy

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Sheet vorhanden ?
16.05.2012 10:37:54
Hajo_Zi
Hallo Mandy.
mache eine Schleife und prüfe jeden Namen.

wie ? owT
16.05.2012 12:16:00
Mandy
AW: wie ? owT
16.05.2012 12:38:35
UweD
Hallo
so z.B.
Schleife wird durchlaufen, bis das erste zutreffende Blatt gefunden wird...
Gruß UweD
Sub Blatt_prüfen()
For i = 1 To ActiveWorkbook.Worksheets.Count
If Left(Sheets(i).Name, 7) = "Vorgang" Then GoTo Weiter
Next i
MsgBox "Es gibt nicht min. einen VORGANG", , "Hinweis"
Exit Sub
Weiter:
MsgBox "Juhu", , "Hinweis"
' und los gehts
End Sub

Mal zu deiner eigentl Frage, ...
16.05.2012 12:47:27
Luc:-?
…Mandy;
Warum soll der auch fktionieren?! Irgendwie ist keine Informatik-Kategorie! ;-)
1. Worauf soll sich .Name in strBlattName = (Left(.Name, 7) = "Vorgang") beziehen? Da ist kein übergeordnetes Objekt sichtbar festgelegt!
2. strBlattName ist als String deklariert. Du weist dieser Variablen aber mit dem Befehl unter 1. einen Wert vom Typ Boolean zu! Wenn 1. fktionieren würde, hättest du da entweder den Text "Wahr" oder den Text "Falsch", was wohl kaum in deinem Sinne sein dürfte.
3. Den unter 2. erhaltenen Text (den du ja erst gar nicht wg 1. bekommst) verwendest du dann in Worksheets(strBlattName).Activate als Blattname →Fehler (CHAOS)!
4. Einen evtl Fehler (du erhältst natürl immer einen!) willst du dann über seine Nr abfangen! Da ist er aber schon passiert und deine Anweisung würde gar nicht mehr ausgeführt wdn! Fehler müssen am PgmAnfang mit On Error … abgefangen wdn. Wenn du den Fehler gleich nach seinem Auftreten auswerten willst, muss am PgmAnfang On Error Resume Next und statt Worksheets(strBlattName).Activate: If Err.Number 0 Then If IsError(Worksheets(strBlattName)) Then stehen. Danach kommt die Fehlerbehandl dann Else: Worksheets(strBlattName).Activate und schließl das zugehörige End If.
Dein Pgm lässt so zieml jedes Verständnis für die internen Vorgänge und einigermaßen brauchbare VBA-Kenntnisse vermissen! Insofern muss Hajos knappe AW folgerichtig auf dein Unverständnis stoßen.
Ich empfehle dir deshalb, dich erst mal etwas eingehender mit der VBEditor-Hilfe u/o einem VBA-Lehrbuch zu befassen, bevor du dich in deiner Firma in „Teufels Küche“ bringst!
Außerdem kann man im Herber-Archiv auch so manches „ergoogeln“!
Gruß Luc :-?
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige