Clever-Excel-Forum

Normale Version: VBA-Mit Doppelklick Arbeitsblatt ausblenden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Freunde,

ich bitte um Hilfe für folgendes Vorhaben.

Mit einem Doppelklick in die Zelle J1 des Arbeitsblattes "Bestand" will ich erreichen, dass ein zweites Arbeitsblatt ("Berechnungen") ausgeblendet respektive im ausgeblendeten Zustand wieder eingeblendet wird. Mit googeln und ausprobieren bin ich zu folgendem Makro-Konstrukt gekommen, das - wie kann's anders sein - nicht funktioniert. Mein bisheriges VBA-Wissen verhindert leider, dass ich den Fehler finde.

Ich möchte keine Commandbutton einsetzen.

Code:
Private Sub Worksheet_BeforedoubleClick(ByVal Target As Range, Cancel As Boolean)
'
' MitDkBlattAusblenden
    Dim raBereich As Range
        Set raBereich = Sheets("Bestand").Range("J1")
            If Intersect(Target, raBereich) Is Nothing Then Exit Sub
               If Sheets("Berechnungen") = False Then
                        Sheets("Berechnungen") = True
                    Else: Sheets("Berechnungen") = False
                End If
End Sub

Schon jetzt mal ein "sakrisches" Dankschön.

Nachtrag:

Es wird der Laufzeitfehler 438 (Objekt unterstützt Eigenschaft oder Methode nicht) angezeigt und die Codezeile
Zitat:If Sheets("Berechnungen") = False Then
im Debugger gelb unterlegt.
Hallo Günter,

versuchs mal so

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'
' MitDkBlattAusblenden
    Dim raBereich As Range
        Set raBereich = Sheets("Bestand").Range("J1")
        
            If Intersect(Target, raBereich) Is Nothing Then Exit Sub
                If Sheets("Berechnungen").Visible = False Then
                        Sheets("Berechnungen").Visible = True
                    Else: Sheets("Berechnungen").Visible = False
                End If
End Sub
Hi Stefan,

schnelle Hilfe, schneller Erfolg.

Danke, klappt, wie ich's mir vorstelle. Was mich dabei ärgert, ist meine eigene Dussligkeit. Habe gerade deinen Code mit meinem geposteten verglichen. Das fehlende "Visible" habe ich beim Kopieren und Code verschlanken einfach nur übersehen.
Hallo!
Da der Doppelklick logischerweise nur im ActiveSheet geht und man die Logik vereinfachen kann, kann man den Code erheblich verkürzen.
Probier mal:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address(0, 0) = "J1" Then Sheets("Berechnungen").Visible = Not Sheets("Berechnungen").Visible
Cancel = True
End Sub
Gruß, Ralf
Hi Ralf,

hab' ich natürlich gleich ausprobiert - vielen Dank, klappt ebenso gut.
Hi zusammen,

mit den Spielereien wachsen (leider) auch die Begierlichkeiten.

Kann mir bitte jemand die Syntax verraten, die ich anwenden muss, um in die jeweils letzte belegte Zelle in Spalte A zu springen? Mit der Codezeile
Code:
Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1).Activate
unter den Makros von Stefan und Ralf ist nur die letzte belegte Zelle auf dem Blatt "Bestand" aktiviert. Ich finde keine Lösung, wie ich das zweite (eingeblendete) Blatt ansprechen soll.

Also, meine Wunschvorstellung:

DK = Einblenden "Berechnungen" - jetzt soll hier die letzte belegte Zelle (Spalte A) aktiviert sein.
Weiterer DK = Ausblenden "Berechnungen" - jetzt soll im Blatt "Bestand" die letzte belegte Zelle (Spalte A) aktiviert sein.
Hallo zusammen,

ich hol's nochmals nach oben. Gibt es für meinen Wunsche keine Lösung?
Hallo Günter,

Code:
Application.Goto Worksheets("Bestand").Cells(Rows.Count, 1).End(xlUp)

Gruß Uwe
Hi Uwe,

lieben Dank, das war's.