AW: Datum und Text suchen
26.05.2013 10:44:20
Erich
Hi Chrissi,
da gab es einige Probleme...
Probier mal diesen Code (der Userform):
Option Explicit
Private Sub UserForm_Initialize()
Dim ii As Long
Dim vDat As Date ' warum war das Variant?
Dim sTxt As String
For ii = 1 To 2
Controls("ComboBox" & ii).Clear
Next ii
With ThisWorkbook.Worksheets("Projekt")
.Activate
For ii = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
sTxt = .Cells(ii, 1) & " " & .Cells(ii, 2) & " " & .Cells(ii, 3) & " " & .Cells(ii, 4)
ComboBox2.AddItem sTxt
Next ii
End With
vDat = Date
vDat = vDat - 5
For ii = 1 To 40
vDat = vDat + 1
ComboBox1.AddItem vDat
Next ii
End Sub
Private Sub ComboBox2_Change()
Dim DatSuche As Date
Dim xSuche As String
Dim ii As Long, Endrow As Long
Dim Mldg As String
DatSuche = ComboBox1
xSuche = ComboBox2
With ThisWorkbook.Worksheets("Tagesjournal")
Endrow = .Cells(.Rows.Count, 1).End(xlUp).Row
For ii = 5 To Endrow
If .Cells(ii, 1) = DatSuche And .Cells(ii, 2) = xSuche Then
lblZnr.Caption = .Cells(Endrow, 7)
Exit For
End If
Next ii
If ii > Endrow Then
Beep
Mldg = MsgBox("Tagesbericht nicht vorhanden...", _
vbYes + vbQuestion, "Fehlermeldung Projekt ...", "", 16)
ComboBox2.SetFocus
lblZnr.Caption = ""
GoTo Ende
End If
End With
Ende:
End Sub
Private Sub CommandButton1_Click()
Unload Me
End Sub
Gefunden werden kann bei den vorliegenden Daten nur der Musterbau Musterweg... am 25.05., sonst nichts.
Das liegt daran, dass bei KiKa der Suchbegriff und Listeninhalt verschieden sind:
KiKa Musterring 82178 Puchheim (mit 2 Leerzeichen vor der PLZ) ist der Suchbegriff (aus Combobox, aus "Projekt")
KiKa Brg,- Ertl- Str. 17 82178 Puchheim steht in der Liste ("Tagesjournal").
Wie soll das wiedergefunden werden können? (mal abgesehen von dem Leerzeichen in Projekt!B2)
Noch zwei Hinweise zur Variablendeklaration:
- Wenn es nicht (im Einzelfall) notwendig ist, Variablen (vor den Prozeduren) modulweit zu deklarieren,
solltest du die Variablen innerhalb der Prozeduren deklarieren.
- Wenn du schreibst "Dim sTxt, Mldg As String", dass ist sTxt kein String, sondern ein Variant.
Wenn auch sTxt ein String sein soll, dann musst du schreiben:
Dim sTxt As String, Mldg As String
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich