Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Problem mit Visible-Eigenschaft eines Worksheets

Forumthread: Problem mit Visible-Eigenschaft eines Worksheets

Problem mit Visible-Eigenschaft eines Worksheets
29.12.2003 10:21:26
Kai
Hallo!

Folgendes Problem:

Ich habe ein Makro geschrieben, dass eigentlich wirklich simpel ist:
Es gibt zwei Tabellenblätter. Das eine Tabellenblatt ist beim öffnen der Tabelle sichtbar (Sheets("Tabelle1").visible = -1), das andere ist versteckt (Sheets("Tabelle2").visible = 0).
Wenn man nun auf eine Schaltfläche auf dem ersten Tabellenblatt klickt, wird ein Makro ausgeführt, dass das zweite Tabellenblatt sichtbar macht, es wird also der Befehl
Sheets("Tabelle2").visible = -1
ausgeführt. Dies funktioniert reibungslos. Auf dem zweiten Tabellenblatt findet sich nun eine Schaltfläche, die die das zweite Tabellenblatt wieder ausblenden kann, also:
Sheets("Tabelle2").visible = 0
Klickt man nun wieder auf die Schaltfläche auf dem ersten Tabellenblatt, die bisher reibungslos funktionierte:
Sheets("Tabelle2").visible = -1
Kommt die Fehlermeldung "Die Visible-Eigenschaft des Worksheet-Objektes kann nicht festgelegt werden". Und das, obwohl das selbe Makro unter gleichen Bedingungen zuvor ja noch funktioniert hat.
Stoppt man das Makro nun per Hand (es geht nach der Fehlermeldung in den Haltemodus) und klickt, ohne etwas zu verändern, wieder auf die Schaltfläche des ersten Tabellenblattes, funktioniert das Makro wieder.. Genau einmal.. Um dann nach Wiederholung der gesamten Prozedur wieder auf den Hammer zu laufen..

Kennt jemand das Problem?

Ich habe das ganze schon auf verschiedenen Excel - Installationen und mit verschiedenen Dateien getestet.. Immer mit dem selben Ergebnis..

Für Hilfe wäre ich dankbar!

Viele Grüße

Kai
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem mit Visible-Eigenschaft eines Worksheets
29.12.2003 10:29:31
ChrisL
Hi Kai

Vermutung... Es muss immer ein Tabellenblatt sichtbar sein. Folglich erst Blatt einblenden und dann das andere ausblenden und nicht umgekehrt. Ansonsten mal den vollständigen Code posten.

Gruss
Chris
AW: Problem mit Visible-Eigenschaft eines Worksheets
29.12.2003 10:44:13
Kai
Hallo!

Okay.. Hier der Code:


Sub Seitezeigen()
Sheets("S3.1").Visible = -1
End Sub



Sub Seiteverbergen
Sheets("S3.1").Visible = 0
End Sub


Anfangszustand (beim öffnen der Datei):
Sheets("S3.1").Visible = 0

Das Makro "Seitezeigen" wird von einer Schaltfläche auf einem anderen Tabellenblatt ausgeführt, das Makro "Seiteverbergen" wird von einer Schaltfläche aus ausgeführt, die auf dem Sheet "S3.1" liegt.

Es bleiben ständig zahlreiche andere Tabellenblätter aktiv, es werden also nie alle Tabellenblätter ausgeblendet.

Viele Grüße

Kai
Anzeige
AW: Problem mit Visible-Eigenschaft eines Worksheets
29.12.2003 10:57:57
Hajo_Zi
Hallo Kai

warum muß die Tabelle eingeblendet werden???

Bitte keine Mail, Probleme sollten im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Pro und Excel Version XP Pro


Anzeige
AW: Problem mit Visible-Eigenschaft eines Worksheets
29.12.2003 11:09:28
Kai
Hallo, Hajo!

Ich habe Excel ein wenig zweckentfremdet. Auf den einzelnen Tabellenblättern befinden sich Textfelder, in denen Daten erfasst werden, die dann, nachdem man sie ausgefüllt hat, einfach nur manuell ausgedruckt werden. Da auf dem Tabellenblatt "S3" die Felder manchmal nicht reichen, braucht man manchmal eine Seite "S3.1". Auch diese Seite wird nur manuell ausgedruckt. Die Felder werden nicht ausgelesen oder ähnlich.

Viele Grüße

Kai
Anzeige
AW: Problem mit Visible-Eigenschaft NOCH OFFEN
29.12.2003 11:12:46
Hajo_Zi
Hallo Kai

alles klar, zum ausdrucken müssen die Tabellen eingeblendet werden.

Bitte keine Mail, Probleme sollten im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Pro und Excel Version XP Pro


Anzeige
;
Anzeige

Infobox / Tutorial

Sichtbarkeit von Worksheets in Excel VBA: Probleme und Lösungen


Schritt-für-Schritt-Anleitung

Um die Sichtbarkeit eines Worksheets in Excel VBA zu steuern, kannst du folgende Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Füge ein Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)" und wähle "Einfügen" > "Modul".

  3. Erstelle die Makros: Füge den folgenden Code in das Modul ein:

    Sub Seitezeigen()
        Sheets("Tabelle2").Visible = xlSheetVisible
    End Sub
    
    Sub Seiteverbergen()
        Sheets("Tabelle2").Visible = xlSheetHidden
    End Sub
  4. Verknüpfe die Makros mit Schaltflächen: Füge Schaltflächen in deinem Excel-Blatt hinzu und weise die Makros Seitezeigen und Seiteverbergen zu.

  5. Teste die Schaltflächen: Klicke auf die Schaltflächen, um zu überprüfen, ob die Sichtbarkeit der Worksheets wie gewünscht funktioniert.


Häufige Fehler und Lösungen

Ein häufiger Fehler ist die Fehlermeldung: "Die Visible-Eigenschaft des Worksheet-Objektes kann nicht festgelegt werden". Hier sind einige mögliche Ursachen und Lösungen:

  • Kein Blatt sichtbar: Stelle sicher, dass immer mindestens ein Blatt sichtbar ist, bevor du ein anderes Blatt ausblendest.
  • Falscher Blattname: Überprüfe die Schreibweise des Blattnamens. Ein Tippfehler kann dazu führen, dass die visible-Eigenschaft nicht festgelegt werden kann.
  • Makro im Haltemodus: Wenn das Makro im Haltemodus stoppt, kann das die Ausführung stören. Stelle sicher, dass du alle Fehler behoben hast, bevor du das Makro erneut ausführst.

Alternative Methoden

Wenn die oben genannten Schritte nicht funktionieren, probiere diese alternativen Methoden:

  • Verwendung von xlSheetVeryHidden: Statt xlSheetHidden kannst du xlSheetVeryHidden verwenden, um das Blatt noch schwerer zugänglich zu machen. Es ist dann nur über den VBA-Editor sichtbar.

    Sheets("Tabelle2").Visible = xlSheetVeryHidden
  • Verwendung von Application.Visible: Du kannst auch die Sichtbarkeit der gesamten Anwendung steuern, indem du Application.Visible = False verwendest, aber sei vorsichtig, das kann dazu führen, dass Excel vollständig geschlossen wird.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du die visible-Eigenschaft in einem realen Szenario nutzen kannst:

Sub ToggleVisibility()
    Dim ws As Worksheet
    Set ws = Sheets("Tabelle2")

    If ws.Visible = xlSheetVisible Then
        ws.Visible = xlSheetHidden
    Else
        ws.Visible = xlSheetVisible
    End If
End Sub

Dieses Makro wechselt die Sichtbarkeit des Worksheets "Tabelle2" zwischen sichtbar und verborgen, je nachdem, in welchem Zustand es sich befindet.


Tipps für Profis

  • Fehlerprotokollierung: Implementiere eine Fehlerbehandlung in deinen Makros, um die Ursachen von Problemen leichter zu identifizieren. Beispiel:

    On Error GoTo ErrorHandler
    ' Dein Code hier
    Exit Sub
    ErrorHandler:
    MsgBox "Fehler: " & Err.Description
  • Dokumentation: Kommentiere deinen Code gut, um die Funktionsweise der visible-Eigenschaft klar zu machen, insbesondere wenn du mit mehreren Sheets arbeitest.


FAQ: Häufige Fragen

1. Warum kann ich die visible-Eigenschaft nicht festlegen?
Die Fehlermeldung tritt häufig auf, wenn kein anderes Blatt sichtbar ist oder der Blattname falsch geschrieben ist.

2. Was ist der Unterschied zwischen xlSheetHidden und xlSheetVeryHidden?
xlSheetHidden macht das Blatt im Excel sichtbar, aber nicht in der Blattregisterkarte. xlSheetVeryHidden macht das Blatt komplett unsichtbar, es kann nur über den VBA-Editor angezeigt werden.

3. Wie kann ich die Sichtbarkeit von mehreren Blättern gleichzeitig ändern?
Du kannst eine Schleife verwenden, um die Sichtbarkeit mehrerer Blätter in einem Rutsch zu ändern:

Sub AlleBlätterVerstecken()
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        ws.Visible = xlSheetHidden
    Next ws
End Sub

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige