Herbers Excel-Forum - das Archiv
Anpassenfunkt. in 2000, 2002 und 2003 deaktivieren

|
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
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
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
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
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
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
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
Betrifft: Keine Idee oT
von: Gerd
Geschrieben am: 04.01.2007 21:34:03
oT
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
Betrifft: Du bist der wahre Meister! oT
von: Konni Fere
Geschrieben am: 04.01.2007 22:53:30
oT
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
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
Betrifft: Danke Dir für die nochmalige Antwort, o.T.
von: Kasimir
Geschrieben am: 05.01.2007 13:37:12