15.03.2022, 11:14
Hallo Zusammen,
habe in meinem funktionierenden Formular auf Userform-Basis unter anderem comboboxen durch listboxen ersetzen müssen, z.B. wegen der Mehrfachauswahl.
Nun habe ich festgestellt, viele Dinge klappen nicht so wie ich dachte oder gar wie vorher.
z.B. würde ich gerne aus der Auswahl von zwei listboxen eine neue befüllen.
Ausgangspunkt: Die Übernahme von einem Listbox...
Private Sub cmd_Auswählen2_Click()
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then ListBox3.AddItem ListBox1.List(i)
Next i
End Sub
Bekomme die Kombi aus Listbox1 und Listbox2 einfach nicht hin.
Zum anderem würde ich gerne den Inhalt auf Vollständigkeit prüfen.
Bisher habe ich folges (für Comboboxen) genutzt:
Private Sub InhalteCheck()
Dim MsgStr As String
Dim IstSel As Boolean
Dim Lauf As Long
Dim i As Integer
MsgStr = "" 'Für die Ausgabe der Hinweise
IstSel = False 'Ist schon ein Eingabefeld selectiert?
Lauf = 0 'Anzahl der "Fehler"
' Unter Allgemeine Angaben
If ListBox2.Listindex = -1 Then 'Abfrage der einzelnen Felder
Lauf = Lauf + 1 'Zählen der "Fehler"
MsgStr = MsgStr & CStr(Lauf) & ". Bitte Daten besonderer Kategorien auswählen" & vbCrLf ' MgsStr aufbauen
If Not IstSel Then
IstSel = True
ListBox2.SetFocus
End If
End If
If IstSel Then
MsgBox "Es wurden noch " & CStr(Lauf) & " fehlerhafte Eingaben gefunden." & vbCrLf & "Bitte korrigieren:" & vbCrLf & vbCrLf & MsgStr, vbCritical, "ACHTUNG - Fehlende Eingaben"
Else
uebertragen
End If
End Sub
Doch weder Listbox1.listindex noch .listcount funktioniert.
Jetzt war die Überlegung durch zählen der ausgewählten Elemente dies zu kombinieren.
Also,
Private Sub listbox1Zaehlen()
Dim iSelCnt As Integer
Dim ix As Integer
iSelCnt = 0
For ix = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(ix) = True Then iSelCnt = iSelCnt + 1
Next ix
MsgBox "Anzahl selektierte =" & iSelCnt
End Sub
irgendwie da einbauen, und
if listbox1.iSelCnt = 0 Then .... Fehlerzählen
aber das übersteigt dann doch meine Fähigkeiten.
Falls Ihr Ideen und Lösungen habt, gerne mit Erklärung, damit ich es auch nachvollziehen kann und was dazu lerne.
Vielen Dank im Voraus.
habe in meinem funktionierenden Formular auf Userform-Basis unter anderem comboboxen durch listboxen ersetzen müssen, z.B. wegen der Mehrfachauswahl.
Nun habe ich festgestellt, viele Dinge klappen nicht so wie ich dachte oder gar wie vorher.
z.B. würde ich gerne aus der Auswahl von zwei listboxen eine neue befüllen.
Ausgangspunkt: Die Übernahme von einem Listbox...
Private Sub cmd_Auswählen2_Click()
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then ListBox3.AddItem ListBox1.List(i)
Next i
End Sub
Bekomme die Kombi aus Listbox1 und Listbox2 einfach nicht hin.
Zum anderem würde ich gerne den Inhalt auf Vollständigkeit prüfen.
Bisher habe ich folges (für Comboboxen) genutzt:
Private Sub InhalteCheck()
Dim MsgStr As String
Dim IstSel As Boolean
Dim Lauf As Long
Dim i As Integer
MsgStr = "" 'Für die Ausgabe der Hinweise
IstSel = False 'Ist schon ein Eingabefeld selectiert?
Lauf = 0 'Anzahl der "Fehler"
' Unter Allgemeine Angaben
If ListBox2.Listindex = -1 Then 'Abfrage der einzelnen Felder
Lauf = Lauf + 1 'Zählen der "Fehler"
MsgStr = MsgStr & CStr(Lauf) & ". Bitte Daten besonderer Kategorien auswählen" & vbCrLf ' MgsStr aufbauen
If Not IstSel Then
IstSel = True
ListBox2.SetFocus
End If
End If
If IstSel Then
MsgBox "Es wurden noch " & CStr(Lauf) & " fehlerhafte Eingaben gefunden." & vbCrLf & "Bitte korrigieren:" & vbCrLf & vbCrLf & MsgStr, vbCritical, "ACHTUNG - Fehlende Eingaben"
Else
uebertragen
End If
End Sub
Doch weder Listbox1.listindex noch .listcount funktioniert.
Jetzt war die Überlegung durch zählen der ausgewählten Elemente dies zu kombinieren.
Also,
Private Sub listbox1Zaehlen()
Dim iSelCnt As Integer
Dim ix As Integer
iSelCnt = 0
For ix = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(ix) = True Then iSelCnt = iSelCnt + 1
Next ix
MsgBox "Anzahl selektierte =" & iSelCnt
End Sub
irgendwie da einbauen, und
if listbox1.iSelCnt = 0 Then .... Fehlerzählen
aber das übersteigt dann doch meine Fähigkeiten.
Falls Ihr Ideen und Lösungen habt, gerne mit Erklärung, damit ich es auch nachvollziehen kann und was dazu lerne.
Vielen Dank im Voraus.