Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1496to1500
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

Code auch unter Blattschutz auszuführen?

Code auch unter Blattschutz auszuführen?
14.06.2016 18:03:00
Patrick
Hallo,
ich habe folgenden Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
With Target.MergeArea
' Zellverbund aufheben
.UnMerge
' Ausrichtung über alle Zellen
.HorizontalAlignment = xlCenterAcrossSelection
'  automatische Zeilenhöhe
.EntireRow.AutoFit
' Zellen verbinden
.Merge
' Ausrichtung links
.HorizontalAlignment = xlGeneral
End With
End Sub
Der funktioniert allerings nur, wenn ich keinen Blattschutz habe. Kann ich diesen auch mit Blattschutz aktivieren?
Vielen Dank.

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code auch unter Blattschutz auszuführen?
14.06.2016 18:06:19
Hajo_Zi
nach if
ActiveSheet.unprotect
vor end Sub
ActiveSheet.protect

Oder mit userinterfaceonly, eine Option...
14.06.2016 18:11:17
Michael
Hallo,
... bei Worksheet.Protect Das ist ggf. einfacher/praktischer als immer wieder den Blattschutz setzen/aufheben zu müssen.
LG
Michael

AW: Code auch unter Blattschutz auszuführen?
14.06.2016 21:07:05
Patrick
Hi, danke.
Nur leider weiß ich nicht, wie und wo ich das nun einsetzen soll.
ich habe nun erstmal den Code von Werner eingetragen. Allerdings setzt dieser die gesperrten Tabellen frei. Zwar soll der Code funktionieren, damit die Zeilenhöhe sich an den Text anpasst, aber die gesperrten Zellen sollen eigentlich gesperrt bleiben. Was aber scheinbar ein Konflikt ist. Denn bleiben die Zellen gesperrt, kann sich die Zellenhöhe nicht anpassen, wie es durch die Eingaben in den freigegebenen Zellen aus der gleichen Zeile eigentlich vorgegeben wird.
Mein Chef hätte gerne, dass eben nur die "beschreibbaren" Zellen auszuwählen sind und man so durch die Tab-Taste diese durchgehen kann. Die Gesperrten Zellen sollen nicht auswählbar sein. Aber trotzdem sollen sie eben die Zeilenhöhe miterweitern, wenn es eine der Eingabezellen benötigt.

Anzeige
AW: Code auch unter Blattschutz auszuführen?
14.06.2016 21:24:13
Werner
Hallo Patrick,
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
ActiveSheet.Unprotect Password:="DeinPasswort"
With Target.MergeArea
' Zellverbund aufheben
.UnMerge
' Ausrichtung über alle Zellen
.HorizontalAlignment = xlCenterAcrossSelection
'  automatische Zeilenhöhe
.EntireRow.AutoFit
' Zellen verbinden
.Merge
' Ausrichtung links
.HorizontalAlignment = xlGeneral
End With
ActiveSheet.Protect Password:="DeinPasswort"
End Sub
Gruß Werner

AW: Code auch unter Blattschutz auszuführen?
14.06.2016 21:42:09
Patrick
Wow, das geht ja doch! Jetzt habe ich nur ein Problem bemerkt:
Selbst wenn ich beim Blattschutz Rechte vergebe, weden diese nach einer Eingabe wieder entfernt. Das finde ich auch gut. Wenn ich aber z.B. ein kleines "g" in die Zelle schreibe, wird unten ein Stück abgeschnitten. Also die Zeile müsste ein wenig höher sein oder der Text wird nicht mehr richtig zentriert. Das kann ich nicht ändern, da ja nun die Rechte zum Formatieren nicht gespeichert bleiben.

Anzeige
AW: Code auch unter Blattschutz auszuführen?
14.06.2016 21:46:12
Patrick
Edit: Ich finde das so gut. Habe mal gegengeprüft und scheinbar ist es normal, dass Excel so zentriert. Ist mir nur noch nie aufgefallen. Also:
Vielen Dank, wirklich.
Für die ganze Hilfe hier, würde ich gerne auch was zurück geben. Ich habe nicht viel, aber vielleicht kann man dem Forum eine Kleinigkeit spenden?

AW: Gerne und danke für die Rückmeldung. o.w.T.
14.06.2016 21:51:50
Werner

AW: Code auch unter Blattschutz auszuführen?
14.06.2016 18:17:57
Werner
Hallo Patrick,
oder aber beim Öffnen der Datei den Blattschutz so setzen. Code in "Diese Arbeitsmappe"
Private Sub Workbook_Open()
With Tabelle3 'Tabelle anpassen
.Unprotect Password:="PW"
.Protect UserInterfaceOnly:=True, Password:="PW"
End With
End Sub
Mit UserInterfaceOnly = True sind Änderunge durch Makros möglich ohne jedesmal den Blattschutz raus zu nehmen.
Den Code hast du aber schon.
Gruß Werner

Anzeige
AW: Code auch unter Blattschutz auszuführen?
14.06.2016 20:51:38
Patrick
Hi Werner,
ja, das ist richtig, den Code habe ich schon. Habe den auch eingebunden, aber falsch. :-)

AW: Code auch unter Blattschutz auszuführen?
14.06.2016 20:54:30
Werner
Hallo Patrick,
und das bedeutet, dass es jetzt passt?
Gruß Werner

AW: Code auch unter Blattschutz auszuführen?
14.06.2016 21:22:54
Patrick
Ich hatte gerade weiter unten noch eine Antwort abgegeben.
Das problem ist, dass durch den Code der Blattschutz aufgehoben wird. dadurch passt sich dann die Zeilenhöhe entsprechend an.
Für mich sieht es aber insgesamt nach einem Konflikt aus. Denn die gesperrten Zellen sollen sich zwar der Höhe der Eingabe-Zellen anpassen, aber nicht auswählbar/ änderbar sein. Und durch die Aufhebung des Blattschutzs durch den Code, bleibt der Blattschutz aufgehoben und die gesperrten Zellen sind nicht mehr gesperrt.
Ich verstehe das so, dass die gesperrten Zellen entsperrt werden müssen, damit sie eine Veränderung der Zeilenhöhe durch Eingaben in Nachbarzellen durchführen können. Nur sollte ich eben alle Zellen, die nicht der Eingabe dienen, sperren, damit sie a) nicht geändert werden und b) man so durch Tab-Taste die Eingabe-Zellen durchgehen kann.
Ob das überhaupt durch Code zu lösen ist, bin ich mir gerade nicht sicher, eben weil ich da einen Konflikt sehe. Ich werde ihm beide Varianten anbieten. Denke aber, dass er sich halt damit zufrieden geben muss, dass sich die zeilenhöhe mit gesperrten Zellen in gleicher Zeile nicht ändern kann.

Anzeige
AW: Code auch unter Blattschutz auszuführen?
14.06.2016 18:19:46
Daniel
Hi
du kannst im Code den Blattschutz aufheben und am schluss wieder aktivieren
dazu gibt's die Befehle
ActiveSheet.Unprotect "Passwort"
ActiveSheet.Protect "Passwort"
wenn du keine weiteren Parameter angibst, bleiben die manuell gemachten Einstellungen des Schutzes erhalten.
Generell gilt, dass ein Makro immer nur dass tun kann, was auch der Anwender darf.
Dh wenn ein Blatt geschützt ist, kann auch ein Makro nur die Aktionen ausführen, die auch dem Anwender erlaubt sind (z.B. bei bekanntem Passwort den Schutz aufheben)
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige