Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Datum in Listbox anzeigen

Datum in Listbox anzeigen
10.09.2018 09:06:48
Brigitte
https://www.herber.de/bbs/user/123854.xlsm
Hallo Forum,
und schon wieder eine Listboxfrage.
In meiner Tabelle werden über ein Formular Daten in die Tabelle geschrieben bzw. geändert. Unter anderem auch vier "Datümer".
Diese Daten übertrage ich mit zum Beispiel CDate(TextBoxDatum3.Value)
In der Tabelle wird dann das Datum auch angezeigt.
In der Listbox wird ebenfalls die Anzeige als Datum vorgenommen. Jedoch in den TextBoxen wird das Datum als laufende Zahl angezeigt.
Wie kann ich das ändern?
Ich möchte, das ist der Hintergrund alle Zeilen löschen, deren Datum-Eintrag in der Spalte K kleiner ist, als das Datum in Zelle P1.
Probehalber habe ich in der Zelle P4 mit Zählenwenn versucht die Anzahl der Zellen zu ermitteln, bei denen diese Bedingung zutrifft. Hier bekomme ich eine 0 als Resultat.
Wo liegt mein Denkfehler?
Kann mir jemand weiterhelfen? Danke vielmals
Brigitte
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Datum in Listbox anzeigen
10.09.2018 09:15:05
Luschi
Hallo Brigitte,
statt:
UserForm1.TextBoxDatum1 = .List(.ListIndex, 7)
so:
Me.TextBoxDatum1.Value = Format(.List(.ListIndex, 7), "dd.MM.yyyy")
usw.
Gruß von Luschi
aus klein-Paris
AW: Datum in Listbox anzeigen
10.09.2018 09:23:51
daniel
Hi
der Denkfehler in deinem ZählenWenn lieg darin, dass du die Bedingung falsch beschrieben hast und nicht nach Werten suchst, die kleiner sind als der Wert von Zelle P1, sondern nach Texten, die kleiner sind als der Text "$P$1", dh nach Texten, die bspw it "$O" beginnen.
ändere deine Formel mal so ab, dann bekommst du auch die korrekte Anzahl:
=ZÄHLENWENN($K$3:$K$60;"
Gruß Daniel
Anzeige
TextBoxN = CDate(.List(.ListIndex, N)) [owT]
10.09.2018 09:24:02
EtoPHG

AW: TextBoxN = CDate(.List(.ListIndex, N)) [owT]
10.09.2018 09:58:44
Brigitte
Hallo Forum,
@Luschi, @Daniel, @etoPHG,
vielen Dank für Eure schellen Antworten. Ich werde die Hilfen von Euch im Laufe des Tages anwenden und austesten.
Im Moment komme ich nicht dazu.
Danke nochmals
Brigitte
AW: TextBoxN = CDate(.List(.ListIndex, N)) [owT]
10.09.2018 10:19:17
Brigitte
https://www.herber.de/bbs/user/123855.xlsm
@Luschi,
Hallo Luschi,
ich habe deine Änderung übertragen und bekomme jetzt in den TextBoxen, die ein Datum enthalten, jeweils ein FALSE angezeigt. Wogegen in der Tabelle das Datum korrekt angezeigt wird.
Die geänderte Version ist angehängt.
Was mache ich falsch? Anfänger.
@ Daniel
Danke, Daniel für deinen Hinweis zur Zählenwennformel. Sie funktioniert jetzt einwandfrei.
@ etoPHG
mit deiner Lösung komme ich nicht zurecht. Anfänger.
Wie müsste das in meinem Code angepasst werden?
Da ich dabei bin zu lernen, wäre eine Änderung meines Codes plus Kommentar sehr lieb.
Vielen Dank
Brigitte
Anzeige
AW: TextBoxN = CDate(.List(.ListIndex, N)) [owT]
10.09.2018 10:30:40
EtoPHG
Hallo Brigitte,
Im Sub ListBox1_Click() Event der Userform, die 3 Zuweisungen des Datums entsprechend dem Vorschlag ändern:
Also:
...
TextBoxDatum1 = CDate(.List(.ListIndex, 7))
TextBoxDatum2 = CDate(.List(.ListIndex, 8))
TextBoxDatum3 = CDate(.List(.ListIndex, 9))
TextBoxEnde = CDate(.List(.ListIndex, 10))
...

Gruess Hansueli
Anzeige
AW: TextBoxN = CDate(.List(.ListIndex, N)) [owT]
10.09.2018 10:41:22
daniel
Hi Brigitte
Luschi schrieb:
Me.TextBoxDatum1.Value = Format(.List(.ListIndex, 7), "dd.MM.yyyy")
du hast aber daraus gemacht:
UserForm1.TextBoxDatum1 = Me.TextBoxDatum1.Value = Format(.List(.ListIndex, 7), "dd.MM.yyyy")
ich hoffe du siehst den Unterschied.
btw es ist egal, ob du "Userform1.TextboxDatum1", oder "Me.TextboxDatum1" oder nur "TextboxDatum1" schreibst. "Me" ist hier die Userform1 und wenn du es weg lässt, setzt VBA automatisch die Userform1 ein, weil du dich im Modul der Userform1 befindest und es daher logisch ist, dass du die Steuerelemente dieser Userform meinst.
den Userformnamen braucht man nur, wenn man mehrere Userformen hat und von der einen Userform aus auf Steuerlemente der anderen Userform zugreifen will.
Gruß Daniel
Anzeige
AW: TextBoxN = CDate(.List(.ListIndex, N)) [owT]
10.09.2018 15:26:28
Brigitte
Hallo Daniel, hallo EtoPHG,
ich bin jetzt erst dazu gekommen Euro Vorschläge bzw. Lösungen umzusetzen. Es funktioniert.
Vielen Dank euch beiden
@Daniel
Upps, als Inhaberin des kleinen Latrinums kann ich nur sagen: mea culp, mea maxima culpa.
Vielen Dank nochmals
Brigitte
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Datum in Listbox anzeigen


Schritt-für-Schritt-Anleitung

Um das Datum in einer Listbox korrekt anzuzeigen, kannst Du folgende Schritte befolgen:

  1. UserForm erstellen: Stelle sicher, dass Du eine UserForm mit einer Listbox und mehreren TextBoxen hast.

  2. Daten in die Listbox laden: Füge die Daten in die Listbox ein, wobei das Datum in einer der Spalten gespeichert ist.

  3. Ereignis der Listbox: Gehe zum Ereignis ListBox1_Click() in Deinem VBA-Code.

  4. Datum formatieren: Ändere den Code, der das Datum in die TextBoxen überträgt. Verwende den Format-Befehl, um sicherzustellen, dass das Datum korrekt angezeigt wird:

    Me.TextBoxDatum1.Value = Format(.List(.ListIndex, 7), "dd.MM.yyyy")
    Me.TextBoxDatum2.Value = Format(.List(.ListIndex, 8), "dd.MM.yyyy")
    Me.TextBoxDatum3.Value = Format(.List(.ListIndex, 9), "dd.MM.yyyy")
  5. Testen: Überprüfe, ob das Datum in den TextBoxen korrekt angezeigt wird.


Häufige Fehler und Lösungen

Hier sind einige häufige Fehler, die bei der Anzeige von Datümer in einer Listbox auftreten können, sowie deren Lösungen:

  • Datum als laufende Zahl: Wenn das Datum in der TextBox als Zahl angezeigt wird, stelle sicher, dass Du die Format-Funktion wie oben beschrieben verwendest.

  • Falsche Zählenwenn-Bedingung: Wenn Du ZÄHLENWENN verwendest, achte darauf, dass Du die Bedingung korrekt beschreibst. Ein Beispiel wäre:

    =ZÄHLENWENN($K$3:$K$60;"<" & $P$1)
  • FALSE in TextBoxen: Wenn Du CDate verwendest und FALSE angezeigt wird, überprüfe, ob der Index in .List korrekt ist und auch tatsächlich ein Datum anzeigt.


Alternative Methoden

Falls Du eine andere Methode bevorzugst, um Datümer anzuzeigen, kannst Du auch folgende Alternativen in Betracht ziehen:

  • Datenformat in Excel anpassen: Stelle sicher, dass die Spalte, die die Datümer enthält, als Datum formatiert ist. Das kann helfen, die Anzeigeprobleme zu vermeiden.

  • Verwendung von Arrays: Du könntest die Daten in ein Array laden und dann formatieren, bevor Du sie in die Listbox einfügst.


Praktische Beispiele

Hier sind einige Beispiele, wie Du das Datum in einer Listbox anzeigen kannst:

  1. Daten aus einer Tabelle: Wenn Du Daten aus einer Excel-Tabelle in Deine Listbox laden möchtest, stelle sicher, dass die Datümer im richtigen Format sind, bevor Du sie in die Listbox überträgst.

    With ListBox1
       .AddItem Format(DatenRange.Cells(i, 1).Value, "dd.MM.yyyy")
    End With
  2. Datum filtern: Um nur Datümer anzuzeigen, die nach einem bestimmten Datum liegen, kannst Du eine Schleife verwenden, um diese zu filtern.


Tipps für Profis

  • Verwende benutzerdefinierte Formate: Du kannst benutzerdefinierte Datumsformate verwenden, um das Erscheinungsbild der Datümer in der Listbox zu verbessern.

  • Debugging: Nutze den Debugger in VBA, um sicherzustellen, dass die Indizes und Werte korrekt sind. Setze Haltepunkte und überprüfe die Werte, bevor Du sie in die TextBoxen überträgst.

  • Fehlermeldungen: Implementiere Fehlerbehandlungen, um Probleme beim Laden von Datümer zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass das Datum korrekt formatiert ist?
Verwende die Format-Funktion, um das Datum in das gewünschte Format zu bringen, bevor Du es in die TextBox überträgst.

2. Warum wird mein Datum in der Listbox nicht angezeigt?
Überprüfe, ob die Datenquelle korrekt ist und ob die Indizes in Deinem Code mit den tatsächlichen Positionen in der Listbox übereinstimmen.

3. Was muss ich tun, wenn ich mehrere UserForms habe?
Wenn Du mehrere UserForms hast, achte darauf, die richtige UserForm zu referenzieren, indem Du Me oder den spezifischen Namen der UserForm verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige