Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1632to1636
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Userform - Intelligente Datenzuordnung

Userform - Intelligente Datenzuordnung
19.07.2018 10:27:59
Sarah
Guten Morgen,
ich habe ein Userform erstellt (s. Link), das tagesbezogene Daten abfragt. Die Daten aus dem Userform sollen dann in den rot markierten Spalten der Tabelle beim entsprechenden Datum automatisch eingefügt werden.
Optimal wäre es natürlich auch noch, wenn im Userform schon automatisch das Datum stehen würde, für das noch keine Daten in der Tabelle sind (ggf. auch für mehrere Tage, die noch nicht erfasst wurden).
Kann mir jemand damit helfen :-) ?
Hier der Link zu meiner Datei: https://www.herber.de/bbs/user/122783.xlsm
Vielen Dank schonmal.

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform - Intelligente Datenzuordnung
19.07.2018 11:28:42
ChrisL
Hi Sarah
Mal als Ansatz. Spalte B muss gefüllt werden, damit die letzte Zeile ermittelt werden kann.
Private Sub OKButton_Click()
Dim emptyRow As Long
If Not IsDate(DateTextBox) Then
MsgBox "kein Datum"
Exit Sub
End If
With Worksheets("Sheet1")
emptyRow = Application.Match(CLng(CDate(DateTextBox)), .Columns(1), 0)
'Transfer information
.Cells(emptyRow, 2).Value = KolliTextBox.Value
.Cells(emptyRow, 6).Value = HoursTextBox.Value
End With
Unload Me 'close Userform
End Sub
Private Sub UserForm_Initialize()
'Empty Date
With Worksheets("Sheet1")
DateTextBox.Value = .Cells(Rows.Count, 2).End(xlUp).Offset(1, -1)
End With
'Set Focus on Date
DateTextBox.SetFocus
End Sub

cu
Chris
Anzeige
AW: Userform - Intelligente Datenzuordnung
19.07.2018 16:04:01
Sarah
Wow, vielen Dank, Chris! Hab die Veränderungen umgesetzt. Allerdings habe ich jetzt noch folgende Probleme:
- Wenn das Datum den Monat wechselt, gibt es einen Error, den ich nicht zu lösen weiß
- im Userform selber will ich mit TAB/Enter jeweils zum nächsten Feld springen. Aber jedes Mal wird das Kollianzahl Feld (2. Feld) übersprungen. Warum?
Aktuelle Datei: https://www.herber.de/bbs/user/122795.xlsm
AW: Userform - Intelligente Datenzuordnung
19.07.2018 16:17:20
ChrisL
Hi Sarah
muss gleich weg...
Private Sub OKCommandButton_Click()
Dim emptyRow As Long
If Not IsDate(DateTextBox) Then
MsgBox "kein Datum"
Exit Sub
End If
With Worksheets("Sheet1")

If WorksheetFunction.CountIf(.Columns(1), CLng(CDate(DateTextBox))) = 0 Then _
.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = CDate(DateTextBox)
emptyRow = Application.Match(CLng(CDate(DateTextBox)), .Columns(1), 0)
'Transfer information
.Cells(emptyRow, 2).Value = KolliTextBox.Value
.Cells(emptyRow, 6).Value = HoursTextBox.Value
.Cells(emptyRow, 10).Value = AmountTextBox.Value
.Cells(emptyRow, 14).Value = SelleriePTextBox.Value
.Cells(emptyRow, 15).Value = SellerieKTextBox.Value
.Cells(emptyRow, 20).Value = PorreePTextBox.Value
.Cells(emptyRow, 21).Value = PorreeKTextBox.Value
.Cells(emptyRow, 26).Value = MoehrenPTextBox.Value
.Cells(emptyRow, 27).Value = MoehrenKTextBox.Value
.Cells(emptyRow, 32).Value = PetersiliePTextBox.Value
.Cells(emptyRow, 33).Value = PetersilieKTextBox.Value
End With
Call UserForm_Initialize
'Unload Me 'close Userform
End Sub

und TabIndex Eigenschaft
cu
Chris
Anzeige
AW: Userform - Intelligente Datenzuordnung
19.07.2018 17:16:37
Sarah
Das mit dem Tab hat funktioniert, vielen Dank.
Die Sache mit dem Datum jedoch noch nicht so ganz. Statt mein vorgegebenes Datum zu erkennen (01.08.18) erstellt das Form einmalig eine weitere Zeile mit dem Datum 01.08.18. Allerdings stoppt die Sache dann, und geht nicht weiter zum 02.08. Besser wäre es auch, wenn kein neues Datum eingegeben, sondern einfach das vorhandene ausgelesen werden würde.
Hättest du da noch einen Tip, muss nicht mehr heute sein :-) ?
Gibt es außerdem eine Möglichkeit, das Datum im Userform in unserer deutschen Schreibweise anzeigen zu lassen (dd.mm.jjjj)?
Anzeige
AW: Userform - Intelligente Datenzuordnung
20.07.2018 10:01:42
ChrisL
Hi
Schau mal ob das passt...
Private Sub UserForm_Initialize()
AmountTextBox.Value = "8"
'Empty Date
With Worksheets("Sheet1").Cells(Rows.Count, 2).End(xlUp)
If .Offset(1, -1) = "" Then
DateTextBox.Value = Format(.Offset(0, -1).Value + 1, "DD.MM.YYYY")
Else
DateTextBox.Value = Format(.Offset(1, -1), "DD.MM.YYYY")
End If
End With
'Empty Boxes
KolliTextBox.Value = ""
HoursTextBox.Value = ""
SelleriePTextBox.Value = ""
SellerieKTextBox.Value = ""
PorreePTextBox.Value = ""
PorreeKTextBox.Value = ""
MoehrenPTextBox.Value = ""
MoehrenKTextBox.Value = ""
PetersiliePTextBox.Value = ""
PetersilieKTextBox.Value = ""
'Set Focus on Date
DateTextBox.SetFocus
End Sub

Ansonsten müsstest du dein Vorhaben noch einmal überdenken und die TextBox-Datum z.B. durch eine ListBox ersetzen. Weil solange du dem User die Interaktionsmöglichkeit mit Datum gibst, kann der User irgend ein Datum eingeben (z.B. 1.1.2099) und das gibt zwangsläufig früher oder später ein Durcheinander.
cu
Chris
Anzeige
AW: Userform - Intelligente Datenzuordnung
20.07.2018 15:45:56
Sarah
Funktioniert super, vielen Dank. Werde das mit dem Datum aber tatsächlich nochmal überdenken.
AW: Userform - Intelligente Datenzuordnung
23.07.2018 08:16:53
Sarah
Jetzt doch nochmal eine Frage: Wo im Code ist die Zahl, die sich darauf bezieht, dass in der 2. Spalte geschaut werden soll, ob sie leer ist? Das müsste jetzt nämlich auf die 3. Spalte umgeändert werden.
AW: Userform - Intelligente Datenzuordnung
23.07.2018 08:17:22
Sarah
Jetzt doch nochmal eine Frage: Wo im Code ist die Zahl, die sich darauf bezieht, dass in der 2. Spalte geschaut werden soll, ob sie leer ist? Das müsste jetzt nämlich auf die 3. Spalte umgeändert werden.
AW: Userform - Intelligente Datenzuordnung
23.07.2018 08:21:37
Sarah
Jetzt doch nochmal eine Frage: Wo im Code ist die Zahl, die sich darauf bezieht, dass in der 2. Spalte geschaut werden soll, ob sie leer ist? Das müsste jetzt nämlich auf die 3. Spalte umgeändert werden.
Anzeige
AW: Userform - Intelligente Datenzuordnung
23.07.2018 08:39:00
ChrisL
2. Spalte (B) und davon -1 Abweichung (A)
With Worksheets("Sheet1").Cells(Rows.Count, 2).End(xlUp)
If .Offset(1, -1) = "" Then
DateTextBox.Value = Format(.Offset(0, -1).Value + 1, "DD.MM.YYYY")
Else
DateTextBox.Value = Format(.Offset(1, -1), "DD.MM.YYYY")
End If
End With
AW: Userform - Intelligente Datenzuordnung
24.07.2018 15:58:45
Sarah
Super, hat funktioniert :-) .
Langsam ist es mir echt peinlich, noch was zu fragen, aber mir fallen ständig neue Fragen ein...
Bis jetzt leert das Userform ja alle Eingabefelder (außer das Datumsfeld und das Feld mit der Gruppengröße, wo 8 als Standard drin ist). Ist es möglich, dass die Eingabefelder statt einem leeren Standardwert den zum Datum passenden Zellwert enthalten, was ja nur bei manueller Rückdatierung einen Unterschied bringen würde? Sodass man quasi etwas ergänzen kann, statt die Zelle zu überschreiben.
Private Sub UserForm_Initialize()
AmountTextBox.Value = "8"
'Fill in Date
With Worksheets(ActiveSheet.Name).Cells(Rows.Count, 3).End(xlUp)
If .Offset(1, -2) = "" Then
DateTextBox.Value = Format(.Offset(0, -2).Value + 1, "DD.MM.YYYY")
Else
DateTextBox.Value = Format(.Offset(1, -2), "DD.MM.YYYY")
End If
End With
'Empty Boxes
KolliTextBox.Value = ""
'HoursTextBox.Value = ""
SelleriePTextBox.Value = ""
SellerieKTextBox.Value = ""
PorreePTextBox.Value = ""
PorreeKTextBox.Value = ""
MoehrenPTextBox.Value = ""
MoehrenKTextBox.Value = ""
PetersiliePTextBox.Value = ""
PetersilieKTextBox.Value = ""
'Set Focus on Date
KolliTextBox.SetFocus
End Sub

Anzeige
Reset - Standard UF Eingabemaske
24.07.2018 18:49:11
ChrisL
Hi Sarah
Gratulation, jetzt stellst du die richtigen Anforderungen :)
Allerdings drückst du damit bezüglich Code auf den Reset-Button (Neustart).
Was du jetzt suchst, ist eine "klassische" Eingabemaske. Sehr oft werden dazu eindeutige ID's (Laufnummern) verwendet, die dann z.B. über eine ComboBox oder ListBox zur Auswahl angezeigt werden. Über einen "hinzufügen"-Knopf o.ä. wird ein neuer Datensatz erzeugt. Bei dir entspricht die ID dem Datum, ansonsten Standard.
Insofern glaube ich, dass du mittels kleiner Projektanpassung viele fix fertige Lösungen (oder auch Anleitungen) im Netz findest. Ich möchte dich also gerne erst selbständig auf die Reise schicken und vielleicht fällt dir dabei auch noch die eine oder andere Neuanforderung ein. ;)
Und wenn du dann (im Idealfall mit neuer Vorlage) wieder Hilfe brauchst, hilft dir das Forum sicher gerne.
cu
Chris
Anzeige
AW: Userform - Intelligente Datenzuordnung
23.07.2018 08:22:04
Sarah
Jetzt doch nochmal eine Frage: Wo im Code ist die Zahl, die sich darauf bezieht, dass in der 2. Spalte geschaut werden soll, ob sie leer ist? Das müsste jetzt nämlich auf die 3. Spalte umgeändert werden.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige