Live-Forum - Die aktuellen Beiträge
Datum
Titel
18.04.2024 18:04:29
18.04.2024 16:33:24
Anzeige
Archiv - Navigation
392to396
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
392to396
392to396
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Optionen für Symbolleisten

Optionen für Symbolleisten
07.03.2004 19:25:00
Tom
Hallo,
ich habe eine eigene Symbolleiste definiert.
Nun möchte ich alle "Optionen für Symbolleisten" ausschalten.
Bei den anderen Excel-Versionen (97 + 2000) funktioniert der Befehl
Application.CommandBars("Cell").Enabled = False wunderbar.
Bei XP ist aber auf meiner Symbolleiste ein kleiner Pfeil, der eben diese Optionen durchführen kann. Dort ist dann als text hinterlegt: "Schaltfläche hinzufügen oder entfernen" --> Nach einem Klick darauf kann man die Symbolleiste anpassen. Und genau da will ich verhindern.
Wer hat da ne Lösung, die sowohl unter 97, 2000 als auch XP funktioniert?
Danke vorab
Tom

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Optionen für Symbolleisten
07.03.2004 20:20:52
Nepumuk
Hallo Tom,
da musst du eine Codezeile nach einer Versionsabfrage zur Laufzeit erzeugen, ausführen und wieder löschen. Die Anweisung lautet:
Application.CommandBars.DisableCustomize = True
Beim schließen der Mappe erfolgt das selbe wieder, nur das du es dann auf False setzen musst.
Was ich nicht ganz verstehe, die Anweisung
Application.CommandBars("Cell").Enabled = False
schaltet doch nur das Popupmenü aus, welches durch einen Rechtsklick in eine Zelle aufgerufen wird. Da gibt es doch gar keine Möglichkeit der benutzerdefinierten Änderung. Die kann ich nur per Programm ändern.
Gruß
Nepumuk
Anzeige
AW: Optionen für Symbolleisten
07.03.2004 22:19:31
Tom
Hallo Nepumuk,
die Anweisung Application.CommandBars.DisableCustomize = True greift bei XP wunderbar, nur bei 2000 und 98 habe ich riesen Probleme -> es folgt immer der Fehler "Fehler beim Kompilieren: Verwendung einer Eigenschaft unzulässig"
Was mache ich falsch bzw wie bekomme ich den Fehler weg?
Tom
AW: Optionen für Symbolleisten
07.03.2004 22:35:22
Kurt
Das geht erst ab XP! Das kannst du unter E97/E2000 nicht verwenden!
Kurt
AW: Optionen für Symbolleisten
07.03.2004 22:44:29
Tom
Hallo Kurt,
gibt es da überhaupt keine Möglichkeit?
Wie gesagt, daß Programm muß auf verschiedenen Rechnern laufen und da sollte natürlich gewährleistet sein, daß niemand was ändern kann!
Vielleicht gibt es eine ähnliche Funktion, die etwas aufwendiger ist ...
Wäre echt super, wenn ich ne Antwort bekommen würde.
danke
Tom
Anzeige
AW: Optionen für Symbolleisten
07.03.2004 22:47:57
Nepumuk
Hallo Tom,
wie schon geschrieben, musst du die Zeile zur Laufzeit erzeugen und nach deren Ausführung wieder löschen. Ein Beispiel:

Option Explicit
Private Sub Workbook_Open()
If Val(Application.Version) > 9 Then
With ThisWorkbook.VBProject.VBComponents("DieseArbeitsmappe").CodeModule
.InsertLines 7, "Application.CommandBars.DisableCustomize = True"
.DeleteLines 7, 1
End With
End If
End Sub


Code eingefügt mit: Excel Code Jeanie
Du musst nur noch die Zeilennummer (in Beispiel 7) anpassen.
Gruß
Nepumuk
Anzeige
AW: Optionen für Symbolleisten
07.03.2004 22:53:32
Tom
Hallo Nepumuk,
für was ist die Zeilennummer (im Beispiel 7) ?? - kann zwar fast jeden Code nachvollziehen, bin aber noch nicht sooo fit in VBA ...
Ohne anpassen - Code habe ich einfach eingefügt - kommt der Fehler:
"Laufzeitfehler 50289 - Die Operation kann nicht durchgeführt werden, solange das Projekt geschützt ist"
?????????
Tom
AW: Optionen für Symbolleisten
07.03.2004 23:04:53
Nepumuk
Hallo Tom,
das habe ich auch gerade bemerkt. Aber da ich meine Projekte nie mit einem Kennwort schütze, ist mir das vorher noch nie aufgefallen. Wenn du der Meinung bist, dass du auf das Kennwort, welches von den meisten Profis in weniger als 30 Sekunden ausgehebelt ist, nicht verzichten kannst, dann bin ich mit meinem Latein allerdings am Ende.
Meine Programme schützen sich selbst, in dem ich z.B. den User alle Möglichkeiten nehme in den VBA-Editor zu gelangen.
Gruß
Nepumuk
Anzeige
AW: Optionen für Symbolleisten
07.03.2004 23:07:13
PeterW
Hallo Nepumuk,
hättest du für diese Art des Schutzes vieleicht ein Beispiel zur Hand?
Danke und Gruß
Peter
AW: Optionen für Symbolleisten
07.03.2004 23:46:40
Nepumuk
Hallo Peter,
ist ein bisschen aufwendig aber ich mache es so:
Die Mappe ist mit einem Lese-Schreischutzkennwort geschützt und kann vom Anwender, der das Kennwort nicht hat, nicht geöffnet werden. Dazu bekommt er eine kleine .EXE mit der die Datei geöffnet wird. Das stellt mir sicher, dass die Makros aktiviert werden, auch wenn der User die Sicherheit auf "Hoch" setzt. Das weitere siehst du hier:
https://www.herber.de/bbs/user/4132.xls
Gruß
Nepumuk
Anzeige
AW: Optionen für Symbolleisten
08.03.2004 00:02:58
PeterW
Hallo Nepumuk,
Danke für das Beispiel, da hab ich in einer stillen Stunde was zu tun. ;-)
Gruß
Peter
AW: Optionen für Symbolleisten
07.03.2004 23:10:10
Tom
Hallo Nepumuk,
welche Möglichkeiten gibt es denn noch, nicht in den VBA-Editor zu gelangen außer:
-Application.OnKey "%{F11}", "" 'VBA-Editor deaktivieren
-Application.CommandBars("Worksheet Menu Bar").Enabled = True 'Menüleiste ausblenden
???????????????????
Was hat es denn mit der Funktion auf sich:
.InsertLines 7, "Application.CommandBars.DisableCustomize = True"
.DeleteLines 7, 1
denn bei Xp klappt es auf einmal nicht mehr - man kann die Symbolleiste wieder anpassen :-(
Tom
Anzeige
AW: Optionen für Symbolleisten
08.03.2004 00:02:34
Nepumuk
Hallo Tom,
du musst sicherstellen, das die Zeile die eingefügt wird auch ausgeführt wird. Schau mal in deinem Editor in die Symbolleiste. Dort findest du eine Anzeige der Zeile und Spalte in der sich der Cursor befindet.
Userbild

Du benutzt am besten die Zeilennummer der Zeile mit der Delete-Anweisung. Außerdem musst du bei XP unter Makros - Sicherheit - vertrauenswürdige Quellen der Zugriff auf das VBA Projekt erlaubt werden. Um das Anpassen-Menü der Symbolleisten zu verhindern, benötigst du noch folgende Anweisung:
Application.CommandBars("Toolbar List").Enabled = False
Und schau dir mal die Mappe an, die ich gerade für Peter gemacht habe. Dort wird noch das Popupmenü der Tabellenreiter und des Excelicons neben "Datei" in der Menüleiste ausgeblendet, das dies Zugänge zum Editor sind.
Gruß
Nepumuk
Anzeige
AW: Optionen für Symbolleisten
09.03.2004 08:18:37
Tom
Hallo Nepumuk,
ne Grippe hat mich ans Bett gefesselt - daher die späte Antwort ...
Ich werde es mal so testen - schau doch bitte immer mal wieder auf diesen Thread oder teile mir Deine Mail-Adresse mit, falls ich doch noch Fragen habe
--> mail an mini-masters@web.de
Danke mal
Tom
AW: Optionen für Symbolleisten
08.03.2004 09:05:59
Peter Haserodt
Hallo Nepumuk,
durch Zufall habe ich diesen Thread gesehen.
Dieser Schutz scheint doch auch nur ein Scheinschutz oder ?
1. Wenn du kein Projektschutz hast, kann man doch wieder
über die VBE das auslesen oder ?
2. Kann man die Schaltflächen doch von außen wieder aktivieren
Muss doch nur mit getobject die App angreifen.
Gruss Peter
Anzeige
AW: Optionen für Symbolleisten
08.03.2004 16:52:03
Nepumuk
Hallo Peter,
den größten Teil meiner Programme kompiliere ich zu COM-Addins oder die Tabelle ist Bestandteil eines VB-Projektes. Da reicht mir der Schutz für die Codefragmente, die sich noch in der Mappe befinden, vollkommen. Auf den Projektschutz verzichte ich, damit die Makros der Mappe updatefähig bleiben. Ansonsten kann ich nämlich nur die Tabellen aus der alten Mappe in die neue kopieren und das ist, wenn sich Formeln und Verknüpfungen in der Mappe befinden, ziemlich aufwendig.
Ansonsten hast du schon Recht, aber das musst du nicht jedem verraten.
Gruß
Nepumuk

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige