Guten Tag!"
Ich habe ein grundsätzliches Problem mit einer ComboBox.
Aus ihr starte ich das Öffnen einer Datei zum Auslesen der Daten.
Mein Problem ist, dass die Combobox verschwindet und neu gestartet werden muss.
Private Sub cbo_Lehrgangsauswahl_Change()
Dim wbLehrgaenge As Workbook
Dim wsL As Worksheet
Dim wsS As Worksheet
Dim letzteZeile As Long, i As Long
Dim suchwert As String
Dim startdatum As String, enddatum As String
Dim anzahl As Long
suchwert = Me.cbo_Lehrgangsauswahl.Value
If suchwert = "" Then Exit Sub
' Datei öffnen, falls geschlossen
Set wbLehrgaenge = Nothing
On Error Resume Next
Set wbLehrgaenge = Workbooks("Lehrgänge.xlsm")
On Error GoTo 0
If wbLehrgaenge Is Nothing Then
Set wbLehrgaenge = OeffneDateiWennNichtGeoeffnet("Lehrgänge.xlsm")
If wbLehrgaenge Is Nothing Then Exit Sub
End If
Set wsL = wbLehrgaenge.Sheets("Lehrgänge")
letzteZeile = wsL.Cells(wsL.Rows.Count, "F").End(xlUp).Row
' Datumssuche
For i = 4 To letzteZeile
If wsL.Cells(i, 6).Value = suchwert Then
startdatum = Format(wsL.Cells(i, 3).Value, "dd.mm.yyyy")
enddatum = Format(wsL.Cells(i, 4).Value, "dd.mm.yyyy")
Me.txtDatumLehrgangAnzeigen.Value = startdatum & " - " & enddatum
Exit For
End If
Next i
' Teilnehmer zählen (im Blatt "Schüler")
Set wsS = ThisWorkbook.Sheets("Schüler")
anzahl = 0
If Left(Me.cbo_AuswahlLehrgangsart.Value, 3) = "RSG" Or Left(Me.cbo_AuswahlLehrgangsart.Value, 4) = "RS-G" Then
For i = 3 To 1000
If wsS.Cells(i, 12).Value = suchwert Then anzahl = anzahl + 1
Next i
ElseIf Left(Me.cbo_AuswahlLehrgangsart.Value, 3) = "RSP" Or Left(Me.cbo_AuswahlLehrgangsart.Value, 4) = "RS-P" Then
For i = 3 To 1000
If wsS.Cells(i, 27).Value = suchwert Then anzahl = anzahl + 1
If wsS.Cells(i, 42).Value = suchwert Then anzahl = anzahl + 1
Next i
End If
' Ergebnis anzeigen
Me.txtAngemeldeteTN.Value = anzahl
' Warnfarbe bei >12
If anzahl > 12 Then
With Me.txtAngemeldeteTN
.BackColor = RGB(255, 150, 150)
End With
Application.Wait Now + TimeValue("00:00:05")
Me.txtAngemeldeteTN.BackColor = vbWhite
End If
' Datei schließen
On Error Resume Next
Set wbLehrgaenge = Workbooks("Lehrgänge.xlsm")
If Not wbLehrgaenge Is Nothing Then wbLehrgaenge.Close SaveChanges:=False
On Error GoTo 0
End Sub
|