Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1320to1324
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
Inhaltsverzeichnis

Makro hebt Blattschutz auf

Makro hebt Blattschutz auf
27.06.2013 14:02:01
Markus
Hallo an alle im Forum,
ich bin Markus und bastel seit einiger Zeit an einem Arbeitszeitnachweis für das ganze Jahr. Nun habe ich alle 13 Blätter (Startblatt mit allen wichtigen Information und eingabemöglichkeiten sowie alle Monate auf je einem Blatt) soweit fertig. Es laufen zwei Makros: das erste was die Uhrzeiteingabe vereinfacht und das zweit was bei anklicken der Zelle ein Kreuz erzeugt. Bis dahin funktioniert alles stimmig, wenn ich aber den Blattschutz aktiviere kommt bei dem einen Makro (x erzeugen) eine Fehlermeldung. Das wollt ich im Makro selbst verhindern und habe den Schutz im Makro aufgehoben. Dann das komische: die Makros laufen- blattschutz drin- bewegt man sich in den Zellen wo das Makro (x erzeugen) läuft bleibt der blattschutz drin. Sobald man aber auf andere ungesperrte zellen klickt hebts den kompletten blattschutz auf. Klicke ich wieder in die Zellen wo das Makro (x erzeugen) steht geht der blattschutz wieder an.
Ich bin excel Neuling und bastel gern rum aber ich bekomme es nicht hin.
Über eure Hilfe würde ich mich sehr freuen.
Bis dahin viele Grüße Markus

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro hebt Blattschutz auf
27.06.2013 14:05:02
Klaus
Hallo Markus,
was erwartest du jetzt als Hilfe? Soll jemand sagen:
"in deinem Modul 1, im dritten Makro in Zeile 7 ist ein Fehler"?
Du müsstest uns schon die Makros zeigen, am besten die ganze Datei.
Grüße,
Klaus M.vdT.

AW: Makro hebt Blattschutz auf
27.06.2013 14:32:47
Markus
Hallo Klaus,
danke für deine schnell Antwort. Bin leider auf Arbeit und meine Datei nicht bei.
Ich lade sie heute Abend mal hoch.
Danke erstmal, bis später
Viele Grüße
Markus

AW: Makro hebt Blattschutz auf
27.06.2013 21:01:02
Markus
Hallo Klaus,
ich wollte eben die Datei hochladen, aber nichts geht.
Ich bin mac Nutzer und habe sie in jeden erdenklichen Ordner verschoben. Ich kann sie nirgends auswählen.
Kann ich sie dir per Mail schicken?
MfG
Markus

Anzeige
Mail: nein
28.06.2013 06:42:04
Klaus
Hallo Markus,
Probleme sollten für die Allgemeinheit im Forum gelöst werden. Ausserdem habe ich panische Angst vor Spam-Robotern.
Grüße,
Klaus M.vdT.

Datei
28.06.2013 09:07:09
Markus
Hallo und guten morgen,
ich habe nun mal die Datei hochgeladen.
Die Tabellen funktionieren ohne Blattschutz super. Wenn ich aber einen Blattschutz aktiviere (vorher ungesperrte Zellen zum bearbeiten und beschreiben aktiviere) fliegt der Blattschutz auf den ungesperrten Zellen zum beschreiben raus auf den Zellen wo ein makro läuft geht er wieder rein. Die Tabelle soll gechützt sein, das meine Kollegen nur auf die ungesperrten Zellen zugriff haben.
Ich habe nun schon tagelang gesucht probiert aber ich finde den Fehler nicht.
Vielen Dank im voraus für eure Hilfe
Markus
https://www.herber.de/bbs/user/86101.xlsm

Anzeige
AW: Datei
28.06.2013 09:58:32
Klaus
Hi,
dein Makro BLATTSCHUTZ() ruft jedes Blatt einzeln auf. Dann läuft in jedem Blatt das "SelectionChange-Makro", das so aussieht:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Worksheets("April").Unprotect Password:="albertschweitzer"
If Intersect(Range("C10:H40"), Target) Is Nothing Then Exit Sub
Worksheets("März").Protect Password:="albertschweitzer"
Du hebelst dich ja komplett selbst aus. Die Blätter sind geschützt, aber sobald ein Blatt angefasst wird hebst du den Blattschutz auf - und durch "ExitSub" wird das Makro nicht durchlaufen, kommt also beim erneuten Blattschutzsetzen nie an!
Ich schreibe dir mal exemplarisch dein Januar-Makro um, der Rest ist Fleißarbeit die du selbst erledigen musst:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Worksheets("Januar").Unprotect Password:="albertschweitzer"
If Not Intersect(Range("C10:H40"), Target) Is Nothing Then
If Target = "X" Then
Target = ""
Else
Target = "X"
Target.HorizontalAlignment = xlCenter
End If
End If
Worksheets("Januar").Protect Password:="albertschweitzer"
End Sub
Du siehst, ich habe auf EXIT SUB verzichtet und stattdessen den relevanten Makroanteil in eine IF-Schleife verpackt. Dazu habe ich die INTERSECT-Abfrage mit NOT umgedreht. (Alternativ hätte ich den relevanten Teil des Makros auch in den ELSE-Block packen können).
Anmerkung: Googel dich mal schlau nach dem Stichwort "VBA Userinterfaceonly". Du kannst den Blattschutz auch generell so setzen, dass er den User blockert aber VBA-Makros alle rechte haben, dann sparst du dir das umständliche "aufheben-Code-setzen" in jedem Makro.
Grüße,
Klaus M.vdT.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige