Anzeige
Archiv - Navigation
1876to1880
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
UserForm, TextBox mit 2 Bedingungen
12.04.2022 20:52:26
Tim
Hallo, ich hab Excel Datei mit 4 Arbeitsblättern. Auf dem 2. Arbeitsplatt hab ich eine UserForm die Daten in das 4. Arbeitsblatt "Datenbank" einfügen soll.
In dieser UserForm ist eine ListBox mit Kalender (template), sowie 2 Buttons und dazugehörige Textfelder integriert.
Ich möchte, dass wenn ich in der ListBox ein Namen auswähle und ein Datum vom Kalender anklicke, dass ich in einen der beiden Textboxen eine Zahl 0-24 eingeben kann und diese dann Speichern.
Die soll aber nicht irgendwo gespeichert werden, sondern in der entsprechenden Zelle auf dem Arbeitsblatt "Datenbank" wo sich der Name in der Zeile befindet und das Datum in der Spalte.
Das brauche ich quasi 2 mal (einmal für "Stunden eingereicht" und "Stunden aufgebaut")
Des weiteren möchte ich auch, dass mir wenn ich Name und Datum ausgewählt habe, dass mir auch der entsprechende Eintrag in der/den Zeilen angezeigt wird, sollte dort nichts drin stehen, dann soll dort eine 0 stehen.
Ich hoffe, dass ich mich verständlich ausgedrückt habe und wollte mal fragen ob das möglich ist. Wenn ja würde ich mich über Hilfe freuen.
Mit der ListBox bin ich fertig geworden, dank YouTube :)

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UserForm, TextBox mit 2 Bedingungen
13.04.2022 09:46:07
Alwin
Hallo Tim,
anbei die nötigen Änderungen.
- Die Timeline des Kalenders, so wie diese aufgebaut war, eignete sich nicht zum Auffinden der Spalte wo ein Eintrag angelegt werden soll. Das habe ich entsprechend umgebaut.
- Unglücklicherweise hast du Namen und Vornamen in getrennten Spalten sowohl in der Tabelle als auch in der Listbox angelegt, was beim Suchen und fehlerfreien Finden nur noch sinnvoll über Schleifen machbar war.
Ich habe einen Button zusätzlich auf das Userform gelegt, wo entsprechend des ausgewählten Namen der Listbox der Wert der Textbox entsprechend des ausgewählten Datums in die korrekte Zelle eingetragen wird.
https://www.herber.de/bbs/user/152440.xlsm
Gruß Uwe
Anzeige
AW: UserForm, TextBox mit 2 Bedingungen
13.04.2022 10:09:49
Tim
Hallo, danke dir erst einmal für die Mühe und das hat mich schon etwas näher an mein Ziel gebracht.
Allerdings funktioniert das nicht so 100% wie das sein sollte.
Ich brauche halt extra 2 CommandButtons sowie 2 TextBox mit 2 Timekalender in der Spalte Datenbank, da es noch 2 andere Datenblätter gibt die in dieser Excel Datei nicht mehr drin sind, da die Datei sonst zu groß war zum uploaden hier über diese Seite.
Leider Zeigt er mir auch nicht die Zahl in der Textbox an sobald ich den Namen und das Datum im Kalender angeklickt habe, da steht immer eine null.
Sollte ein eine Eintragung machen und klicke auf den Command Button, habe aber vergessen den Namen anzuklicken kommt ein Debuggfenster, was ich gerne vermeiden möchte, mit einer Error Nachricht wie z.B. Du hast vergessen (Name oder Datum) angeklickt zu haben.
Und die Änderung der Formatierung, hat das auch eine Auswirkung auf die anderen Tabellenblätter? Es werden mir oben nicht mehr die Buchstaben angezeigt, sondern die Zahlen :(
Hier einmal die Originaldatei mit allen 4 Datenblättern: https://www.file-upload.net/download-14903140/PattProject.xlsm.html
Anzeige
AW: UserForm, TextBox mit 2 Bedingungen
13.04.2022 10:39:22
Tim
Also, dank deiner Hilfe konnte ich das so Editieren, dass ich beide TextBoxen sowie beide CommandButtons nutzen konnte.
Jetzt müsste mir nur noch in der TextBox auch die Zahl angezeigt werden, sofern dort eine Zahl von 0-24 steht und eine Fehlermeldung sobald ich auf den Button Klicke, aber vergessen Habe den "Namen" oder "Datum" auszuwählen
Option Explicit
Dim Calendar1 As Object
Private Sub UserForm_Initialize()
'Calendar einlesen
Set Calendar1 = New cCalendar
Calendar1.Add_Calendar_into_Frame Me.Frame1
'ListBox befüllen 'Additem
ListBox1.ColumnCount = 2
ListBox1.ColumnWidths = "70;80"
Dim i As Integer
Dim x As Integer
Dim sh As Worksheet
Set sh = Sheets("Datenbank")
For i = 4 To 83
If sh.Cells(i, 13) "" And sh.Cells(i, 14) "" Then
ListBox1.AddItem sh.Cells(i, 13)
ListBox1.List(x, 1) = sh.Cells(i, 14)
x = x + 1
End If
Next i
End Sub
Private Sub DatumEingereicht()
Dim i As Long, j As Long, k As Long, varName1 As String, varName2 As String
varName1 = ListBox1.List(ListBox1.ListIndex, 0)
varName2 = ListBox1.List(ListBox1.ListIndex, 1)
With Tabelle4
For i = 16 To 381
If .Cells(3, i) = Calendar1.Value Then j = i
Next i
For i = 4 To 83
If .Cells(i, 13) = varName1 Then
If .Cells(i, 14) = varName2 Then
k = i
GoTo schreiben
End If
End If
Next i
schreiben:
.Cells(k, j) = CDbl(TextBox1)
End With
End Sub
Private Sub DatumAufgebaut()
Dim i As Long, j As Long, k As Long, varName1 As String, varName2 As String
varName1 = ListBox1.List(ListBox1.ListIndex, 0)
varName2 = ListBox1.List(ListBox1.ListIndex, 1)
With Tabelle4
For i = 382 To 748
If .Cells(3, i) = Calendar1.Value Then j = i
Next i
For i = 4 To 83
If .Cells(i, 13) = varName1 Then
If .Cells(i, 14) = varName2 Then
k = i
GoTo schreiben
End If
End If
Next i
schreiben:
.Cells(k, j) = CDbl(TextBox2)
End With
End Sub
Private Sub CommandButton1_Click()
'Button1 eingereicht
DatumEingereicht
End Sub
Private Sub CommandButton2_Click()
'Button2 aufgebaut
DatumAufgebaut
End Sub
Private Sub CommandButton3_Click()
'Button3 beenden
Unload Stunden
End Sub
Anzeige
AW: UserForm, TextBox mit 2 Bedingungen
13.04.2022 11:43:00
Tim
Hab's herausgefunden und meine Frage hat sich beantwortet :)
Danke für die Hilfe, dank dein Code konnte ich das perfekt anpassen.
AW: UserForm, TextBox mit 2 Bedingungen
13.04.2022 11:46:09
Alwin
Warum änderst du die Modulnamen. Eigentlich reicht es doch zu die Tabellenblattnamen zu vergeben/ändern.

Private Sub DatumEingereicht()
Dim i As Long, j As Long, k As Long, varName1 As String, varName2 As String
If ListBox1.ListIndex  0 Then
.Cells(k, j) = CDbl(TextBox1)
Else
MsgBox "Es sind nur Werte zwischen 1 und 24 zulässig"
End If
End With
End Sub

Private Sub DatumAufgebaut()
Dim i As Long, j As Long, k As Long, varName1 As String, varName2 As String
If ListBox1.ListIndex  0 Then
.Cells(k, j) = CDbl(TextBox2)
Else
MsgBox "Es sind nur Werte zwischen 1 und 24 zulässig"
End If
End With
End Sub
Gruß Uwe
Anzeige

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige