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

ComboBox mit Passworteingabe

ComboBox mit Passworteingabe
03.05.2021 11:26:52
Marc
Hallo zusammen,
vielleicht kann mir jemand weiterhelfen. Ich hab zwar einige Beiträge gefunden die meiner Anfrage ähneln, aber so richtig geholfen hat mir das nicht ;-(
Ich möchte in meinem UserForm eine ComboBox mit einer Passwortabfrage versehen um einen Wert auswählen zu können.
Die ComboBox hat 2 Auswahlmöglichkeiten "Erteilt" und "Nicht erteilt"
"Nicht erteilt" soll immer voreingestellt sein, erst wenn der Wert "Erteilt" ausgewählt wird, soll die Passwortabfrage erfolgen.
Ist das so möglich?
Freue mich sehr über eure Hilfe.
Viele Grüße
Marc

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ComboBox mit Passworteingabe
03.05.2021 11:35:31
Nepumuk
Hallo Marc,
so z.B.:
Code:

[Cc]

Option Explicit Private Sub ComboBox1_Change() If ComboBox1.ListIndex = 1 Then _ If InputBox("Kennwort eingeben.", "Eingabe") <> "GEHEIM" Then ComboBox1.ListIndex = 0 End Sub Private Sub UserForm_Initialize() ComboBox1.List = Array("Nicht erteilt", "Erteilt") ComboBox1.ListIndex = 0 End Sub

Gruß
Nepumuk
Anzeige
AW: ComboBox mit Passworteingabe
03.05.2021 11:38:52
Rudi
Hallo,
ich würde hier mit OptionButtons arbeiten.
Ansonsten:

Private Sub ComboBox1_Change()
If ComboBox1 = "erteilt" Then
If Application.InputBox("PW:")  "test" Then
ComboBox1 = "nicht erteilt"
End If
End If
End Sub
Gruß
Rudi
AW: ComboBox mit Passworteingabe
04.05.2021 07:21:18
Marc
Hallo Nepumuk und hallo Rudi,
super, beide Codes haben einwandfrei funktioniert. Vielen Dank schon mal dafür.
Leider hat sich nun ein neues Problem aufgetan welches ich zuvor nicht bedacht hatte :-(
Da meine Eingabemaske auch über eine Listbox verfügt, gibt es in dieser auch Einträge die den Status "Erteilt" beinhalten.
Somit erscheint die Passwortabfrage bei jedem öffnen der Eingabemaske.
Gibt es eine Möglichkeit dies zu umgehen? Und wie kann ich es mit den OptionButtons umsetzen?
Danke im Voraus für eure Hilfe.
Viele Grüße
Marc
Anzeige
AW: ComboBox mit Passworteingabe
04.05.2021 09:14:20
Nepumuk
Hallo Marc,
lade eine Mustermappe hoch in der das auftritt.
Gruß
Nepumuk
AW: ComboBox mit Passworteingabe
04.05.2021 11:32:58
Nepumuk
Hallo Marc,
und das VBA-Kennwort ist?
Gruß
Nepumuk
AW: ComboBox mit Passworteingabe
04.05.2021 12:35:43
Nepumuk
Hallo Marc,
teste mal:
Code:

[Cc][+][-]

Option Explicit Option Compare Text Private mblnNoEvent As Boolean Private Sub ComboBox1_Change() TextBox5.Value = ComboBox1.Value End Sub Private Sub ComboBox10_Change() If Not mblnNoEvent Then If ComboBox10 = "erteilt" Then If Application.InputBox("Bitte Freigabecode eingeben:") <> "" Then ComboBox10 = "nicht erteilt" End If End If End If End Sub ' Neuer Eintrag Schaltfläche Ereignisroutine Private Sub CommandButton1_Click() Dim lZeile As Long lZeile = 2 ' Start in Zeile 2, Do While Trim(CStr(Tabelle12.Cells(lZeile, 1).Value)) <> "" lZeile = lZeile + 1 ' Nächste Zeile bearbeiten Loop Tabelle12.Cells(lZeile, 1) = CStr("Daten eintragen") ListBox1.AddItem CStr("Daten eintragen") ListBox1.ListIndex = ListBox1.ListCount - 1 If TextBox6.Value <> "Erledigt" Then CommandButton1.Visible = False Else CommandButton3.Visible = True End If End Sub ' Löschen Schaltfläche Ereignisroutine Private Sub CommandButton2_Click() Dim lZeile As Long If ListBox1.ListIndex = -1 Then Exit Sub Do Until IsEmpty(Tabelle12.Cells(lZeile, 1).Value) If ListBox1.Text = Trim(CStr(Tabelle12.Cells(lZeile, 1).Value)) Then Tabelle12.Rows(CStr(lZeile & ":" & lZeile)).Delete Call UserForm_Initialize If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0 Exit Do End If lZeile = lZeile + 1 ' Nächste Zeile bearbeiten Loop End Sub ' Speichern Schaltfläche Ereignisroutine Private Sub CommandButton3_Click() Dim lZeile As Long If ListBox1.ListIndex = -1 Then Exit Sub lZeile = 2 Do While Trim(CStr(Tabelle12.Cells(lZeile, 1).Value)) <> "" ' Datensatz ID Spalte mit selektiertem Eintrag der ListBox vergleichen If ListBox1.Text = Trim(CStr(Tabelle12.Cells(lZeile, 1).Value)) Then ' Eintrag gefunden, TextBoxen in die Zellen schreiben Tabelle12.Cells(lZeile, 1).Value = Trim(CStr(TextBox1.Text)) Tabelle12.Cells(lZeile, 7).Value = TextBox3.Text Tabelle12.Cells(lZeile, 6).Value = TextBox4.Text Tabelle12.Cells(lZeile, 5).Value = TextBox5.Text Tabelle12.Cells(lZeile, 15).Value = TextBox7.Text Tabelle12.Cells(lZeile, 8).Value = TextBox8.Text Tabelle12.Cells(lZeile, 9).Value = TextBox9.Text Tabelle12.Cells(lZeile, 10).Value = TextBox10.Text Tabelle12.Cells(lZeile, 12).Value = TextBox11.Text Tabelle12.Cells(lZeile, 13).Value = TextBox12.Text Tabelle12.Cells(lZeile, 26).Value = TextBox13.Text Tabelle12.Cells(lZeile, 20).Value = TextBox14.Text Tabelle12.Cells(lZeile, 16).Value = TextBox15.Text Tabelle12.Cells(lZeile, 11).Value = TextBox16.Text ' Eintrag gefunden, ComboBoxen in die Zellen schreiben Tabelle12.Cells(lZeile, 5).Value = ComboBox1.Text Tabelle12.Cells(lZeile, 3).Value = ComboBox2.Text Tabelle12.Cells(lZeile, 14).Value = ComboBox3.Text Tabelle12.Cells(lZeile, 21).Value = ComboBox4.Text Tabelle12.Cells(lZeile, 17).Value = ComboBox5.Text Tabelle12.Cells(lZeile, 18).Value = ComboBox6.Text Tabelle12.Cells(lZeile, 19).Value = ComboBox7.Text Tabelle12.Cells(lZeile, 22).Value = ComboBox8.Text Tabelle12.Cells(lZeile, 24).Value = ComboBox9.Text mblnNoEvent = True Tabelle12.Cells(lZeile, 25).Value = ComboBox10.Text mblnNoEvent = False Tabelle12.Cells(lZeile, 23).Value = ComboBox12.Text If ListBox1.Text <> Trim(CStr(TextBox1.Text)) Then Call UserForm_Initialize If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0 End If Exit Do ' Vorzeitiges Ende, da der Datensatz schon gefunden ist End If lZeile = lZeile + 1 ' Nächste Zeile bearbeiten Loop Unload Me ' Application.Wait (Now + TimeValue("0:00:01")) MsgBox "Die Eingaben wurden erfolgreich gepeichert" ' Application.Wait (Now + TimeValue("0:00:01")) ' Call formfuellen_Daten End Sub ' Beenden Schaltfläche Ereignisroutine Private Sub CommandButton4_Click() Unload Me End Sub Private Sub Label7_Click() End Sub ' Klick auf die ListBox Ereignisroutine Private Sub ListBox1_Click() Dim lZeile As Long TextBox1 = "" TextBox2 = "" TextBox3 = "" TextBox4 = "" TextBox5 = "" ' Nur wenn ein Eintrag selektiert/markiert ist If ListBox1.ListIndex >= 0 Then lZeile = 2 Do While Trim(CStr(Tabelle12.Cells(lZeile, 1).Value)) <> "" If ListBox1.Text = Trim(CStr(Tabelle12.Cells(lZeile, 1).Value)) Then ' TextBoxen füllen TextBox1 = Trim(CStr(Tabelle12.Cells(lZeile, 1).Value)) TextBox2 = Tabelle12.Cells(lZeile, 4).Value TextBox3 = Tabelle12.Cells(lZeile, 7).Value TextBox4 = Tabelle12.Cells(lZeile, 6).Value TextBox5 = Tabelle12.Cells(lZeile, 5).Value TextBox6 = Tabelle12.Cells(lZeile, 2).Value TextBox7 = Tabelle12.Cells(lZeile, 15).Value TextBox8 = Tabelle12.Cells(lZeile, 8).Value TextBox9 = Tabelle12.Cells(lZeile, 9).Value TextBox10 = Tabelle12.Cells(lZeile, 10).Value TextBox11 = Tabelle12.Cells(lZeile, 12).Value TextBox12 = Tabelle12.Cells(lZeile, 13).Value TextBox13 = Tabelle12.Cells(lZeile, 26).Value TextBox14 = Tabelle12.Cells(lZeile, 20).Value TextBox15 = Tabelle12.Cells(lZeile, 16).Value TextBox16 = Tabelle12.Cells(lZeile, 11).Value ' ComboBoxen füllen ComboBox1 = Tabelle12.Cells(lZeile, 5).Value ComboBox2 = Tabelle12.Cells(lZeile, 3).Value ComboBox3 = Tabelle12.Cells(lZeile, 14).Value ComboBox4 = Tabelle12.Cells(lZeile, 21).Value ComboBox5 = Tabelle12.Cells(lZeile, 17).Value ComboBox6 = Tabelle12.Cells(lZeile, 18).Value ComboBox7 = Tabelle12.Cells(lZeile, 19).Value ComboBox8 = Tabelle12.Cells(lZeile, 22).Value ComboBox9 = Tabelle12.Cells(lZeile, 24).Value mblnNoEvent = True ComboBox10 = Tabelle12.Cells(lZeile, 25).Value mblnNoEvent = False ComboBox12 = Tabelle12.Cells(lZeile, 23).Value Exit Do End If lZeile = lZeile + 1 ' Nächste Zeile bearbeiten Loop End If End Sub Private Sub TextBox6_Change() ' Sichtbarkeit "Status"Button Select Case TextBox6.Text Case "Risikoanalyse" Image1.Visible = True Case Else Image1.Visible = False End Select ' Sichtbarkeit "speichern"Button If TextBox6.Value <> "Erledigt" Then CommandButton3.Visible = True Else: CommandButton3.Visible = False End If End Sub Private Sub UserForm_Activate() If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0 ' ComboBoxen füllen ComboBox1.RowSource = "Module!A2:A15" ComboBox2.RowSource = "Module!C2:C21" ComboBox3.RowSource = "Module!E2:E3" ComboBox4.RowSource = "Module!E2:E3" ComboBox5.RowSource = "Module!E2:E3" ComboBox6.RowSource = "Module!D2:D3" ComboBox7.RowSource = "Module!E2:E3" ComboBox8.RowSource = "Module!E2:E3" ComboBox9.RowSource = "Module!D2:D3" ComboBox10.RowSource = "Module!G2:G3" ComboBox12.RowSource = "Module!E2:E3" End Sub Private Sub UserForm_Initialize() Dim lZeile As Long TextBox1 = "" TextBox2 = "" TextBox3 = "" TextBox4 = "" TextBox5 = "" ListBox1.Clear lZeile = 2 Do While Trim(CStr(Tabelle12.Cells(lZeile, 1).Value)) <> "" ListBox1.AddItem Trim(CStr(Tabelle12.Cells(lZeile, 1).Value)) lZeile = lZeile + 1 ' Nächste Zeile bearbeiten Loop End Sub

Gruß
Nepumuk
Anzeige
AW: ComboBox mit Passworteingabe
05.05.2021 07:16:47
Marc
Hallo Nepumuk,
sorry für die verspätete Antwort, aber gestern ist mir leider die Zeit davongelaufen.
Es funktioniert einwandfrei, sehr elegant gelöst – Dankeschön…
Ich möchte nicht unverschämt sein, aber ich habe noch ein anderes Problem, an dem ich schon eine Weile rumdoktere. Und zwar gibt es in meiner Tabelle ein Blatt mit dem Namen „Verteiler“, von diesem möchte ich gerne die Mail-Adressen aus einer 2-spaltigen Tabelle auslesen und in ein Makro für Mailversand einfügen.
Eine Beispieldatei ist anbei: https://www.herber.de/bbs/user/145999.xlsm
Ist das machbar? Könntest du mir hier auch helfen?
Das wäre super.
Viele Grüße
Marcus
Anzeige
AW: ComboBox mit Passworteingabe
05.05.2021 07:17:16
Marc
Hallo Nepumuk,
sorry für die verspätete Antwort, aber gestern ist mir leider die Zeit davongelaufen.
Es funktioniert einwandfrei, sehr elegant gelöst – Dankeschön…
Ich möchte nicht unverschämt sein, aber ich habe noch ein anderes Problem, an dem ich schon eine Weile rumdoktere. Und zwar gibt es in meiner Tabelle ein Blatt mit dem Namen „Verteiler“, von diesem möchte ich gerne die Mail-Adressen aus einer 2-spaltigen Tabelle auslesen und in ein Makro für Mailversand einfügen.
Eine Beispieldatei ist anbei: https://www.herber.de/bbs/user/145999.xlsm
Ist das machbar? Könntest du mir hier auch helfen?
Das wäre super.
Viele Grüße
Marc
Anzeige
AW: ComboBox mit Passworteingabe
06.05.2021 07:15:55
Marc
Hallo Nepumuk,
hab mich selbst mal dran gemacht und eine funktionierende Lösung gefunden, kannst du aber bitte mal schauen ob man das so machen kann, bzw. ob das so professionell ist?

'hier die Variable
Dim AdrSammler1, AdrSammler2 As String, Adr As Range
'Zellinhalte sammeln für Empfänger to:
For Each Adr In Worksheets("Verteiler").Range("A2:A20")
If Not IsEmpty(Adr) Then
AdrSammler1 = AdrSammler1 & Adr.Text & ";"
End If
Next Adr
AdrSammler1 = Left(AdrSammler1, Len(AdrSammler1) - 1)
'Zellinhalte sammeln für Empfänger cc:
For Each Adr In Worksheets("Verteiler").Range("B2:B20")
If Not IsEmpty(Adr) Then
AdrSammler2 = AdrSammler2 & Adr.Text & ";"
End If
Next Adr
AdrSammler2 = Left(AdrSammler2, Len(AdrSammler2) - 1)
.To = AdrSammler1
.CC = AdrSammler2
Viele Grüße
Marc
Anzeige
AW: ComboBox mit Passworteingabe
06.05.2021 08:19:32
Nepumuk
Hallo Marc,
ist so in Ordnung, nur bei der Deklaration der Variablen gehst du von einer falschen Annahme aus.
So:
Dim AdrSammler1, AdrSammler2 As String
ist nur AdrSammler2 als String deklariert, AdrSammler1, da kein Variablentyp zugewiesen, als Variant.
In allen Programmiersprachen die mir bekannt sind musst du das so machen:
Dim AdrSammler1 As String, AdrSammler2 As String
Gruß
Nepumuk
AW: ComboBox mit Passworteingabe
06.05.2021 08:42:54
Marc
Hallo Nepumuk,
Dankeschön für den Hinweis, seltsamerweise funktioniert es dennoch fehlerfrei :-)
Hast Du noch einen Tipp für mich wie ich eine Versionsnummer in einer Zelle für jede Zeile erstellen kann?
Bsp.: in Zelle A2 trage ich ein Datum ein, dabei wird in Zelle B2 die Versionsnummer 1 generiert
ändere ich aber einen Tag oder Woche später das Datum soll dann automatisch eine neue Version 2 generiert werden.
Ist das per Makro oder Formel durchführbar?
Danke für Deine Antwort.
Viele Grüße
Marc
Anzeige
AW: ComboBox mit Passworteingabe
06.05.2021 08:55:07
Nepumuk
Hallo Marc,
erstell für neue Frage einen neuen Thread.
Gruß
Nepumuk

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige