Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1048to1052
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
Makro Zelle Schutz aufheben
16.02.2009 19:53:00
Kurt
Guten Abend,
ich habe dieses Makro auch übers Forum:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Application.ScreenUpdating = False
If Intersect(Target, Range("A10:C20")) Is Nothing Then Exit Sub
ActiveSheet.Unprotect ("kk")
On Error GoTo fehler
Application.EnableEvents = False
If Target.Count = 1 Then
Target = Application.Proper(Target)
End If
fehler:
Application.EnableEvents = True
'Wenn mehr als eine Zelle markiert wurde dann Makro beenden
If Target.Count > 1 Then Exit Sub
Select Case Target.Value
Case "U"
Target.Interior.ColorIndex = 35
Case "F"
Target.Interior.ColorIndex = 35
Selection.Font.ColorIndex = 1           'schwarz
End Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios _
:=True, Password:= ("kk")
Application.ScreenUpdating = True
End Sub


Ich möchte den Schutz erst aufheben, wenn ich über das Drophdown Menü/Pfeil den Buchstaben
auswähle.
Leider bei mir immer entschützt.
gruß Kurt MG

26
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro Zelle Schutz aufheben
16.02.2009 19:59:00
Hajo_Zi
Hallo Kurt,
der Code ist mir nicht ganz klar.

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Application.ScreenUpdating = False
If Intersect(Target, Range("A10:C20")) Is Nothing Then Exit Sub
On Error GoTo fehler
Application.EnableEvents = False
If Target.Count = 1 Then
Target = Application.Proper(Target)
End If
fehler:
Application.EnableEvents = True
'Wenn mehr als eine Zelle markiert wurde dann Makro beenden
If Target.Count > 1 Then Exit Sub
ActiveSheet.Unprotect ("kk")
Select Case Target.Value
Case "U"
Target.Interior.ColorIndex = 35
Case "F"
Target.Interior.ColorIndex = 35
Selection.Font.ColorIndex = 1           'schwarz
End Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios _
:=True, Password:=("kk")
Application.ScreenUpdating = True
End Sub



Anzeige
AW: Makro Zelle Schutz aufheben
16.02.2009 20:14:00
Hajo_Zi
Hallo Kurt,
hier mal das bereinigte Makro

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
' Wenn mehr als eine Zelle markiert Makro nicht ausführen
If Target.Count = 1 Then
Application.EnableEvents = False
Application.ScreenUpdating = False
If Intersect(Target, Range("A10:C20")) Is Nothing Then Exit Sub
ActiveSheet.Unprotect ("kk")
Select Case Left(UCase(Target.Value), 1)
Case "U"
Target.Interior.ColorIndex = 35
Case "F"
Target.Interior.ColorIndex = 35
Selection.Font.ColorIndex = 1           'schwarz
End Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios _
:=True, Password:=("kk")
Application.EnableEvents = True
Application.ScreenUpdating = True
End If
End Sub


Gruß Hajo

Anzeige
AW: Makro Zelle Schutz aufheben
16.02.2009 20:32:00
Kurt
Guten Abend Hajo,
DANKE.
Habe gerade deinen Vorschlag eingesetzt.
Wenn ich das Blatt kompl. geschützt habe, kann ich zwar auswählen aber nicht
den Buchstaben einsetzen, sagt mir geschützt !
Es sollte der Schutz aufgehoben werden und dann nach einsetzen wieder schützen.
Danke für die KÜRZE !!!
gruß Kurt MG
AW: Makro Zelle Schutz aufheben
16.02.2009 20:41:00
Hajo_Zi
Hallo Kurt,
ich verstehe nur Bahnhof und ich sehe auch Deine Datei nicht.
Gruß Hajo
Hajo, kann ich verstehen, hier Muster
16.02.2009 21:20:00
Kurt
Hallo Hajo,
hier mein Muster, es soll bei geschützer Tabell der ausgwählte Buchstabe
hinterlegt werden können.
https://www.herber.de/bbs/user/59521.xls
gruß Kurt MG
Anzeige
AW: Cahnge Ereignis
16.02.2009 21:34:00
Hajo_Zi
Hallo Kurt,
der Code macht was drin steht die Zelle wird gefärbt bei U oder F. Da reicht aber diser Code

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Count = 1 Then
Application.EnableEvents = False
Application.ScreenUpdating = False
If Intersect(Target, Range("D14:N53")) Is Nothing Then Exit Sub
ActiveSheet.Unprotect (getStrPasswort)
Select Case Left(UCase(Target.Value), 1)
Case "U", "F"
Target.Interior.ColorIndex = 35
End Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios _
:=True, Password:=getStrPasswort
Application.EnableEvents = True
Application.ScreenUpdating = True
End If
End Sub


Gruß Hajo

Anzeige
Bitte mal schauen, nein leider nicht.
16.02.2009 22:07:00
Kurt
Hallo Hajo,
wenn ich eine Zelle angeklickt habe und z.b. ein U reinsetzen will, wird
angezeigt GESCHÜTZT.
Bitte prüfe nochmal, bei mir ist es so, wenn ich die Tabelle entschütze wird reingeschrieben.
Ich muß aber die Tabelle schützen, es soll nur die Eingabe über die DrophDown Auswahl
möglich sein.
gruß Kurt MG
kann ich auch nicht nachvollziehen,es klappt alles
17.02.2009 08:23:00
Matthias
Hallo
Ich habe mir nun auch Deine Datei angeschaut.
Zitat: es soll nur die Eingabe über die DrophDown Auswahl möglich sein.
Beim Befüllen über die Gültigkeitsliste, klappt alles wie von Dir gewollt.


Beim Versuch die Zelle manuell zu füllen (was unerwünscht ist) kommt diese Meldung.
Userbild
getestet unter XL2000 und XL2007
Beim Öffnen der Datei, ist der Schutz übrigens noch nicht gesetzt!
Gruß Matthias
Anzeige
Habe nochmals die Datei, bitte mal schauen
17.02.2009 08:55:00
Kurt
Guten Morgen Matthias,
ich habe die kompl. Datei nochmals geschützt (jjww),
habe dann versucht per DrophDown auszuwählen u. einzusetzen, leider ohne
Erfolg.
Bitte prüfe doch nochmals, ich verstehe nicht warum dies nicht klappt.
https://www.herber.de/bbs/user/59526.xls
gruß Kurt MG
AW: Habe nochmals die Datei, bitte mal schauen
17.02.2009 10:51:00
Erich
Hi Kurt,
ich hab mal an deiner vorigen Mappe (59521.xls) herumgespielt.
Die Makros habe ich ein wenig umgeschrieben.
Bei den Zellen mit Gültigkeitsprüfung habe ich den Schutz rausgenommen -
dafür gibt es ja gerade die Gültigkeitsprüfung.
(Wenn die Zellen geschützt sind, kann ich sie - bei aktivem Blattschutz - nicht ändern,
auch nicht mittels DropDown.)
Es ist jetzt möglich, in diese Zellen ohne DropDown einen Wert einzugeben,
aber dier Wert muss in der DropDown-Liste vorkommen (bis auf die Großschreibung).
Gib einfach mal ein kleines u ein.
Die "Liste" habe ich verkürzt (ohne Leere Zellen).
Hier die Mappe: https://www.herber.de/bbs/user/59530.xls
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
Hallo Erich, soweit gut habe noch ...
17.02.2009 12:59:00
Kurt
Hallo Erich,
danke für die Hilfe.
Wenn ich "B00" oder "B01" auswähle soll die ausgewählte
Zelle entsprechend Gelb oder Orange und die Schrift, das geht leider
nicht.
Kannst Du mir da noch helfen ?
gruß
Kurt MG
Wichtig Nachtrag, Bitte ...
17.02.2009 14:50:00
Kurt
Hallo Erich,
warum wird in der Musterdatei in den Zellen
"F14 bis Q21" nicht die Fehlermeldung angezeigt, wenn ich z.b.
ein Q einsetze ?
gruß Kurt MG
also ich blick fast nicht mehr durch ...
17.02.2009 15:06:00
Matthias
Hallo Kurt
Ich hatte mich in meinem Beispiel
auf Deine 1.hochgeladenen Datei bezogen.
Dort funktionierte doch alles. Bis auf das das PW noch nicht aktiv war.
In Deiner 2.hochgeladenen Datei habe ich festgestellt,
das nicht überall die bedingte Formatierung eingetragen war.
Bitte welche Datei meinst Du jetzt.
Ich würde ja auch gerne helfen, aber ich verstehe das Poblem nicht.
siehe mein letzter Beitrag:
https://www.herber.de/forum/archiv/1048to1052/t1051271.htm#1051361
Ich gehe nachwievor davon aus, das Du den Eintrag in die Zellen nur per DropDown der Gültigkeitsliste zulassen willst.
Ist das korrekt ?
also:
Bitte erläutere nochmal genau was Du willst bzw.was nicht funktioniert und in welcher Datei.
Gruß Matthias
Anzeige
Hallo Matthias ...
17.02.2009 15:37:00
Kurt
Hallo Matthias,
also so langsam drehe ich auch am RAD.
Es ist sehr NETT das ich trotzdem von Dir, Erich u. Hajo unterstützt werde.
Also, in meiner letzten Musterdatei hatte ich festgestellt, das im oberen Bereich die Fehlermeldung nicht kommt.
Folgende Bedingung:
Die Datei ist geschützt, es sollte nur die Liste2 für oben also von F14:Q21 Gültigkeit haben.
Der untere Bereich von F23: Q53 sollte nur für die ListeGültigkeit haben, ebenfalls bei falscher Eingabe
Fehlermeldung
Wenn man bei Bereich von F23: Q53 B00 + B01 auswählt soll die Zelle entsprechend der Farbe,
siehe Tabelle A7+A8 sein.
Anbei das Muster:
https://www.herber.de/bbs/user/59544.xls
Herzlichen Dank im voraus !!!
gruß Kurt
Anzeige
AW: Hallo Matthias ...
17.02.2009 15:54:00
Matthias
Hallo
Userbild
AW: Hallo Matthias ...
17.02.2009 16:24:00
Kurt
Hallo Matthias,
ja es sollte in VBA eingefärbt werden.
(siehe Makro)
gruß Kurt MG
ei, ei -> Left(...,1) das wars wohl
17.02.2009 16:41:00
Matthias
Hallo
Du fragst ja permaneten Left(...,1) ab
B00 und B01 sind aber 3 Stellen.
also sollte es so klappen

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Intersect(Target, Range("D14:Q53")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
If Not Target.HasFormula Then
Application.EnableEvents = False
Target.Value = UCase(Target.Value)
Application.EnableEvents = True
End If
CommandButton2_Click '=Schutz aufheben
Select Case Left(UCase(Target.Value), 1)
Case Is = "U": Target.Interior.ColorIndex = 35
Case Is = "F":  Target.Interior.ColorIndex = 35 '43
End Select
Select Case Left(UCase(Target.Value), 3)
Case Is = "B00"
Target.Interior.ColorIndex = 36         'hellogelb
Target.Font.ColorIndex = 36
Case Is = "B01"
Target.Interior.ColorIndex = 40        'hellorgange
Target.Font.ColorIndex = 40
Case ""
Target.Interior.ColorIndex = xlNone
Target.Font.ColorIndex = 1
End Select
SchutzEin
End Sub


Gruß Matthias

Anzeige
Leider nicht
17.02.2009 16:51:00
Kurt
Hallo Matthias,
habe das Makro so:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Intersect(Target, Range("D14:Q53")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
If Not Target.HasFormula Then
Application.EnableEvents = False
Target.Value = UCase(Target.Value)
Application.EnableEvents = True
End If
CommandButton2_Click
Select Case Left(UCase(Target.Value), 1)
Case "U":   Target.Interior.ColorIndex = 35
Case "F":   Target.Interior.ColorIndex = 35 '43
Select Case Left(UCase(Target.Value), 3)
Case Is = "B00"
Target.Interior.ColorIndex = 36         'hellogelb
Target.Font.ColorIndex = 36
Case Is = "B01"
Target.Interior.ColorIndex = 40        'hellorgange
Target.Font.ColorIndex = 40
Case ""
Target.Interior.ColorIndex = xlNone
Target.Font.ColorIndex = 1
End Select
SchutzEin
End Sub


leider keine Reaktion von Farbe Hintergrund und Schriftfarbe.
Grün wird ebenfalls NICHT eingefärbt.
Es kommt auch keine Fehlermeldung! Obwohl Gültigkeitsprüfung drin ist, bitte schau doch mal in die Tabelle, bitte.
gruß Kurt MG

was soll ich tun, es klappt doch ...
17.02.2009 17:06:00
Matthias
Hallo Kurt
Leider mus ich nun hier passen.
Ich kann nur schreiben bei mir klappt es:


unter XL2000
Userbild


unter XL2007
Userbild
Sorry, ich kann Dir nicht weiterhelfen. (was soll ich denn tun, wenn es bei mir funktioniert ?)
Viel Glück noch, Matthias
Hallo Matthias, bitt schicke
17.02.2009 17:25:00
Kurt
Hallo Matthias,
biotte schick doch bitte die Musterdatei,
herzlichen Dank.
Melde mich nachher,
gruß Kurt MG
AW: bitte hier, Deine Datei....
17.02.2009 19:09:00
Kurt
Hallo Matthias,
soweit klappt das.
Allerdings wird kein Fehler angezeigt wenn ich ein Q eingebe,
bzw. einen Buchstaben oder Zahl die nicht zur Liste gehört !
Sonst soweit i.o.,
mfg Kurt MG
Matthias ist der König !
17.02.2009 20:38:00
Kurt
Hallo Matthias,
Super KLASSE.
Lag es tatsächlich an dem Listen - Bereich ?
Hatte auch noch probiert, wenn ich die "Liste u. Liste2" in der gleichen Tabelle
habe, mit Bereich + eine Zelle Leer funktioniert es gerade auch !
Bitte kurze Info,
gruß Kurt MG
ja, nur an den Listen ... viel Erfolg noch .... oT
17.02.2009 20:51:00
Matthias

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige