Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
728to732
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
728to732
728to732
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Menüpunkt in Excel deaktivieren..??

Menüpunkt in Excel deaktivieren..?
04.02.2006 19:48:32
Joachim
Hallo,
ich habe verschieden Namen definiert und möchte nun den Menüpunkt:
Einfügen - Namen - EINFÜGEN beigeschützem Blatt auch deaktiviert haben.
Ich habe einen Code bekommen der dieses zwar ermöglicht aber, wenn er nicht rückgängig gemacht wird, hat Excel diesen Punkt immer deaktiv.
Das ist nicht -das Ei des Kolumbus- denn, wenn das Programm einmal abstürzt bevor ich den Menüpunkt wieder aktiviert habe - habe ich ein Problem. Wie bekomme ich ihn wieder aktiv? Auch müsste ich JEDE Aktion des Dateischließens über ein Makro abgefragt werden, um sicherzustellen, dass dieser Menüpunkt wieder aktiv wird.
Den folgenden Code habe ich einmal ausprobiert - und er hat eben die beschriebenen Begleitprobleme.
-----------------

Sub Menue_aktivieren()
Dim Datei
For Each Datei In Application.CommandBars.FindControls(ID:=30005)
Datei.Enabled = True
Next
End Sub


Sub Menue_deaktivieren()
Dim Datei
For Each Datei In Application.CommandBars.FindControls(ID:=30005)
Datei.Enabled = False
Next
End Sub

-------------------
Gruß
Joachim

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Menüpunkt in Excel deaktivieren..?
04.02.2006 20:41:09
Ramses
Hallo
"...denn, wenn das Programm einmal abstürzt ..."
Das ist ein grundsätzliches Problem :-)
Es liegt an Dir so zu programmieren, dass es nicht abstürzen kann ;-)
Setz diese Anweisungen in das
"Workbook_Aktivate" = "Menue_deaktivieren"
und
"Workbook_Deaktivate" = "Menue_aktivieren"
Gruss Rainer
AW: Menüpunkt in Excel deaktivieren..?
04.02.2006 23:43:48
Joachim
Hallo Hans,
nein, das ist bei weitem nicht so, ich habe die Fragestellung nur verlagert - wie ich im dem anderen Thread angegeben habe.
Soll nicht bedeuten, dass deine Ideen ungenügend sind - nur so kommen ggf. auch andere (und somit auch andere Ideen) zu diesem Thema an das Problem.
Das Grundproblem -Absturz mit den damit verbunden evt. Problemen- ist wohl nicht optimal zu lösen.
Wie Rainer es vorgeschlagen hat ist es zwar eine -Sicherheit- mehr aber das Grundprob. bleibt. Dies ist auch nur deshalb, weil wir hier Excel anders einstellen - ohne das wir dies auf eine Ausstattung für eigens diese Tabelle einbinden können.
Ich glaube der Verzicht auf diese Ausstattung -Mappe schützen- ist wohl letztlich problemfreier. Oder?
------------------------
Als (unbedarfter) Denkansatz.
Kann man nicht ein Addin (oder ähnl.) mit dem Start von Excel verbinden so, dass Excel immer im -bereingten- Modus (also mit aktiven Menüeintragen startet?
Kann dieses Add-in (oder wie auch immer) so gestalten, dass es beim erstmaligen Start installiert wird und somit als eine Art Startparameter von Excel immer automatisch abgeprüft wird?
Soll heißen - beim Start der (meiner) Mappe wird geprüft, ob das Add-In für die sog. Grundeinstellungen vorhanden ist. Ist es nicht vorhanden wird es installiert, wenn vorhanden dannn bricht man das weitere ab und Excel startet -durch-.
Ich hoffe meine Idee klar genug erläutert zu haben.
Gruß
Joachim
Anzeige
AW: Nachtrag zur letzten Antwort.....
04.02.2006 23:51:31
Joachim
Hallo,
hier geht's noch weiter...
kann man in der (meiner) Mappe ein Makro einbinden, welches eine ..XLA kreiert und die in das Verzeichnis XLstart ablegt.?
Darin sind dann die Parameter, die Excel mit den Grundeinstellungen startet.
(u. a. alle deaktivierten Menüs werden beim Start von Excel aktiviert)
Gruß
Joachim
AW: Menüpunkt in Excel deaktivieren..?
05.02.2006 14:20:25
HansHei
Hallo Joachim,
ich glaube Du denkst zu kompliziert. Bau die Deaktivierung der Menüteile in Workbook_open und die Aktivierung in Workbook_BeforeClose ein. Wenn Dir jemand den Strom abstellt ist das doch kein Problem. Spätestens mit dem Neustart Deiner Datei und dem späteren Schließen ist Dein "Problem" behoben und jeder Laie wird sich über das "Wunder" freuen :-)
Gruß
Hans
Anzeige
AW: Menüpunkt in Excel deaktivieren..?
05.02.2006 15:21:08
Joachim
Hallo Hans,
perfekt deine Idee. (Du hast Recht -zu kompliziertes Denken- .....)
Da ich aber - wie du weisst (noch) nicht so viel Ahnung von Makros hab,
habe ich ein Problem die Anweisung einzubauen. Hier ist der Code für meine Abreitsmappe.
Kannst du mir die richtigen Positionen für die entsprechenden Anweisungen angeben?
---------------
Mein funktionierender Code:
_____________________________________
Option Explicit

Private Sub Workbook_Activate()
Application.OnKey "^{F12}", "AdminMode"
End Sub


Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim aw
If Not ThisWorkbook.Saved Then
aw = MsgBox("Sollen ihre Änderungen in " & ThisWorkbook.Name & " gespeichert werden?", vbExclamation + vbYesNoCancel)
If aw = vbYes Then
Sheets("ANALYSE").Activate
MappeSpeichern
ElseIf aw = vbNo Then
Sheets("ANALYSE").Activate
ThisWorkbook.Saved = True
Else
Cancel = True
End If
Else
Sheets("ANALYSE").Activate
End If
End Sub


Private Sub Workbook_Deactivate()
Application.OnKey "^{F12}"
End Sub


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Cancel = True
If SaveAsUI Then
MsgBox "Datei kann nicht unter anderem Namen gespeichert werden!"
Exit Sub
End If
ThisWorkbook.Saved = MappeSpeichern
End Sub


Private Sub Workbook_Open()
Dim Sh As Worksheet
Dim ok As Boolean
Dim Meldung As String
ThisWorkbook.IsAddin = True
Sheets("ANALYSE").Activate
'Lizenz prüfen:
ok = False
If SerienNr_Blatt = "" Then
'noch nicht lizensiert:
If Datum_Blatt = "" Then Set_Datum_Blatt Date
If Date > CDate(Datum_Blatt) Then
'zu spät!
Meldung = "Die Lizensierungsmöglichkeit ist abgelaufen!" & vbLf & _
"Bitte wenden Sie sich ....."
Else
'Programm lizensieren
Set_SerienNr_Blatt SerienNummer
Set_Datum_Blatt FormatDateTime(Date, vbShortDate)
Application.EnableEvents = False
ThisWorkbook.Save
Application.EnableEvents = True
ok = True
'Meldung = "Die tabelle wurde für Ihren Rechner lizensiert." & vbLf & _
"Viel Spaß!"
End If
Else
'schon lizensiert:
If SerienNr_Blatt <> SerienNummer Then
'falsche Festplatten-ID
Meldung = "Die Tabelle wurde für einen anderen PC lizensiert." & vbLf & _
"Vielleicht haben Sie auch die Festplatte gewechselt." & vbLf & vbLf & _
"Bitte wenden Sie sich ....."
Else
ok = True
End If
End If
'If Not ok Then ActiveWindow.Visible = False
If Meldung <> "" Then
Application.EnableCancelKey = xlDisabled
MsgBox Meldung
Application.EnableCancelKey = xlInterrupt
End If
ThisWorkbook.IsAddin = False
If Not ok Then
ThisWorkbook.Close False
Exit Sub
End If
'Alle Blätter einblenden
For Each Sh In Worksheets
If Sh.Name <> MakroBlatt Then
Sh.Visible = True
End If
Next Sh
'Infoblatt ausblenden
Sheets(MakroBlatt).Visible = xlSheetVeryHidden
ThisWorkbook.Saved = True
End Sub

___________________________________________
Einzutragen wäre ja:
Sub Menue_aktivieren() 'Menü Einfügen einschalten
Dim Datei
For Each Datei In Application.CommandBars.FindControls(ID:=30005)
Datei.Enabled = True
Next
End Sub
Sub Menue_deaktivieren() 'Menü Einfügen ausschalten
Dim Datei
For Each Datei In Application.CommandBars.FindControls(ID:=30005)
Datei.Enabled = False
Next
End Sub
Mit den Anweisungen Workbook Open bzw. Workbook before Close habe ich meine Prob.
da ich immer wieder auf Fehler laufe.
Gruß
Joachim
Anzeige
AW: Menüpunkt in Excel deaktivieren..?
05.02.2006 15:46:25
HansHei
Hallo Joachim,
ich hoffe ich habe aufgepasst.
Option Explicit

Private Sub Workbook_Activate()
Application.OnKey "^{F12}", "AdminMode"
End Sub


Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim aw
If Not ThisWorkbook.Saved Then
aw = MsgBox("Sollen ihre Änderungen in " & ThisWorkbook.Name & " gespeichert werden?", vbExclamation + vbYesNoCancel)
If aw = vbYes Then
Sheets("ANALYSE").Activate
MappeSpeichern
ElseIf aw = vbNo Then
Sheets("ANALYSE").Activate
ThisWorkbook.Saved = True
Else
Cancel = True
End If
Else
Sheets("ANALYSE").Activate
End If
Dim Datei
For Each Datei In Application.CommandBars.FindControls(ID:=30002)
Datei.Enabled = True
Next
End Sub


Private Sub Workbook_Deactivate()
Application.OnKey "^{F12}"
End Sub


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Cancel = True
If SaveAsUI Then
MsgBox "Datei kann nicht unter anderem Namen gespeichert werden!"
Exit Sub
End If
ThisWorkbook.Saved = MappeSpeichern
End Sub


Private Sub Workbook_Open()
Dim Sh As Worksheet
Dim ok As Boolean
Dim Meldung As String
ThisWorkbook.IsAddin = True
Sheets("ANALYSE").Activate
'Lizenz prüfen:
ok = False
If SerienNr_Blatt = "" Then
'noch nicht lizensiert:
If Datum_Blatt = "" Then Set_Datum_Blatt Date
If Date > CDate(Datum_Blatt) Then
'zu spät!
Meldung = "Die Lizensierungsmöglichkeit ist abgelaufen!" & vbLf & _
"Bitte wenden Sie sich ....."
Else
'Programm lizensieren
Set_SerienNr_Blatt SerienNummer
Set_Datum_Blatt FormatDateTime(Date, vbShortDate)
Application.EnableEvents = False
ThisWorkbook.Save
Application.EnableEvents = True
ok = True
'Meldung = "Die tabelle wurde für Ihren Rechner lizensiert." & vbLf & _
"Viel Spaß!"
End If
Else
'schon lizensiert:
If SerienNr_Blatt <> SerienNummer Then
'falsche Festplatten-ID
Meldung = "Die Tabelle wurde für einen anderen PC lizensiert." & vbLf & _
"Vielleicht haben Sie auch die Festplatte gewechselt." & vbLf & vbLf & _
"Bitte wenden Sie sich ....."
Else
ok = True
End If
End If
'If Not ok Then ActiveWindow.Visible = False
If Meldung <> "" Then
Application.EnableCancelKey = xlDisabled
MsgBox Meldung
Application.EnableCancelKey = xlInterrupt
End If
ThisWorkbook.IsAddin = False
If Not ok Then
ThisWorkbook.Close False
Exit Sub
End If
'Alle Blätter einblenden
For Each Sh In Worksheets
If Sh.Name <> MakroBlatt Then
Sh.Visible = True
End If
Next Sh
'Infoblatt ausblenden
Sheets(MakroBlatt).Visible = xlSheetVeryHidden
ThisWorkbook.Saved = True
Dim Datei
For Each Datei In Application.CommandBars.FindControls(ID:=30002)
Datei.Enabled = False
Next
End Sub

Gruß
Hans
Anzeige
AW: Menüpunkt in Excel deaktivieren..?
05.02.2006 16:21:12
Joachim
Hallo Hans,
Ich habe es nun auf verschiedene Art und Weise übertragen - doch jedesmal --- wird Excel geschlossen weil ein Problem aufgetrteen ist und ein Bericht an MS geschickt werden soll..---
Irgendwo ist also doch etwas nicht so ganz OK.
Der Code ist drin.
Aber die Funktion wird nicht ausgeführt.
Wie gesagt beim Speichern .... Siehe Fehler...
Gruß
Joachim
AW: Menüpunkt in Excel deaktivieren..?
05.02.2006 16:44:02
HansHei
Hallo Joachim,
ich habe den kompletten Code von Dir in "Diese Arbeitsmappe" meiner Beispieldatei eingefügt und es klappt hervorragend. Da muss noch was Anderes sein, so dass ein Konflikt entsteht. Siehe mein Beispiel:
https://www.herber.de/bbs/user/30692.zip
Gruß
Hans
Anzeige
AW: Menüpunkt in Excel deaktivieren..?
05.02.2006 19:45:21
Joachim
Hallo Hans,
ich habe deine Beispielmappe genommen und ausgeführt.
Sie läuft - das ist richtig... aber das Menü-Einfügen wird nicht deaktiviert. (Jedenfalls bei mir)
Soll ich nocheinmal die mittlerweise aktuellere Version der Mappe hochladen und du schaust dann da nochmal hinein?
Gruß
Joachim
AW: Menüpunkt in Excel deaktivieren..?
05.02.2006 20:07:21
HansHei
Hallo Joachim,
in meiner Beispieldatei bezüglich Deaktivierung einzelner Menüteile waren die ID`s in einer entsprechenden Tabelle. Mein Beispiel in der ZIP-Datei blendet den Menüpunkt "Datei" aus. Für "Einfügen" muss die ID 30005 in den beiden Codes eingetragen werden.
Wenn alle Stricke reißen, maile mal Deine Datei. Dann schau ich mal wo`s hakt.
Gruß
Hans
Anzeige
AW: Menüpunkt in Excel deaktivieren..?
05.02.2006 21:22:47
Joachim
Hallo Hans,
also irgendwie schaffe ich es nicht. Die richtigen ID's 30005 habe ich auch genommen.
Sei so gut und schau doch bitte noch mal in die Mappe.
https://www.herber.de/bbs/user/30698.xls
Menü deaktivieren habe ich nicht eingebaut - da es dauernd auf Fehler läuft.
Danke.
Gruß Joachim
AW: Menüpunkt in Excel deaktivieren..?
05.02.2006 22:08:24
HansHei
Moin Joachim,
ich versuche gerade die überarbeitete Datei hochzuladen. Iss wohl ein Problem, obwohl gezipt. Wenn alle Stricke reißen maile ich sie Dir ggf. zu. Ich versuch aber noch mal.
Gruß
aus dem schönen aber manchmal unverständlichen Ostfriesland
Hans
Anzeige
AW: Menüpunkt in Excel deaktivieren..?
05.02.2006 22:31:42
HansHei
Moin Joachim,
hat etwas länger gedauert. Ich wusste, dass die Datei keine Umlaute enthalten darf,- aber dass auch die Verzeichnisse dies nicht beinhalten dürfen ist mir neu (bei Herber). Seis drum :-)
Anbei Deine überarbeitete Datei. Hoffe das alles klappt. Wenn nicht, dann geh ich morgen hintern Deich und heul mich aus ;-).
https://www.herber.de/bbs/user/30700.xls
Gruß aus Ostfriesland, dem einzig freien Land der Republik
Hans
Geschafft.... BINGO..!!!!
06.02.2006 00:16:36
Joachim
Hallo Hans,
ich konnte es zwar noch nicht ausgiebig testen, aber es sieht so aus, dass nun wohl alle
Probleme gelöst sind.
Ich danke dir vielmals..
Du hast was gut bei mir!!
Freibier für die Freien Enthusiasten im Freien Ostfriesland !!! :-)))
Bis bald mal wieder.
Grüße aus Düsseldorf
Joachim
Anzeige
AW: Menüpunkt in Excel deaktivieren..?
04.02.2006 20:48:31
Holger
Hi,
wenn du auch bei Absturz auf der sicheren Seite sein willst, musst du beim Excelstart
dafür sorgen, dass ein definierter Grundzustand hergestellt wird. das geht z.B.
mit einem Klassenmodul in der Personl.xls.
mfg Holger

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige