Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Buttons unsichtbar bei schließen

Forumthread: Buttons unsichtbar bei schließen

Buttons unsichtbar bei schließen
15.12.2021 15:28:47
Smile
Guten Tag,
ich benötige eure Hilfe unzwar möchte ich , die Buttons in meinen Tabellen alle verschwinden lassen und die Tabellenblätter Passwortschützen wenn die Datei geschlossen wird. Dabei soll es egal sein ob gespeichert oder nicht.
Hier mein Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim xSheet As Worksheet
Dim xPsw As String
xPsw = "test"
For Each xSheet In Worksheets
xSheet.Protect xPsw
xSheet("CommandButton1").Visible = False
xSheet("CommandButton2").Visible = False
xSheet("CommandButton3").Visible = False
Next
Die Buttons heißen überall gleich, aber es klappt nicht .
Er zeigt immer folgende Fehlermeldung:
Laufzeitfehler "438". Objekt unterstützt diese Eigenschaft oder Methode nicht
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Buttons unsichtbar bei schließen
15.12.2021 15:38:46
UweD
Hallo
ungetestet...
du musst erst entsperren, dann ändern und dann wieder sperren

For Each xSheet In Worksheets
xSheet.unProtect xPsw
xSheet("CommandButton1").Visible = False
xSheet("CommandButton2").Visible = False
xSheet("CommandButton3").Visible = False
xSheet.Protect xPsw
Next
LG UweD
Anzeige
AW: Buttons unsichtbar bei schließen
15.12.2021 15:57:58
UweD
Hallo
jetzt auch getestet

Dim i As Integer
Dim xPsw As String
xPsw = "test"
For i = 1 To ThisWorkbook.Sheets.Count
With Sheets(i)
.Unprotect xPsw
.CommandButton1.Visible = False
.CommandButton2.Visible = False
.CommandButton3.Visible = False
.Protect xPsw
End With
Next
LG UweD
Anzeige
AW: Buttons unsichtbar bei schließen
15.12.2021 15:58:01
volti
Hallo,
versuch es mal so. Zum Ausblenden muss m.E. nicht entsprerrt werden.
Code:

[Cc]

Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim xSheet As Worksheet Dim xPsw As String xPsw = "test" For Each xSheet In Worksheets xSheet.Protect xPsw xSheet.Shapes.Range(Array("CommandButton1", "CommandButton2", "CommandButton3")).Visible = False Next xSheet End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Buttons unsichtbar bei schließen
15.12.2021 16:14:20
Smile
Also bei den ersten beiden Varianten zeigt er mir denselben Fehler wie zuvor an.
Bei der Version von Karl-Heinz zeigt er mir Fehler 1004 (Das Element mit dem angegebenen Namen wurde nicht gefunden.) an in der Zeile:
xSheet.Shapes.Range(Array("CommandButton1", "CommandButton2", "CommandButton3")).Visible = False
Habe aber noch mehr in BeforeClose stehen, hier der ganze Auszug:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim xSheet As Worksheet
Dim xPsw As String
xPsw = "KdoSAN"
For Each xSheet In Worksheets
xSheet.Unprotect xPsw
xSheet("CommandButton1").Visible = False
xSheet("CommandButton2").Visible = False
xSheet("CommandButton3").Visible = False
xSheet.Protect xPsw
Next
If Not Saved Then
Select Case MsgBox("Sollen Ihre Änderungen in '" & Name & _
"' gespeichert werden", vbExclamation Or vbYesNoCancel)
Case vbYes
Save
Case vbNo
Saved = True
Case vbCancel
Cancel = True
End Select
End If
If Not Cancel Then
Call DeleteCommandBar
Call TimeStop
End If
If Not ActiveSheet.Name = AktName Then
MsgBox "Umbenennen des Blattes ist nicht erlaubt!!!"
ActiveSheet.Name = AktName
If ActiveWorkbook.Saved = False Then
ActiveWorkbook.Save
End If
End If
End Sub
Vielleicht mache ich auch irgendwas ganz falsch, aber wirklich schon mal danke ihr seid mega schnell mit eurer Hilfe !
MfG
Anzeige
AW: Buttons unsichtbar bei schließen
15.12.2021 16:25:52
volti
Hallo,
das war für Formularsteuerbuttons.
Hier für die Active-X-Buttons. Vielleicht klappt das ja.
Code:

[Cc]

Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim xSheet As Worksheet Dim xPsw As String xPsw = "test" For Each xSheet In Worksheets xSheet.Protect xPsw xSheet.Shapes("CommandButton1").Visible = False xSheet.Shapes("CommandButton2").Visible = False xSheet.Shapes("CommandButton3").Visible = False Next xSheet End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Buttons unsichtbar bei schließen
17.12.2021 08:59:00
Smile
Klappt auch nicht , weiß nicht was falsch sein sollte ..
MfG
Dann lad doch mal eine Beispieldatei hoch
17.12.2021 09:14:04
UweD
AW: Dann lad doch mal eine Beispieldatei hoch
17.12.2021 09:52:21
Smile
Hier einmal die Datei die ich zurzeit bearbeite.
https://www.herber.de/bbs/user/149869.zip
MfG
Anzeige
AW: Dann lad doch mal eine Beispieldatei hoch
17.12.2021 11:54:35
UweD
Hallo
setzte mal überall ein Me. vor die CommandButtons

Me.CommandButton2.Visible = True
Me.CommandButton3.Visible = True
Me.CommandButton4.Visible = True
Dadurch werden ganz bewusst die Buttons dieses Blattes gewählt.
LG UweD
AW: Dann lad doch mal eine Beispieldatei hoch
17.12.2021 12:11:56
Smile
Vor alle oder nur vor die im BeforeClose wenn ich das einfüge ?
MfG
Anzeige
AW: Dann lad doch mal eine Beispieldatei hoch
17.12.2021 14:12:10
UweD
Worum geht es dir jetzt genau?
Mein letzter Stand ist, dass du beim Schließen die 3 Buttons ausblenden möchtest, auf allen Blättern
Weder mein Vorschlag, noch der von Volti ist aber in deiner Datei eingebaut
Ich hab es so hinbekommen:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim xSheet As Worksheet
Dim xPsw As String
xPsw = "test"
For Each xSheet In ThisWorkbook.Worksheets
With xSheet
.Protect xPsw
Select Case xSheet.Name
Case "Grundeinstellungen"
'mach nix
Case Else
Sheets(.Name).CommandButton1.Visible = False
Sheets(.Name).CommandButton2.Visible = False
Sheets(.Name).CommandButton3.Visible = False
End Select
End With
Next
If Not Saved Then
Select Case MsgBox("Sollen Ihre Änderungen in '" & Name & _
"' gespeichert werden", vbExclamation Or vbYesNoCancel)
Case vbYes
Save
Case vbNo
Saved = True
Case vbCancel
Cancel = True
End Select
End If
If Not Cancel Then
Call DeleteCommandBar
Call TimeStop
End If
If Not ActiveSheet.Name = AktName Then
MsgBox "Umbenennen des Blattes ist nicht erlaubt!!!"
ActiveSheet.Name = AktName
If ActiveWorkbook.Saved = False Then
ActiveWorkbook.Save
End If
End If
End Sub
LG UweD
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige