Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.


VBA-Mit Doppelklick Arbeitsblatt ausblenden
#1
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.
?mage

Misserfolg ist eine Chance, es beim
nächsten Mal besser zu machen.

(Henry Ford)
http://www.sprueche-zum-nachdenken.eu
to top
#2
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
Gruß Stefan
Win 7 / Office 2007
[-] Folgende(r) 1 Benutzer sagt Danke an Steffl für diesen Beitrag:
WillWissen
to top
#3
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.
?mage

Misserfolg ist eine Chance, es beim
nächsten Mal besser zu machen.

(Henry Ford)
http://www.sprueche-zum-nachdenken.eu
to top
#4
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
[-] Folgende(r) 1 Benutzer sagt Danke an RPP63 für diesen Beitrag:
WillWissen
to top
#5
Hi Ralf,

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

Misserfolg ist eine Chance, es beim
nächsten Mal besser zu machen.

(Henry Ford)
http://www.sprueche-zum-nachdenken.eu
to top
#6
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.
?mage

Misserfolg ist eine Chance, es beim
nächsten Mal besser zu machen.

(Henry Ford)
http://www.sprueche-zum-nachdenken.eu
to top
#7
Hallo zusammen,

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

Misserfolg ist eine Chance, es beim
nächsten Mal besser zu machen.

(Henry Ford)
http://www.sprueche-zum-nachdenken.eu
to top
#8
Hallo Günter,

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

Gruß Uwe
[-] Folgende(r) 1 Benutzer sagt Danke an Kuwer für diesen Beitrag:
WillWissen
to top
#9
Hi Uwe,

lieben Dank, das war's.
?mage

Misserfolg ist eine Chance, es beim
nächsten Mal besser zu machen.

(Henry Ford)
http://www.sprueche-zum-nachdenken.eu
to top


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Zeilen in neues Arbeitsblatt je nach Bedingung kopieren Zeppi 1 60 24.10.2016, 11:22
Letzter Beitrag: IchBinIch
  Arbeitsblatt (.csv) kopieren Drakecore 11 217 23.09.2016, 10:53
Letzter Beitrag: Kuwer
  Arbeitsblatt maximiert öffnen lapunta 3 220 26.08.2016, 16:33
Letzter Beitrag: schauan
  Arbeitsblatt automatisch erstellen its_w1n5t0n1995 8 366 24.08.2016, 19:36
Letzter Beitrag: schauan
  VBA Message Box Doppelklick DavidHans 2 224 26.07.2016, 08:04
Letzter Beitrag: DavidHans
  Werte der PT im PC ausblenden ? earthwalkerx 16 1.140 12.07.2016, 11:46
Letzter Beitrag: earthwalkerx
  Tabelle als Arbeitsblatt erstellen Nenntmichmo 13 606 19.06.2016, 12:22
Letzter Beitrag: snb
  Arbeitsblatt sortieren Nixblick0815 5 632 15.05.2016, 15:18
Letzter Beitrag: Nixblick0815
  Überstunden von einem Arbeitsblatt in ein anderes übertragen Erika 54 2.757 20.04.2016, 09:22
Letzter Beitrag: BoskoBiati
  Textübernahme per Doppelklick sunny01 7 717 02.04.2016, 05:07
Letzter Beitrag: schauan

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste