Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
620to624
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
620to624
620to624
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Probleme mit Sheet().unprotect in VBA

Probleme mit Sheet().unprotect in VBA
08.06.2005 10:55:36
Jochen
Hallo,
nachdem ich hier schon viele nützliche Informationen gefunden habe, hoffe ich jemand kann mir auch bei meinem problem weiterhelfen.
Folgendes:
Ich habe ein Dokument, welches per VBA-Skript in abhängigkeit von einem Faktor in bestimmten Zellen die Bedingte formatierung löschen/erstellen soll.
Dies geht auch hervorragend. Problem ist nun aber, dass ich gerne die Zellen Schützen würde und nur die Zellen während des einsatzes vom VBA-Skript ungeschützt lassen würde.
Hierfür müssten theoretisch die Aufrufe:
Activesheet.unprotect passwort:="passwort"
und
Activesheet.protect passwort:="passwort"
reichen.
In meinem Aufruf funktioniert der 'protect'-befehl einwandfrei, innerhalb des vba-codes geht allerdings der 'unprotect'befehl nicht
Mach ich einen eigenständigen Button mit dem 'Unprotect'-Befehl geht das ganze auch wunderbar.
Nun zur Frage:
Sieht jemand im angehängten Code den Fehler?

Sub on_change_phase()
Dim val1 As Integer
Dim selrange As String
Dim comprange As String
Dim helpvar As String
'unprotect the worksheet for the macro DON'T USE THE PASSWORD FOR EDITING THE FILE
Sheets("WP Report").Activate                'dies scheint nicht zu funktionieren ...
ActiveSheet.Unprotect password:="dontuse"   ' Warum?
'Sheets("WP Report").Unprotect password:="dontuse"
'ActiveSheet.Unprotect password:="dontuse"
val1 = Range("AX64").Value + 62
'reading the value of the dropdown-menue
helpvar = CStr(val1)
'helpvar = Integer to String (val1)
selrange = Range("AY" + helpvar).Value
'reading in the range of the cells which should be formated
comprange = Range("AZ64").Value
'reading in the complete range of all cells (for deleting the FormatConditions)
Call Phase(selrange, comprange)
ActiveSheet.Protect password:="dontuse"
End Sub


Function Phase(selrange, comprange)
Dim countdel As Integer
Dim count_i As Integer
Dim area As String
Dim helpvar2 As String
'unprotect the worksheet
'ActiveSheet.Unprotect password:="dontuse"
'next 2 lines: delete the FormatConditions (from previous use of the file)
Range(comprange).Select
Selection.FormatConditions.Delete
'next 10 lines: make new FormatConditions (only for selected cells/phases)
Range(selrange).Select
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _
Formula1:="=""-"""
Selection.FormatConditions(1).Interior.Pattern = xlNone
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreaterEqual _
, Formula1:="0,95"
Selection.FormatConditions(2).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _
Formula1:="0", Formula2:="0,949"
Selection.FormatConditions(3).Font.ColorIndex = 2
Selection.FormatConditions(3).Interior.ColorIndex = 3
'next 10 lines: delete the format (colour) of the gaps between the Phases which where formated before
counter_i = 0
countdel = Range("BB63").Value
Do
helpvar2 = CStr((63 + counter_i))
area = Range("BA" + helpvar2).Value
Range(area).Select
Selection.FormatConditions.Delete
counter_i = counter_i + 1
Loop Until counter_i = (countdel)
'protect the worksheet
'ActiveSheet.Protect Password:="dontuse"
End Function

Danke für die Antworten
Jochen

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Probleme mit Sheet().unprotect in VBA
08.06.2005 11:19:13
Thomas
Gleiches Problem habe ich auch schon ewig
Bin auch über jede Antwort dankbar!!
Thomas
AW: Probleme mit Sheet().unprotect in VBA
08.06.2005 11:21:01
Hajo_Zi
Hallo Jochen,
hast Du den Code schon mal im Einzelschritt laufen lassen. Ich vermute der Code wird abgebrochen und damit wird die Zeile ActiveSheet.Protect password:="dontuse"
nicht abgearbeitet.
Im Forum sollte man keine Passwörter posten.
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem Windows 2000 SP4 und Excel Version 2000 SP3.


Anzeige
AW: Probleme mit Sheet().unprotect in VBA
08.06.2005 11:42:39
Jochen
So, danke für die Schnelle Antwort.
zum passowrt: das ist recht egal hier, da das nicht das passwort ist welches ich nutze (aber danke trotzdem, sicher ist sicher)
Der Code läuft komplett durch und sagt nix von wegen fehler. Das sehe ich daran, dass wenn ich vom ganzen Blatt den schutz entferne ist nach demj click des buttons der schutz wieder drauf und dieser befehl wird als letzter Befehl auzsgeführt.
Bisher kann ich mir nur noch denklen, dass irgendwas mit dem Activvesheet nicht stimmt . Ist dieser vielleicht nicht aktiv?
AW: Probleme mit Sheet().unprotect in VBA
08.06.2005 11:49:26
Jochen
oh man ich hab die Lösung gerade gefunden.
Ich wusste nicht wie genau der vba gehandelt wird (wann er ausgeführt wird) und hab wohl auch nicht wirklich nachgedacht.
Das Problem war:
Ich hab nen Kombinationsfeld zum auswählen genommen und darauf das Makro gelegt. Natürlich hab ich vergessen, dass die Zelle, wo der Wert des Combinationsfeld geschreiben werden soll NICHT GESPERRT sein darf. Demnach war der fehler, dass ich mein Kombinationsfeld nicht ändern konnte, der Code ist wohl richtig durchgelaufen.
Vielen Dank an alle die sich über mein Problem den Kopf zerbrochen haben.
Gruß
Jochen
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige