Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen

Datum in Listenfeld auswählen

Betrifft: Datum in Listenfeld auswählen von: Andre´
Geschrieben am: 01.08.2008 21:32:00

Hallo alle zusammen,
ich möchte durch eine Listenfeld erreichen, dass ein Anfangsdatum und ein Enddatum ausgewählt werden kann.

Das Anfangsdatum soll in die Zelle A1 und das Enddatum in die Zelle A2 zurück gegeben werden.
Hierzu soll aus einer TXT Datei

hier ein Bsp: https://www.herber.de/bbs/user/54278.txt

alle Datumsangaben (immer die ersten 10 Zeichen einer Zeile) in das Listenfeld zur Auswahl stehen.
Die TXT Datei befindet sich unter C:\Datum.txt
In der TXT Datei kann es vorkommen, dass das Datum mehrmals vorkommt. Es soll aber nur einmalig in dem Listenfeld zur Auswahl erscheinen.

Hat jemand eine Idee wie ich das realisieren kann.

Bin für jeden Tipp sehr dankbar!

MFG Andre

  

Betrifft: AW: Datum in Listenfeld auswählen von: Ramses
Geschrieben am: 02.08.2008 12:06:58

Hallo

Und was soll mit dem Rest der Daten passieren ?
Es macht ja wohl keinen Sinn für eine Datumsangabe ein solch kompliziertes Procedere zu veranstalten

Gruss Rainer


  

Betrifft: AW: Datum in Listenfeld auswählen von: Tino
Geschrieben am: 02.08.2008 12:54:18

Hallo,
habe hier mal etwas zusammengebastelt, kannst Du damit etwas anfangen?

Option Explicit
Dim sLine() As String
Sub txt_ReadLine()
  Dim sFilename As String
  Dim F As Integer
  Dim strTemp As String
  Dim lngZ As Long

sFilename = "C:\Datum.txt"
lngZ = 0
'Hier wird die Dimension mittels Schleife ermittelt
  If Dir$(sFilename) <> "" Then
        F = FreeFile
        Open sFilename For Input As #F
            While Not EOF(F)
                Line Input #F, strTemp
                lngZ = lngZ + 1
            Wend
        Close #F
        ReDim sLine(0 To lngZ) 'Dimension Festlegen
lngZ = 0
'Textdatei in eien Area einlesen
        Open sFilename For Input As #F
            While Not EOF(F)
               Line Input #F, sLine(lngZ)
               sLine(lngZ) = Left$(sLine(lngZ), 10)
               lngZ = lngZ + 1
            Wend
        Close #F
  End If
'Doppelte Einträge in Area entfernen
Call DeleteDoppelt

'alte Daten löschen
Tabelle1.ListBox1.Clear
'Neue Daten in Listbox schreiben
For lngZ = 0 To UBound(sLine) - 1
 Tabelle1.ListBox1.AddItem sLine(lngZ)
Next lngZ
End Sub


Sub DeleteDoppelt()
   Dim col As New Collection
   Dim iCounter As Long
   
   On Error Resume Next
   For iCounter = 0 To UBound(sLine) - 1
      col.Add sLine(iCounter), CStr(sLine(iCounter))
   Next iCounter
   On Error GoTo 0
   
   ReDim sLine(0 To col.Count - 1) 'Neu Dimensionieren
   For iCounter = 0 To col.Count - 1
      sLine(iCounter) = col(iCounter + 1)
   Next iCounter

End Sub





Gruß Tino

www.VBA-Excel.de




  

Betrifft: AW: Datum in Listenfeld auswählen von: Andre´
Geschrieben am: 02.08.2008 21:30:33

Hallo Reiner und Tino,


erstmals Danke für die Antworten.

Rainer,die Daten sollen in das Sheets(2) mit folgenden Code eingetragen werden:


Sub TextEinlesen()
  Dim iFree As Integer, strText As String, arrTmp, arrDaten()
  Dim lngCounter As Long, lngStart As Long, lngEnde As Long
  ReDim arrDaten(1 To 4, 1 To 1)
  iFree = FreeFile
  lngStart = Range("A1") * 1
  lngEnde = Range("A2") * 1
  Open Range("A3") For Input As iFree
  Do While Not EOF(iFree)
    Line Input #iFree, strText
    arrTmp = Split(strText, ";")
    Select Case arrTmp(0) * 1
      Case Is >= lngStart, Is <= lngEnde
        lngCounter = lngCounter + 1
        ReDim Preserve arrDaten(1 To 4, 1 To lngCounter)
        arrDaten(1, lngCounter) = arrTmp(0) * 1
        arrDaten(2, lngCounter) = arrTmp(1) * 1
        arrDaten(3, lngCounter) = arrTmp(2)
        arrDaten(4, lngCounter) = arrTmp(3) * 1
    End Select
  Loop
  Close iFree
  Sheets(2).Range("a1").Resize(lngCounter, 4) = WorksheetFunction.Transpose(arrDaten)
End Sub





Tino, hast Du vielleicht eine Bsp.xls

Ich hoffe, das Ihr mir weiter helfen könnt.

MFG Andre


  

Betrifft: AW: Datum in Listenfeld auswählen von: Ramses
Geschrieben am: 02.08.2008 23:06:07

Hallo

Sorry,... aber warum fragst du nicht denjenigen der dir den Code geschrieben hat, den Code entsprechend anzupassen.

Gruss Rainer


  

Betrifft: AW: Datum in Listenfeld auswählen von: Andre´
Geschrieben am: 03.08.2008 10:33:34

Hallo,
den Code habe ich von Rudi Maintaire der Beitrag war aber ein anderer siehe

https://www.herber.de/forum/archiv/984to988/t986101.htm

und der Aufbau der TXT Datei ist auch anders als in dem jetzigen Thread.

Ich bin der Meinung, dass alle Forumsmitglieder einbezogen werden sollen und nicht einzelne Personen angesprochen werden sollen von den man mal Hilfestellung erhalten hat.

Ich habe mal den Code von Tino eingearbeitet wobei ich
Tabelle1.ListBox1.Clear zu UserForm1.ListBox1.Clear und
Tabelle1.ListBox1.AddItem sLine(lngZ) zu UserForm1.ListBox1.AddItem sLine(lngZ)
abgeändert habe.

Hier die Datei: https://www.herber.de/bbs/user/54298.xls

Beim einlesen des Datums wird allerdings nicht der 18.06.2008 mit angezeigt.

Was muss jetzt im Code geändert/ eingefügt werden, damit beim anklicken eines Datums im Listenfeld dies in die Zelle A1 und in die Zelle A2 übergeben wird.

Ich stelle mir es so vor, dass beim Anfangsdatum/ Enddatum ein Text erscheint: Geben Sie ein Anfangsdatum ein
nach der Auswahl dann: Geben Sie ein Enddatum ein wobei das Enddatum gleich oder größer des Anfangsdatum sein sollte.

Mit dem einlesen der Daten in das Sheets(2) würde ich das dann schon selber kombinieren.

Wäre sehr Dankbar wenn mir jemand helfen könnte.

MFG Andre


  

Betrifft: AW: Datum in Listenfeld auswählen von: Tino
Geschrieben am: 03.08.2008 11:04:16

Hallo,
habe den Code nochmal Korrigiert und an die UserForm_Activate angepasst
https://www.herber.de/bbs/user/54299.xls

Gruß Tino

www.VBA-Excel.de




  

Betrifft: AW: Datum in Listenfeld auswählen von: Andre´
Geschrieben am: 03.08.2008 11:14:10

Hallo Tino,
jetzt wird alles eingelesen Danke!

Wie kann ich aber nun die Werte in die Zellen übergeben?

Wie bereits beschrieben:

Was muss jetzt im Code geändert/ eingefügt werden, damit beim anklicken eines Datums im  _
Listenfeld dies in die Zelle A1 und in die Zelle A2 übergeben wird. 

Ich stelle mir es so vor, dass beim Anfangsdatum/ Enddatum ein Text erscheint: Geben Sie ein  _
Anfangsdatum ein
nach der Auswahl dann: Geben Sie ein Enddatum ein wobei das Enddatum gleich oder größer des Anfangsdatum sein sollte.




Kannst Du mit bitte diesbezüglich weiter helfen.

Vielen Dank im Voraus!

MFG Andre


  

Betrifft: AW: Datum in Listenfeld auswählen von: Tino
Geschrieben am: 03.08.2008 11:32:27

Hallo,
ich würde dies über zwei ComboBoxen machen
Eine mit Datum Anfang und eine mit Datum Ende.
https://www.herber.de/bbs/user/54301.xls

Gruß Tino


  

Betrifft: AW: Datum in Listenfeld auswählen von: Andre´
Geschrieben am: 03.08.2008 22:14:53

Hallo Tino,
Danke für den Tipp.
Ich habe noch

UserForm1.ListBox1.Clear

zu

UserForm1.ComboBox1.Clear
UserForm1.ComboBox2.Clear

abgeändert, obwohl Clear vielleicht gar nicht notwendig sein wird Oder?

Ich lasse den Thread mal offen. Durch die ComboBox kann man eben auch andere Dinge direkt eingeben und die Prüfung ob das Enddatum gleich oder größer ist sollte noch erledigt werden.

MFG Andre


  

Betrifft: AW: Datum in Listenfeld auswählen von: Tino
Geschrieben am: 04.08.2008 07:55:46

Hallo,
meinst du so?

https://www.herber.de/bbs/user/54314.xls

Gruß Tino


  

Betrifft: AW: Datum in Listenfeld auswählen von: Andre´
Geschrieben am: 05.08.2008 21:34:17

Hallo Tino,
konnte mich leider erst jetzt melden.

Der Lösungsansatz ist gut, wenn ich aber jetzt etwas anderes in ComboBox eingebe
kommt Laufzeitfehler 13 Typen unverträglich durch das CDate.....

Hast Du noch eine Idee, wie man nur die vorgegebenen Werte benutzen kann und keine anderen Eingaben in den ComboBoxen tätigen kann.

MFG Andre


  

Betrifft: AW: Datum in Listenfeld auswählen von: Andre´
Geschrieben am: 05.08.2008 22:18:08

Hallo Tino,

habe soeben mein Problem gelöst.
Ich habe Deinen letzten Tipp in die ListBoxen eingearbeitet und übergebe die Auswahl über

Private Sub ListBox1_Click()
...
End Sub



Nochmals vielen Dank für die ganzen Lösungsansätze.

MFG Andre


  

Betrifft: AW: Datum in Listenfeld auswählen von: Tino
Geschrieben am: 03.08.2008 10:18:33

Hallo,
du brauchst doch nur eine Tabelle mit einer ListBox1 und einem Button,
dem Button weist du dass Makro „txt_ReadLine“ zu.
Du solltest nach dem drücken auf den Button, in deiner Listbox die gefilterten Daten deiner Textdatei bekommen ohne doppelte Einträge.

Gruß Tino

www.VBA-Excel.de




 

Beiträge aus den Excel-Beispielen zum Thema "Datum in Listenfeld auswählen"