Herbers Excel-Forum - das Archiv

Anpassenfunkt. in 2000, 2002 und 2003 deaktivieren

Bild

Betrifft: Anpassenfunkt. in 2000, 2002 und 2003 deaktivieren
von: Kasimir

Geschrieben am: 04.01.2007 18:48:13
Hallo Leute,
ich habe da ein kleines Problem, hoffe zumindest, dass es ein kleines ist. Also, ich möchte die Anpassenfunktion deaktivieren. Das bekomme ich ja zu fast 100% hin. Allerdings hänge ich im Moment an der Anpassenfunktion, die man auswählen kann, wenn man am Ende einer Symbolleiste (ab Excel2002) auf den Pfeil klickt und dass dann in dem PopUp- Menü steht.
Nun habe ich in der Recherche folgenden Code dafür gefunden.
Application.CommandBars.DisableCustomize = True
Damit bekomme ich die Funktion ja auch bei Excel 2002 bzw. Excel 2003 deaktiviert. Allerdings soll die Datei auch unter Excel 2000 funktionieren. Und da beginnt mein Problem, denn Excel 2000 kennt den Befehl „.DisableCustomize“ leider noch nicht. Somit erhalt ich immer einen Kompilierungsfehler, wenn das Makro, in dem die Zeile steht, ausgeführt wird.
Hat jemand eine Idee, wie ich den Befehl einarbeiten kann, so dass Excel 200 darauf nicht reagiert, aber Excel 2002 und Excel 2003 schon? Oder gibt es gar noch einen Befehl, mit dem ich diese Anpassenfunktion in 2002 und 2003 deaktivieren kann, aber auch Excel 2000 damit klar kommt?
Bin für jede Hilfe dankbar.
Gruß,Kasimir
Bild

Betrifft: AW: Anpassenfunkt. in 2000, 2002 und 2003 deaktivi
von: Ramses
Geschrieben am: 04.01.2007 18:56:11
Hallo
Auf die andere Art
If CInt(Application.Version) > 9 Then
Application.CommandBars.DisableCustomize = True
End If
Dann wird das unter E2000 nicht ausgeführt
Gruss Rainer
Bild

Betrifft: AW: Anpassenfunkt. in 2000, 2002 und 2003 deaktivi
von: Kasimir

Geschrieben am: 04.01.2007 19:05:39
Hallo Rainer,
danke Dir für Deine Antwort. Leider erscheint der gleiche Fehler, weil eben die Methode
.DisableCustomize
Excel 2000 noch nicht bekannt ist. Ich hatte das auch schon mit einer Abfrage der Versionsnummer versucht, aber mit gleichen Ergebnis. Gibt es noch eine andere Möglichkeit? Wäre super.
Danke nochmal und Gruß,
Kasimir
Bild

Betrifft: AW: Anpassenfunkt. in 2000, 2002 und 2003 deaktivi
von: Gerd
Geschrieben am: 04.01.2007 19:23:10
Hi,
sieh dir mal die bedingte Kompilierung in der Hilfe an.
mfg Gerd
Bild

Betrifft: AW: Anpassenfunkt. in 2000, 2002 und 2003 deaktivi
von: Kasimir

Geschrieben am: 04.01.2007 19:58:14
Hallo Gerd,
danke Dir für Deine Antwort. Also mit dem Code aus der Hilfe funktioniert das schon mal. Allerdings, wie Frage ich das genaze denn nun auf die Version ab. Mit folgendem Code geht das leider nicht. Es erscheint zwar kein Fehler, aber der Befehl in der If-Abfrage wird nicht ausgeführt.
#Const Vers = 10
Sub XP_Anpassen_deaktivieren()
Dim ActVersion As Integer
ActVersion = Mid(Application.Version, 1, 2)
#If Vers < ActVersion Then
Application.CommandBars.DisableCustomize = True
#End If
End Sub

Kann da nochmal jemand rüber schauen? Danke!
Gruß,
Kasimir
Bild

Betrifft: AW: Anpassenfunkt. in 2000, 2002 und 2003 deaktivi
von: Gerd
Geschrieben am: 04.01.2007 20:26:29
Hi,
#If Val(application.version) > 10 Then
DeinCode
#End If
mfg Gerd
Bild

Betrifft: AW: Anpassenfunkt. in 2000, 2002 und 2003 deaktivi
von: Kasimir

Geschrieben am: 04.01.2007 20:38:50
Hallo Gerd,
danke Dir für Deine erneute Antwort, aber leider funktioniert das nicht. Es kommt eine Fehlermeldung mit dem Text "Fehler beim Kompilieren: Unzulässige Verwendung eines Objekts" und in dem Code wird
application
blau markiert. Noch eine Idee?
Gruß,
Kasimir
Bild

Betrifft: Keine Idee oT
von: Gerd
Geschrieben am: 04.01.2007 21:34:03
oT
Bild

Betrifft: Zu einfach
von: Nepumuk

Geschrieben am: 04.01.2007 22:43:16
Hi,
einfach zu einfach für die Experten :-)
Public Sub test()
    Dim objBars As Object
    If Val(Application.Version) > 9 Then
        Set objBars = Application.CommandBars
        objBars.DisableCustomize = True
    End If
End Sub

Gruß
Nepumuk
Bild

Betrifft: Du bist der wahre Meister! oT
von: Konni Fere
Geschrieben am: 04.01.2007 22:53:30
oT
Bild

Betrifft: AW: Zu einfach
von: Kasimir

Geschrieben am: 05.01.2007 07:21:42
Guten Morgen Nepumuk!
Danke Dir für Deine Antwort, die war, wen wunderts, Gold wert. Es funktioniert. Was mich nur noch interessieren würde, warum stört sich Excel 2000 nun nicht mehr an der Eigenschaft "DisableCustomize"? Kannst Du mir das wenn möglich relativ einfach erklären? Denn dass es funktioniert ist super, aber ich möchte auch verstehen warum.
Nochmal Danke an alle, die mir geholfen haben. Einen schönen Tag noch,
Kasimir
Bild

Betrifft: AW: Zu einfach
von: Nepumuk

Geschrieben am: 05.01.2007 09:55:49
Hallo Kasimir,
Excel prüft beim kompilieren, ob die angegebenen Eigenschaften, Methoden und Ereignisse dem angegebenen Objekt überhaupt bekannt sind. Da die Variable aber als Objekt deklariert ist, kann Excel nicht feststellen, ob das Objekt die Eigenschaft kennt.
Das ist die selbe Methode, wie sie beim Zugriff auf fremde Objekte angewendet wird, welche nicht mir early Binding (ein Verweis auf dessen Objektbibliothek wird gesetzt) in die Application eingebunden werden. Das nennt sich dann late Binding und der Zugriff erfolg per CreateObject oder GetObject.
Gruß
Nepumuk
Bild

Betrifft: Danke Dir für die nochmalige Antwort, o.T.
von: Kasimir

Geschrieben am: 05.01.2007 13:37:12
 Bild
Excel-Beispiele zum Thema "Anpassenfunkt. in 2000, 2002 und 2003 deaktivieren"
Menüpunkt SPEICHERN deaktivieren Deaktivieren und Aktivieren von Drag&Drop
Menüpunkt "Zellen einfügen..." im Kontextmenü deaktivieren Das Extras-Menü aktivieren/deaktivieren
Wenn Formel, dann Löschtaste deaktivieren Speichern-Schaltfläche aktivieren/deaktivieren