Der einfache VBA- Befehl zum Anzeigen eines anderen Arbeitsblattes Wie man in EXCEL unter VBA zu einem anderen Arbeitsblatt (Sheet) wechselt hat sich sicher schon herumgesprochen (man kann es ja notfalls auch aufzeichnen): Sub Makro1() Sheets(4).Select ' ... oder Worksheets(4).Select End Sub Sub Makro2() Sheets("Mein_Arbeits_Blatt").Select ' ... oder Worksheets("Mein_Arbeits_Blatt").Select End Sub Das ist ja auch nicht falsch so. Was aber, wenn im ersten Fall (Makro1) die Arbeitsmappe weniger als vier Blätter hat? Oder aber wenn im zweiten Fall (Makro2) die Mappe überhaupt kein Sheet mit diesen Namen hat? Natürlich! Excel meckert rum Was ist zu tun? Anmerkung:
Sub Makro11() ' Testen ob es mindestens 4 Arbeitsblätter ' in der Mappe gibt und ... If Sheets.Count < 4 Then ' ... wenn nein: eine entsprechende Fehlermeldung ausgeben: MsgBox " Umschalten auf Blatt 4 nicht möglich ! ", _ 48, " Arbeitsblatt nicht vorhanden :-( " Else ' ... wenn ja: Anzeige auf das 4-te Blatt umschalten. Sheets(4).Select End If End Sub Sub Macro12() ' Hilfsvariablen Dim i As Integer Dim bExists As Boolean ' Testen ob's ein Sheet mit dem Namen ' "Mein_Arbeits_Blatt" gibt und ... For i = 1 To Sheets.Count If Sheets(i).Name = "Mein_Arbeits_Blatt" Then bExists = True: Exit For End If Next i If bExists Then ' ... wenn ja: Anzeige auf dieses Blatt umschalten Sheets("Mein_Arbeits_Blatt").Select Else ' ... wenn nein: ein solches Blatt erstellen. Beep Sheets.Add ActiveSheet.Name = "Mein_Arbeits_Blatt" End If End Sub Alternative: ' Hilfsvariablen Dim ws As Worksheet Dim bExists As Boolean ' Alle vorhandenen Arbeitsblätter durchlaufen For Each ws In Worksheets If ws.Name = "Mein_Arbeits_Blatt" Then bExists = True: Exit For End If Next ... Dieser Tipp wurde bereits 269.063 mal aufgerufen.
Anzeige
![]() ![]() ![]() Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
vb@rchiv CD Vol.6 ![]() ![]() Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats ![]() Dennis Hemken Computer der gegenwärtigen Domäne auslesen Alle Namen der Computer der gegenwärtigen Domäne (LDAP) auslesen Neu! sevPopUp 2.0 ![]() Dynamische Kontextmenüs! Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |