Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Datum und Text suchen
26.05.2013 06:15:06
chrissi
Hallo,
ich habe anbei eine Datei hochgeladen.
Problem ich möchte nach einem Datum und dem dazugehörigen Projekt suchen.
Wenn es vorhanden ist dann soll eine Ausgabe statt finden.
Danke!
Gruß
Chrissi
https://www.herber.de/bbs/user/85523.xlsm

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum und Text suchen
26.05.2013 09:51:25
Oberschlumpf
Hi
Ein Klick auf den Button verursacht einen Fehler.
Grund: dein Code verweist auf ein Tabellenblatt namens "Muster", welches in deiner Bsp-Datei nicht vorhanden ist
Ach so, dieser Fehler wird gleich in der ersten Codezeile verursacht. Ich weiß also nicht, ob noch weitere Fehler folgen. Is also am Besten, du testet deine Bsp-Datei erst mal, bevor du sie wieder hochlädtst.
Dann wäre es schön, wenn du in der Datei noch mal beschreibst, was du erreichen möchtest. Ich verstehe es noch nicht.
Ciao
Thorsten

AW: Datum und Text suchen
26.05.2013 10:17:30
chrissi
Sorry,
ich habe vergessen, dass beim Upload der Dateiname nicht mehr stimmt.
Beschreibung in Tabelle "Menu"
Danke, Thorsten
Gruß
Chrissi
https://www.herber.de/bbs/user/85524.xlsm

Anzeige
AW: Datum und Text suchen
26.05.2013 10:39:02
Oberschlumpf
Hi Chrissi
Deine Codekorrektur ist zwar richtig, deine Beschreibung als Fehlerursache ist aber falsch :-)
Du hast zwar recht, dass beim Upload die Dateinamen verändert werden. In deinem Fall war aber der Fehler, dass ein im Code angesprochener Blattname nicht vorhanden war.
Namen von Tabellenblättern werden beim Upload nicht verändert.
Hier nun meine Idee:
https://www.herber.de/bbs/user/85525.xlsm
Nach Klick auf den Button erscheint das Userform(ular).
Nach Auswahl von Datum + Projekt, z Bsp 25.05,2013 + Musterbau... erscheint der Hinweis "Tagesbericht vorhanden", und das Labelobjekt erhält den Wert aus Spalte G, Trefferzeile aus dem Blatt "Tagesjournal".
Bei nur 2 Bsp-Datensätzen ist das auch der einzige Treffer.
Is das so ok?
Ciao
Thorsten

Anzeige
AW: Datum und Text suchen
26.05.2013 10:44:04
chrissi
Danke, Thorsten, das war es was ich gesucht habe.
Gruß
Chissi

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

Anzeige
Kleine Korrektur
26.05.2013 10:52:12
Erich
Hi,
in der Change-Prozedur hatte ich zum Testen die Schleife verändert - und nicht wieder zurückgestellt. :-(
Statt
For ii = 5 To Endrow
muss da natürlich stehen:
For ii = 2 To Endrow
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

AW: Kleine Korrektur
27.05.2013 04:34:07
chrissi
Hallo Erich,
Danke für Deine Hilfe.
Leider sind da immer noch kleine Fehler drin.
Wenn das Projekt vorhanden ist, dann wird mir nicht die richtige
Zeilen Nummer angegeben sondern immer die letzte Zeile der Spalte "G".
Das mit den falsch deklarierten Suchbegriffen stammt daher, dass meine Original- Datei der Aufbau
anders ist hier, kann der Fehler nicht passieren. Den die Daten werden wie in Cbo beschrieben eingesetzt.
Danke, dass Du mich auf meine Fehler bei der Variablendeklaration hingewiesen hast. Habe ich mir einfach so angewohnt, werde dies nun ändern.
Gruß
Chrissi

Anzeige
noch eine Korrektur
01.06.2013 14:25:35
Erich
Hi Chrissi,
"Wenn das Projekt vorhanden ist, dann wird mir nicht die richtige Zeilen Nummer angegeben,
sondern immer die letzte Zeile der Spalte G."
Ja - sorry - da stand lblZnr.Caption = .Cells(Endrow, 7) statt lblZnr.Caption = .Cells(ii, 7)
Hier noch mal der ganze Code - jetzt hoffentlich ok:

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 - 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 = 3 To Endrow
If .Cells(ii, 1) = DatSuche And .Cells(ii, 2) = xSuche Then
lblZnr.Caption = .Cells(ii, 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
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich und: schönes Rest-Wochenende!
Anzeige

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige