Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1324to1328
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

User form einfügen mit klick auf zelle mit passwor

User form einfügen mit klick auf zelle mit passwor
06.08.2013 08:10:26
mikey
Hallo,
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

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

Betreff
Datum
Anwender
Anzeige
AW: User form einfügen mit klick auf zelle mit passwor
06.08.2013 09:27:07
Rudi
Hallo,
Fehler beim kompilieren: Variable nicht definiert und die erste Zeile
wird gelb markiert.:

ist doch eindeutig. Definiere die Variable.
Gruß
Rudi

AW: User form einfügen mit klick auf zelle mit passwor
06.08.2013 09:36:26
hary
Moin
Hab das nicht nachgebaut.
Code in den Code der Tabelle:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("AY13:AQ192")) Is Nothing Then
UserForm2.Show 'Kalender Formular
End If
If Not Intersect(Target, Range(" BA13:BA192")) Is Nothing Then
UserForm1.Show 'Login Formular
End If
End Sub

Code in den Code des Login Formulars:
Option Explicit
Private Sub CommandButton1_Click()
If CodeCheck(Me.TextBox1, Me.TextBox2) Then 'wenn CodeCheck wahr dann
MsgBox "Freigabe"
Unload Me
UserForm2.Show 'Ersatz fuer Kalender
'hier KalenderForm.show
Else   'wenn falsch dann
MsgBox "keine Freigabe"
TextBox1 = ""
TextBox2 = ""
End If
End Sub
Private 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

gruss hary

Anzeige
AW: User form einfügen mit klick auf zelle mit passwor
06.08.2013 15:29:29
mikey
Hi
Habe den neuen code von dier ausprobiert harry, leider immer noch derselbe fehler.
wie definiere ich eigentlich eine Variable.
lg

AW: User form einfügen mit klick auf zelle mit passwor
06.08.2013 18:22:34
mikey
Hallo
danke jetzt startet der Kalender so wie er es soll einmal mit passwortabfrage einmal ohne.
Jetzt habe ich nur das Problem das sich die anderen Userformen die ich erstellt habe und bei denen
du mir geholfen hast sich nicht mehr starten lassen.
Das habe ich jetzt in Tabelle eingetragen.:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("AY13:AQ192")) Is Nothing Then
frm_Kalender.Show 'Kalender Formular
End If
If Not Intersect(Target, Range(" BA13:BA192")) Is Nothing Then
Login.Show 'Login Formular
End If
If Not Intersect(Range("AQ13:AQ192"), Target) Is Nothing Then
Set grngCell = Target
UserForm1.Show `Namensliste 1`
End If
If Not Intersect(Range("BC13:BC192"), Target) Is Nothing Then
Set grngCell = Target
UserForm2.Show 'Namensliste 2'
End If
End Sub

Das beim Formular.: Login
Option Explicit
Private Sub CommandButton1_Click()
If CodeCheck(Me.TextBox1, Me.TextBox2) Then 'wenn CodeCheck wahr dann
MsgBox "Freigabe"
Unload Me
frm_Kalender.Show 'Ersatz fuer Kalender
'hier KalenderForm.show
Else   'wenn falsch dann
MsgBox "Keine Freigabe"
TextBox1 = ""
TextBox2 = ""
End If
End Sub


Private 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

Das bei Userform 1 ( Namensliste )
Option Explicit
Private Sub Label1_Click()
End Sub

Private Sub Label3_Click()
End Sub

Private Sub ListBox1_Click()
End Sub

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
ActiveSheet.Unprotect Password:="test" '

und das bei Userform 2 ( Namensliste 2 )
Option Explicit
Private Sub Label1_Click()
End Sub

Private Sub Label3_Click()
End Sub

Private Sub ListBox2_Click()
End Sub

Private Sub ListBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
ActiveSheet.Unprotect Password:="test" '

Vielleicht kannst du mir erklären warum sich die namenlisten mit dem klick auf die zellen nicht mehr
öffnen wie vorher.
Habe den Code in der Tabelle verändert und die neueren Teile nach unten verschoben jetzt funktioniert
es.
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
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
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("AY13:AQ192")) Is Nothing Then
frm_Kalender.Show 'Kalender Formular
End If
If Not Intersect(Target, Range(" BA13:BA192")) Is Nothing Then
Login.Show 'Login Formular
End If
End Sub

danke für deine Hilfe. Jetzt funktioniert es einwandfrei.

Anzeige
AW: User form einfügen mit klick auf zelle mit passwor
06.08.2013 18:44:20
hary
Moin
Wenn's jetzt funzt is es ja gut.
Evtl. Lag das Problem hier:
If Target.Count > 1 Then Exit Sub

Diese Zeile stand ja ganz oben im Code.
Diese Zeile laesst nur eine markierte Zelle zu, wenn mehr als 1 Zelle markiert dann wird der Code beendet.
gruss hary

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige