Anzeige
Archiv - Navigation
1760to1764
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
VBA falsche Datumsanzeige in ListBox
26.05.2020 19:45:06
Peer
Hallo liebe Excel (VBA)- Gemeinde.
Ich bräuchte wieder mal eine kleine Hilfe.
Ich habe eine ListBox die von der Tabelle "Teilnehmer" befüllt wird. Hier habe ich auch eine Spalte "Geb" mit einem Datumsformat.
Die Listbox wird soweit korrekt befüllt, nur der Datumswert wird anders als in der Tabelle, mit falschen Datum angezeigt. Die Daten liegen zwischen 31.12.1899 und 07.01.1900.
CDate oder Format(...., "DD.MM.YYYY") haben nichts gebracht.
Woran kann dies liegen?
https://www.herber.de/bbs/user/137769.xlsm
LG
Peer

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA falsche Datumsanzeige in ListBox
26.05.2020 19:48:22
Regina
Hi Peer,
müsste es hier statt 16 nit 8 heißen?
.List(.ListCount - 1, 7) = Format(wks.Cells(i, 16), "DD.MM.YYYY") 
Gruß Regina
AW: VBA falsche Datumsanzeige in ListBox
26.05.2020 20:02:45
Peer
Hallo Regina.
Ohje, bin ich doof.
Manchmal denkt man zu kompliziert.
Genau das war es.
Jetzt habe ich trotzdem noch eine Frage.
Wenn ich in der UF einen Listeneintrag auswählen und auf "bearbeiten" gehe, öffnet sich "frm_TN_ADD". Wenn ich darin den Eintrag ändere und mit "OK" die UF schließe, soll der Wert geändert werden. In ListBox und Tabelle. In Tabelle wird er geändert, aber was muss ich einfügen, wenn ich nach Schließen von frm_TN_ADD die ListBox der noch geöffneten UF aktualisieren möchte. Bis jetzt behelfe ich mich mit dem Button "Liste neu laden".
LG
Peer
Anzeige
AW: VBA falsche Datumsanzeige in ListBox
26.05.2020 20:13:58
Regina
... lager doch das Befüllen der Listbox in eine Public Sub in einem Standardmodul aus und ruf es aus dem UserForm_Initialize und aus dem frm_TN_ADD mit einem Call auf. Du musst dann nur das "Me" durch den Formularnamen ersetzen.
Gruß Regina
AW: VBA falsche Datumsanzeige in ListBox
26.05.2020 20:22:56
Peer
Darüber habe ich auch schon nachgedacht.
Eine andere Möglichkeit siehst du nicht?
LG
Peer
AW: VBA falsche Datumsanzeige in ListBox
26.05.2020 20:37:14
Regina
... so spontan nicht ...
Diese Fragen / Probleme treten auf, wenn versucht mit Excel Datenbank "zu spielen". In einer echten Datenbank (kleinste Lösung Access), hätte die Listbox eine definierte Datenquelle, die man mit einem Requery neu lädt... In Excel fällt mir dazu nichts anderes ein, als oben schon gesagt.
Gruß Regina
Anzeige
AW: VBA falsche Datumsanzeige in ListBox
26.05.2020 20:49:01
Peer
Hallo Regina.
Also ich habe das Befüllen ausgelagert und rufe nur mit Call vor Schließen der UF frm_TN_ADD die Sub auf.
Danke für deinen Tipp.
Noch eine kleine Frage...
Aktuell werden in frm_TN_ADD die Werte der selektierten Einträge aus der ListBox geladen und durch Ändern in den jeweiligen TextBoxen die Werte zurück geschrieben. Aber bei dem Wert in TextBox txt_Name bekomme ich eine Fehlermeldung.
Im Event btn_Close_Click von frm_TN_ADD sehe ich auch schon den Grund, nur kenne ich keine Lösung, es anders zu machen. Diesen Code habe ich mir aus dem Netz "gestohlen" und angepasst.
Findest du eventuell eine Lösung?
Gruß
Peer
Anzeige
AW: VBA falsche Datumsanzeige in ListBox
26.05.2020 21:11:41
Matthias
Moin!
Da die Frage hier noch offen war, klinke ich mich auch mal ein.
Das Problem beim Ändern ist, dass du den neuen Wert suchst. Der sollte aber idR nicht da sein und deshalb ist die Variable x leer und du kannst nicht mit ihr arbeiten.
Du könntest dir jetzt beim Öffnen der UF die alten Wert zwischenspeichern (variablen). Da du aber in der Liste der UF Teilnehmer eh schon die Zeilennummer mit erfasst (außer du hast da was geändert) könntest du auch mit der direkt auf die LIste und/oder das Blatt zugreifen. Du könntest da beim Klick auf Bearbeiten, den listindex der Zeile mit übergeben. Über den kannst du gleich die Liste aktualisiern und auch die Zeilennummer im Blatt auslesen und dort die neuen Werte eintragen. Spart dir gleich das suchen.
Hinweis noch. Beim Eintragen, hast du am Anfang eine Variable zeile um in die Liste Teilnehmer zu schreiben. Die befüllst du aber nicht. Daher steht die immer auf 0 und füllt nur die erste Zeile der Lb egal welchen Wert du ausgewählt hast. Dort müsste der von mir erwähnte listindex rein. Den kannst du bspw. in die Tag Eigenschaft der UF schreiben (beim Klick auf bearbeiten) und von dort auslesen.
VG
Anzeige
AW: VBA falsche Datumsanzeige in ListBox
27.05.2020 16:17:43
Peer
Hallo Matthias.
Vielen Dank, dass du dich meines Anliegen angenommen hast.
Wie immer ist verlass auf dich.
Du hattest mir schon einmal das Hinzufügen der Zeilennummer im ListIndex nahegelegt.
Da werde ich mich einmal intensiver damit beschäftigen, wie ich den vorhandenen Code dahingehend verändere, ohne gleich von vorn zu beginnen.
LG
Peer
AW: VBA falsche Datumsanzeige in ListBox
27.05.2020 18:12:53
Matthias
Moin!
Du musst bei deinem Aufbau erstmal nix ändern. Wenn er so ist, wie in deiner Eingangsdatei ist alles da.Passe den Code so an, dass sollte das Blatt und auch die Liste aktualisiert werden.
Private Sub btn_Close_Click()
Dim zeile As Long
Dim x As Long
Dim FindIt As Range
Dim Loletzte As Long
Dim wksTN As Worksheet
Dim frmTN As Object
Set wksTN = Sheets("Teilnehmer")
'frmTN = frm_TN_ADD
With frm_Teilnehmer.lst_Teilnehmer
zeile = .ListIndex
If zeile = -1 Then
Unload Me
Exit Sub
End If
.List(zeile, 1) = txt_Name
.List(zeile, 2) = txt_Vorname
.List(zeile, 3) = txt_PersNr
.List(zeile, 4) = txt_OE
.List(zeile, 5) = txt_Taetigkeit
.List(zeile, 6) = txt_GB
.List(zeile, 7) = CDate(dat_Geb)
End With
x = frm_Teilnehmer.lst_Teilnehmer.List(frm_Teilnehmer.lst_Teilnehmer.ListIndex, 8)
wksTN.Cells(x, 2).Value = frm_TN_ADD.txt_Name.Value
wksTN.Cells(x, 3).Value = frm_TN_ADD.txt_Vorname.Value
wksTN.Cells(x, 4).Value = frm_TN_ADD.txt_PersNr.Value
wksTN.Cells(x, 5).Value = frm_TN_ADD.txt_OE.Value
wksTN.Cells(x, 6).Value = frm_TN_ADD.txt_Taetigkeit.Value
wksTN.Cells(x, 7).Value = frm_TN_ADD.txt_GB.Value
wksTN.Cells(x, 8).Value = Format(frm_TN_ADD.dat_Geb.Value, "DD.MM.YYYY")
Unload Me
End Sub
Zwei "Probleme" noch.
1. Beim Eintragen von neuen Werten über die UF Add ist deine Liste u.U. nicht mehr sortiert. Weiß nicht mehr genau, ob einer der ersten Codes das brauchte oder nicht. Da ggf. mal aufpassen.
2. Und stelle mal deine UF Teilnehmen auf modal true. Ansonsten wird dir beim hide oder UNload der UF Add auch die UF geschlossen. Das würde mich nerven und ist unschön. Außer du wolltest die Teilnehmer UF modal haben, dann muss man was anderes machen.
VG
Anzeige
AW: VBA falsche Datumsanzeige in ListBox
27.05.2020 20:09:59
Peer
Hallo Matthias.
Wie immer von dir einsame Klasse. Funktioniert.
Ich habe die Eigenschaft von UF Teilnehmer ShowModal auf true gesetzt und den Code noch verfeinert.
Jetzt bin ich noch gespannt, ob alles im Alltag problemlos läuft.
Private Sub btn_Close_Click()
Dim zeile As Long
Dim x As Long
Dim wksTN As Worksheet
Set wksTN = Sheets("Teilnehmer")
With frm_Teilnehmer.lst_Teilnehmer
zeile = .ListIndex
If zeile = -1 Then
Unload Me
Exit Sub
End If
If opt_Herr.Value = True Then
.List(zeile, 0) = "Herr"
ElseIf opt_Frau = True Then
.List(zeile, 0) = "Frau"
End If
.List(zeile, 1) = txt_Name
.List(zeile, 2) = txt_Vorname
.List(zeile, 3) = txt_PersNr
.List(zeile, 4) = txt_OE
.List(zeile, 5) = txt_Taetigkeit
.List(zeile, 6) = txt_GB
.List(zeile, 7) = CDate(dat_Geb)
End With
x = frm_Teilnehmer.lst_Teilnehmer.List(frm_Teilnehmer.lst_Teilnehmer.ListIndex, 8)  'Index für  _
die Zeilennummer
If opt_Herr.Value = True Then
wksTN.Cells(x, 1).Value = "Herr"
ElseIf opt_Frau.Value = True Then
wksTN.Cells(x, 1).Value = "Frau"
End If
wksTN.Cells(x, 2).Value = frm_TN_ADD.txt_Name.Value
wksTN.Cells(x, 3).Value = frm_TN_ADD.txt_Vorname.Value
wksTN.Cells(x, 4).Value = frm_TN_ADD.txt_PersNr.Value
wksTN.Cells(x, 5).Value = frm_TN_ADD.txt_OE.Value
wksTN.Cells(x, 6).Value = frm_TN_ADD.txt_Taetigkeit.Value
wksTN.Cells(x, 7).Value = frm_TN_ADD.txt_GB.Value
wksTN.Cells(x, 8).Value = Format(frm_TN_ADD.dat_Geb.Value, "DD.MM.YYYY")
Unload Me
End Sub

Zu guter Letzt muss ich hier allen Usern für ihre Hilfe danken. Jeder ist ein Bereicherung für mich. Bei dem einen oder anderen vermisst man ab und zu die Gelassenheit, aber die meisten sind freundlich und geduldig unterwegs.
GUT, DASS ES EUCH GIBT.
LG
Peer
Anzeige
AW: VBA falsche Datumsanzeige in ListBox
26.05.2020 19:52:05
Hajo_Zi
.List(.ListCount - 1, 7) = wks.Cells(i, 16).Text

AW: VBA falsche Datumsanzeige in ListBox
26.05.2020 20:06:07
Peer
Hallo Hajo.
Es war die falsche Listenangabe. Statt ...cells(i, 16) muss es ...cell(i, 8) sein.
LG
Peer
AW: VBA falsche Datumsanzeige in ListBox
26.05.2020 19:53:23
onur
1) Welche Userform ?
2) Wie wird sie gestartet?
3) Wo ist die Datei zum Einlesen? Ohne sie läuft dein Makro nicht.
AW: VBA falsche Datumsanzeige in ListBox
26.05.2020 20:08:36
Peer
Hallo onur.
zu 1)
UF frm_Teilnehmer
zu 2)
mit Klick darauf in der ersten Tabelle
zu 3)
Datei wird ja nicht benötigt, da die Daten schon in der Tabelle sind.
Gruß
Peer
AW: VBA falsche Datumsanzeige in ListBox
26.05.2020 20:12:17
onur
"Datei wird ja nicht benötigt, da die Daten schon in der Tabelle sind." - Dann versuch doch mal die Userform per Button zu starten und nix auszuwählen.
Anzeige
AW: VBA falsche Datumsanzeige in ListBox
26.05.2020 20:17:39
Peer
Wenn du den Button frm_Teilnehmer in der ersten Tabelle startest, bekommst du in der ListBox der nun geöffneten UF keine Daten?
AW: VBA falsche Datumsanzeige in ListBox
26.05.2020 20:22:23
onur
Nein, über Button kommt nur ein Fenster zum Öffnen der Datei und wenn ich sie direkt starte, eine Fehlermeldung.
AW: VBA falsche Datumsanzeige in ListBox
26.05.2020 20:27:20
Peer
Verstehe ich nicht. Ich habe die hochgeladene Datei selbst noch mal runtergeladen und geöffnet und habe alle Daten.
@alle
Ist dieses Problem bei allen Usern, die die Datei heruntergeladen haben und anschauen?
AW: VBA falsche Datumsanzeige in ListBox
26.05.2020 20:39:32
Regina
Jo, hier bleibt der Code hängen:
    cbx_Protokolle.List = astrFiles
ist auch logisch, weil die Worddatei(en) fehlen.
Gruß Regina
Anzeige
AW: VBA falsche Datumsanzeige in ListBox
26.05.2020 20:54:20
Peer
Achso.
Bis jetzt brauchte ich diese Dateien für mein derzeitiges Anliegen nicht. Kann man es nicht auskommentieren? Wenn ich diese Dateien schicken muss, wird die Datei im Zip über 1 MB.
Gruß
Peer

153 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige