Herbers Excel-Forum - das Archiv

Makros

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Makros
von: Udo

Geschrieben am: 26.12.2006 17:41:59
Hallo Leute, ich hätte da mal Fragen.
Wenn ich ein Blatt schützen will und man auch keine Zelle ansteuern soll, dann mache ich das doch so:
Format - Zellen - Schutz
den Haken in gesperrt drin lassen
dann Extras - Schutz - Blatt schützen... - Haken nur in Nicht gesperrte Zellen auswählen
Jetzt speicher ich die Mappe ab.
Wenn ich diese nun wieder aufrufe, so sollte das Blatt geschützt sein und man sollte keine Zelle anklicken können.
Und das geht auch !
-------------------------------------------
Wenn ich aber den Schutz mit einem Makro einrichten will, dann geht es hoffentlich so???
Sub Beispiel()
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
End Sub

Ich führe das Makro aus und speicher die Mappe ab.
Wenn ich diese nun wieder aufrufe, so sollte das Blatt geschützt sein und man sollte keine Zelle anklicken können.
Das ist aber nicht der Fall.
Das Blatt ist zwar immer noch geschützt, aber man kann jede Zelle anklicken.
Habe ich einen falschen Befehl benutzt ???
Diesen Befehl habe ich einfach durch Makro-aufzeichnen rausbekommen.
‚=================================================
Noch ne Frage
Eine Variable verliert seinen Wert von einem Makro zum Anderen.
Wie kann ich den Wert einer Variablen , wenn ich diese in verschiedenen Makros verwende, nicht verlieren.
Muß ich die Variable, z.B. x, besonders dimensionieren?
Vielen Dank an diejenigen, die mir auf meine Fragen antworten
und noch ein schönes altes Jahr !
Bild

Betrifft: AW: Makros
von: Sonnenpeter
Geschrieben am: 26.12.2006 18:01:29
Hallo Udo,
dass ist ein bekanntes Problemchen :-)))
Excel merkt sich das nicht.
Einziger Weg Schutz raus und wieder neu schützen.
Gruß Sonnenpeter
Bild

Betrifft: AW: Makros
von: René

Geschrieben am: 26.12.2006 19:40:42
Hi Udo
Da kann man Sonnenpeter nur zustimmen, das Excel ist eben auch nur ein Mensch und kann sich nicht alles merken. ;-)
Zu deiner Variablen-Frage:
Um eine Variable in mehreren Makros mit ihrem "verordneten" Wert zu nutzen must du diese als globale Variable deklarieren.
Diese geschieht ganz normal mit der Dim-Anweisung, jedoch vor den Routinen.
Sollte diese Variable den Wert in den Makros absehbar nicht ändern, du brauchst in allen Makros den selben "verordneten" Wert, dann ist es besser dies als Konstante zu deklarieren.
Hierbei verwendest du die Anweisung [Const], auch vor den Routinen.
Gängiges Beispiel ist eine Passwortvergabe:
Const Psw = "1234"
Private Sub CommandButton1_Click()
****Routine****
End Sub

Das Paswort wird in der Konstanten Psw deklariert und vor die Routine gestellt.
Anzumerken sei aber, man sollte sparsam mit globalen Variablen oder Konstanten umgehen, da sie Speicherplatz auf den Stapelspeicher belegen der sich negativ auf das Laufverhalten von Makros auswirken.
Gruß René
 Bild
Excel-Beispiele zum Thema "Makros"
Start des Makros nach Laden der Arbeitsmappe Makros in Abhängigkeit vom Zellennamen aufrufen
Makros zeitgesteuert aufrufen CommandBar in Abhängigkeit vorhandener Makros erstellen
Makrostart bei Auswahl einer Zelle in Zeile 3 Makros aus einem Standardmodul in ComboBox einlesen