Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Userform Problem

Forumthread: Userform Problem

Userform Problem
19.03.2025 11:19:07
Herbert Grom
Hi,

bitte schaut euch mein Problem mal an. Es ist in der Datei beschrieben. Vielen Dank.

https://www.herber.de/bbs/user/176335.xlsm

Servus
Anzeige

31
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform Problem
19.03.2025 11:30:18
Onur
Damit verlangst du, dass Jeder sich erstmal die Datei herunterlädt, damit er überhaupt weiss, was du überhaupt willst !
AW: Userform Problem
19.03.2025 11:52:29
Alwin Weisangler
Hallo,

eine Möglichkleit wäre so:


Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim lCheckIn&, i&, j&, rng As Range, tmp$
Application.EnableEvents = False
If TextBox1.Value = "" Then Exit Sub
Set rng = Tab2.UsedRange
If Not IsDate(TextBox1.Value) Then
MsgBox "Bitte nur ein gültiges Datum eingeben!", vbCritical, "!"
TextBox1.Value = ""
Exit Sub
End If

lCheckIn = CDate(TextBox1.Value)

If lCheckIn Date Then
MsgBox "Bitte kein Datum aus der Vergangenheit eingeben!", vbCritical, "!"
TextBox1.Value = ""
TextBox1.SetFocus
Exit Sub
End If

With rng
For i = 2 To rng.Rows.Count
For j = 2 To rng.Columns.Count - 1
tmp = tmp & rng.Cells(i, j) & "###"
Next j
Next i
End With
j = 0
For i = 1 To 7
If InStr(1, tmp, i) = 0 Then
j = j + 1
Controls("pp" & j) = i
End If
Next i
End Sub


Gruß Uwe
Anzeige
AW: Userform Problem
19.03.2025 12:01:39
{Boris}
Hi Herbert,

ich würde das Datum in eine Zelle im Blatt Übersicht schreiben - z.B. in F1:

With Sheets("Übersicht")

.Range("F1") = lCheckIn


...und in G1 die nicht auswählbaren Nummern erzeugen mit

=FILTER(C2:C8;D2:D8>F1)

Das FILTER-Ergebnis kannst Du dann im weiteren Codeverlauf als Abfrage nutzen.

VG, Boris
Anzeige
AW: Userform Problem
19.03.2025 12:30:42
Herbert Grom
Hi Boris,

vielen Dank, das teste ich mal.

Servus
AW: Userform Problem
19.03.2025 12:00:55
Herbert Grom
Hallo Uwe,

vielen Dank, das funzt schon mal, nur die "1" müsste noch mit rein, da das Datum ja "gleich" dem Suchdatum ist.

Servus
AW: Userform Problem
19.03.2025 13:13:37
Herbert Grom
Hallo Uwe,

ich habs jetzt mit deinem Code, den ich ein wenig abgewandelt habe (s. u.), hinbekommen. Vielen Dank.

   With rng

For i = 2 To rng.Rows.Count
For j = 2 To rng.Columns.Count - 1
If rng.Cells(i, 4) > lCheckIn Then
tmp = tmp & rng.Cells(i, 2) & "###"
End If
Next j
Next i
End With


Servus
Anzeige
AW: Userform Problem
20.03.2025 10:22:11
Herbert Grom
Hi Uwe,

jetzt hat sich ein weiteres Problem ergeben, nämlich wenn ich zweistellige NRn habe (s. Bild, Spalte B).

Userbild

Wenn ich, wie hier in Spalte B, z. B. die Nr 22 vergeben habe, ignoriert er mir die Nr 2, denn mit InStr findet er ja die 2 ab Pos 17. Hast du da evtl. eine Idee, wie man hier die zweistelligen Zahlen berücksichtigen kann? Die Zeile "For i = 1 To 7" habe ich natürlich auch geändert.

Servus
Anzeige
AW: Userform Problem
20.03.2025 10:32:47
Herbert Grom
Hi Uwe,

ich habs noch gefunden! Ich mache einfach davor und dahinter die Abfrage auf das "#" (s. u.), dann klappts auch mit der 2.

If InStr(1, tmp, "#" & i & "#") = 0 Then


Servus
AW: Userform Problem
20.03.2025 11:03:55
Alwin Weisangler
Hallo Herbert,

Genau, damit wird die korrekte Zahl erkannt. Das ist eben bei Teilstringabfrage so der beste Weg.

Gruß Uwe
Anzeige
AW: Userform Problem
19.03.2025 12:09:52
Alwin Weisangler
dann diesen Teil so:


If rng.Cells(i, 1) > CDate(TextBox1) And rng.Cells(i, 4) > TextBox1 Then
tmp = tmp & rng.Cells(i, j) & "###"
End If


Gruß Uwe
AW: Userform Problem
19.03.2025 12:29:11
Herbert Grom
Funzt so leider noch nicht. So zeigt er mit nur die "6" an.

Dieser Teil "rng.Cells(i, 1) > CDate(TextBox1)" ist nicht nötig, da das zu prüfende Datum in Spalte 4 steht. Hat aber auch mit "4" statt "1" nur die "6" angezeigt.

Servus
Anzeige
AW: Userform Problem
19.03.2025 13:05:22
Alwin Weisangler
sorry, hat ein wenig gebraucht bis ich die Verrenkung in Spalte 4 verstanden hatte.
dann ändere so:


Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim lCheckIn&, i&, j&, rng As Range, tmp$, iDatum As Variant
Application.EnableEvents = False
If TextBox1.Value = "" Then Exit Sub
Set rng = Tab2.UsedRange
If Not IsDate(TextBox1.Value) Then
MsgBox "Bitte nur ein gültiges Datum eingeben!", vbCritical, "!"
TextBox1.Value = ""
Exit Sub
End If
lCheckIn = CDate(TextBox1.Value)
If lCheckIn Date Then
MsgBox "Bitte kein Datum aus der Vergangenheit eingeben!", vbCritical, "!"
TextBox1.Value = ""
TextBox1.SetFocus
Exit Sub
End If
With rng
iDatum = Application.Match(CLng(CDate(TextBox1)), .Columns(4), 0)
For i = 2 To rng.Rows.Count
For j = 2 To rng.Columns.Count - 1
If Not IsError(iDatum) Then
If i = iDatum Then
If rng.Cells(i, 4) = CDate(TextBox1) Then tmp = tmp & rng.Cells(i, j) & "###"
End If
Else
tmp = tmp & rng.Cells(i, j) & "###"
End If
Next j
Next i
End With
j = 0
For i = 1 To 7
If InStr(1, tmp, i) = 0 Then
j = j + 1
Controls("pp" & j) = i
End If
Next i
End Sub


Gruß Uwe
Anzeige
AW: Userform Problem
19.03.2025 13:51:06
Herbert Grom
Hi Uwe,

leider funzt der auch noch nicht richtig, da er die Zahl des 21.03. mit anzeigt, diese aber am 20. noch gar nicht frei ist. Aber das macht nix, mit deiner Hilfe habe ich es ja nun hinbekommen und es funzt. Vielen Dank.

Servus
AW: Userform Problem
19.03.2025 11:32:26
Herbert Grom
Hallo Onur,

sorry, ich verlange doch nix. Ich bitte darum! Mir ist aber keine Beschreibung eingefallen, die ich ohne die Datei hätte machen können.

Servus
Anzeige
AW: Userform Problem
19.03.2025 11:36:37
Onur
"außer wenn das Datum in der Spalte D der "Übersicht", kleiner oder gleich dem CheckIn-Datum ist."
KEINES der Datumswerte in D ist kleiner oder gleich dem CheckIn-Datum.
AW: Userform Problem
19.03.2025 11:38:40
Herbert Grom
in meinem Beispiel habe ich doch das Datum 20.03.2025 gewählt und das steht in Zelle D2 der Übersicht.
AW: Userform Problem
19.03.2025 11:42:41
Onur
Du hast aber nicht geschrieben, WELCHES Check-In-Datum du meintest - ich bin von Spalte A ausgegangen.
Ausserdem ist das auf der Userform kein Datum, sondern nur ein Text, der da lautet "20-3".
Anzeige
AW: Userform Problem
19.03.2025 11:47:35
Herbert Grom
Userbild

Guckst du!
AW: Userform Problem
19.03.2025 11:54:03
Onur
Das ist mir jetzt auch klar, nachdem du deine Aussage "kleiner oder gleich dem CheckIn-Datum" präzisiert hast zu "kleiner oder gleich dem CheckIn-Datum auf der Userform".
Die ganze Spalte A enhält doch schliesslich Check-In-Daten....
Trotzdem ist das kein Datum und das macht (unnötigerweise) alles komplizierter.
Man muss sich das Jahr immer dazudenken - aber WELCHES Jahr? Was ist bei Jahreswechsel ?
Anzeige
AW: Userform Problem
19.03.2025 13:48:49
Herbert Grom
Hallo Onur,

da hast du auch wieder recht, das Jahr muss ich noch berücksichtigen. Vielen Dank.

Servus
AW: Userform Problem
19.03.2025 13:53:53
Onur
Wieso machst du eigentlich nicht alles nur mit Formeln? Bei Excel365 sollte das kein Problem sein...
AW: Userform Problem
19.03.2025 14:04:58
Herbert Grom
Weil ich die neuen Formeln noch weniger blicke als VBA.
Anzeige
AW: Userform Problem
19.03.2025 14:05:51
Onur
Da könnte man dir helfen....
AW: Userform Problem
19.03.2025 14:07:19
Herbert Grom
Das wäre prima.
AW: Userform Problem
19.03.2025 14:32:02
Herbert Grom
Super, Danke, allerdings müsste sich das Ganze auf die Spalte B beziehen und nicht auf C. Habe es versucht, aber nix erreicht. Kannst du da noch mal drüberschauen?
AW: Userform Problem
19.03.2025 14:36:32
Onur
C war ja Quatsch - kannst du selbst ändern oder soll ich das machen ?
AW: Userform Problem
19.03.2025 14:37:56
Herbert Grom
So funzt es jetzt prima. Alles perfekt! Mercie vielmals!
Gerne !
19.03.2025 14:38:45
Onur
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18