Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
288to292
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
288to292
288to292
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Prüfung ob Tabellenblatt vorhanden

Prüfung ob Tabellenblatt vorhanden
03.08.2003 11:53:52
Chris
Hallo Zusammen,

ich möchte die Tabellenblätter in einem benutzerspezifischen Menü einbinden, um so den Wechsel zum entsprechenden Tabellenblatt zu ermöglichen. Dies soll jedoch dynamisch geschehen, d.h. im Menü sollen nur die vorhandenen und eingeblendeten Tabellenblätter angezeigt werden.
Bisher habe ich folgendes Coding vorgehen:

Set kaskade = menüneu.Controls.Add(Type:=msoControlPopup)
With kaskade
.Caption = "Ressourcen"
End With

For i = 3 To 15
If Sheets("ressourcen " & 2000 + i).Visible = True Then
With kaskade.Controls.Add(Type:=msoControlButton, temporary:=True)
.Caption = "Ressourcenplan " & 2000 + i
.Style = msoButtonCaption
.OnAction = "ressourcenplan_anzeigen"
End With
End If
Next i

Jetzt ist es so, daß Tabellenblätter "Ressourcenplan 2003" bis "Ressourcenplan 2009" vorhanden sind. Prompt läuft das Makro bei i = 10 gegen die Wand. Wer hat ' ne Idee, wie ich zunächst abprüfen kann, ob das Tabellenblatt vorhanden ist?


Danke und Grüße
Chris

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

Betreff
Datum
Anwender
Anzeige
Leider hilft mir Heinweis noch nicht...
03.08.2003 13:02:42
Chris
Hallo,

leider hilft mir der Hinzeis noch nicht...

Grüße
Chris


AW: Leider hilft mir Heinweis noch nicht...
03.08.2003 14:11:41
Knut
Wenn du nicht weißt, wieviele Elemente eine Aufzählung hat,
benutz eine For Each- Schleife.

Knut


AW: Leider hilft mir Heinweis noch nicht...
03.08.2003 20:02:12
Wolfgang
Hallo,

ja, ich hatte schon oft ein ähnliches Problem in anderen Situationen.
Die oben angesprochene For Each-Schleife ist eine Sache, die sicher gut klappt und auch eine "ordentliche" Lösung darstellt.

Wenn du bei deiner Lösung bleibst, kannst du die auch adaptiieren:
Eine andere Sache (ziemlich dirty ;-), aber was solls *gg*) die auch klappt, wenn du, so wie in deinem Code, nach dem Namen gehst, wäre mir ErrorHandling, also etwa so (neuer Code in Großbuchstaben):

For i = 3 To 15
ON ERROR RESUME NEXT
If Sheets("ressourcen " & 2000 + i).Visible = True Then
IF ERR.NUMBER < 0 THEN
ON ERROR GOTO 0
GOTO LABEL
END IF
With kaskade.Controls.Add(Type:=msoControlButton, temporary:=True)
.Caption = "Ressourcenplan " & 2000 + i
.Style = msoButtonCaption
.OnAction = "ressourcenplan_anzeigen"
End With
End If
Next i

LABEL:


Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige