habe eine Userform als Kalender ich möchte in einem gewissen Bereich
das diese Userform ohne Passwortabfrage startet und einmal mit Passwortabfrage.
Ich habe schon einiges probiert nur leider klappt das ganze einfach
nicht so wie ich es gerne hätte.
In dem Bereich AY13:AQ192 soll er ohne Passwortabfrage erscheinen
und in dem Bereich BA13:BA192 mit Passwortabfrage erscheinen.
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim RaBereich As Range ' Varable Bereich Wirksamkeit
If Intersect(Target, Range("BA13:BA300")) Is Nothing Then Exit Sub
Login.Show
If freigabe = False Then Exit Sub
' von Nepumuk Anzahl der ausgewählten Zellen
If CallByName(Selection, IIf(Val( _
Application.Version) > 11, "CountLarge", "Count"), VbGet) = 1 Then
' Bereich der Wirksamkeit
Set RaBereich = Range("AY13:AY300, BA13:BA300")
' noch mehr Bereiche
'Set RaBereich = Union(Range("C11:AG11 , C13:AG13, C15:AG15 , C17:AG17"), _
Range("C35:AE35, C37:AE37, C43:AG43, C45:AG45 , C47:AG47 , C49:AG49"), _
Range("C67:AF67 , C69:AF69 , C75:AG75 , C77:AG77 , C79:AG79 , C81:AG81"), _
Range("C99:AF99 , C101:AF101, C107:AG107 , C109:AG109 , C111:AG111"), _
Range("C127:AG127 , C129:AG129 , C131:AG131 , C133:AG133 , C139:AF139"), _
Range("C155:AG155, C157:AG157 , C159:AG159 , C161:AG161 , C163:AG163"), _
Range("C179:AF179 , C181:AF181, C187:AG187 , C189:AG189 , C191:AG191"))
'ActiveSheet.Unprotect ("Passwort") ' Schutz der Tabelle aufheben
' prüfen ob Zelle im Bereich, dann Userform starten
If Not Intersect(Target, RaBereich) Is Nothing Then
ActiveSheet.Unprotect Password:="test" ' Schutz auf Tabelle setzen
frm_Kalender.Show
ActiveSheet.Protect Password:="test", DrawingObjects:=False, Contents:=True, Scenarios:= _
True, AllowFiltering:=True ' Schutz auf Tabelle setzen
End If
Set RaBereich = Nothing ' Variable löschen
End If
If Not Intersect(Range("AQ13:AQ192"), Target) Is Nothing Then
Set grngCell = Target
UserForm1.Show
End If
If Not Intersect(Range("BC13:BC192"), Target) Is Nothing Then
Set grngCell = Target
UserForm2.Show
End If
End Sub
habe das hier ausprobiert, und den oberen Teil des Makros durch einen Tipp
wie folgt abgeändert.
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim RaBereich As Range ' Varable Bereich Wirksamkeit
If Intersect(Target, Range("BA13:BA300")) Is Nothing Then Exit Sub
Login.show
if freigabe = false then exit sub
' von Nepumuk Anzahl der ausgewählten Zellen
If CallByName(Selection, IIf(Val( _
Application.Version) > 11, "CountLarge", "Count"), VbGet) = 1 Then
' Bereich der Wirksamkeit
Set RaBereich = Range("AY13:AY300, BA13:BA300")
' noch mehr Bereiche
dann habe ich eine Userform mti dem Namen Login erstellt
und auf dieser userform dann textbox1 + textbox2 + Commandbutton1
erstellt, nun habe ich diesen code in das modul der Userform eingefügt.
Private Sub CommandButton1_Click()
Unload Me
freigabe = CodeCheck(Me.TextBox1, Me.TextBox2)
MsgBox freigabe
End Sub
anschliessend noch in ein normales modul,mit diesem code
Function CodeCheck(strUser, strPWort) As Boolean
CodeCheck = False
If strUser = "" Or strPWort = "" Then
Exit Function
Else
If UCase(strUser) = "TEST" And _
UCase(strPWort) = "PASSWORT" Then CodeCheck = True
End If
End Function
Leider erscheint immer diesselbe Fehlermeldung, gleich in der ersten Zeile
Fehler beim kompilieren: Variable nicht definiert und die erste Zeile
wird gelb markiert.:
vielleicht könnt ihr mir da weiterhelfen.
danke