Tipp 0451 Dateinamen in ComboBox/ListBox auflisten
Autor/Einsender:
Datum:
  Angie
11.05.2005
Entwicklungsumgebung:   Excel 2000
In den hier folgenden Beispielen wurde für die Ermittlung der Arbeitsmappen im vorgegebenen Verzeichnis die Funktion GetXLFiles() aus unserem Tipp Dateien in vorgegebenen Verzeichnis ermitteln verwendet. Der Code der Funktion ist hier nicht abgebildet, jedoch im Download-Beispiel enthalten.
Mit nur einer Codezeile können die im Datenfeld enthaltenen Dateinamen einer ComboBox oder ListBox zugewiesen werden.
 
  Me.ComboBox1.List = astrXLFiles
  Me.ListBox1.List = astrXLFiles
 
Dateinamen inkl. Pfad in einer Spalte in einer ComboBox auflisten
In folgendem Beispiel werden die ermittelten Arbeitsmappen im vorgegebenen Verzeichnis in einer Spalte in einer ComboBox auf einer UserForm aufgelistet.
 
Private Sub UserForm_Initialize()
  Dim strPath       As String
  Dim astrXLFiles() As String

  strPath = ThisWorkbook.Path

  If Len(Dir$(strPath, vbDirectory)) > 0 Then
    If GetXLFiles(astrXLFiles(), strPath, False) Then

      With Me.cboFileNames1
        .Style = fmStyleDropDownList
        .List = astrXLFiles
      End With

      Erase astrXLFiles

    Else
      Me.lblMsg.Caption = _
            "Keine Excel-Arbeitsmappen im Verzeichnis " & _
            strPath & " gefunden!"
    End If

  Else
    Me.lblMsg.Caption = "Das Verzeichnis " & strPath & _
          " existiert nicht!"
  End If
End Sub
 
Im Click-Ereignis der ComboBox/ListBox kann das ausgewählte Element wie folgt ermittelt werden:
 
Private Sub cboFileNames1_Click()
  MsgBox Me.cboFileNames1.Text, vbInformation, Me.Caption
End Sub
 
Pfad und Dateinamen getrennt in zwei Spalten in einer ComboBox auflisten
Damit Pfad und Dateinamen getrennt in zwei Spalten in einer ComboBox oder ListBox angezeigt werden können, werden Pfad und Dateiname der einzelnen Dateien ermittelt und in einem zwei-dimensionalen Datenfeld zwischengespeichert, und anschließend der ComboBox zugewiesen.
Damit nur der Dateiname für den Anwender sichtbar ist, wird in diesem Beispiel die Breite der 1. Spalte der ComboBox, in der sich der Pfad befindet, auf 0 gesetzt.
 
Private Sub UserForm_Initialize()
  Dim strPath        As String
  Dim astrXLFiles()  As String
  Dim astrListData() As String
  Dim nFilesCnt      As Long
  Dim nFile          As Long

  Dim strFileName    As String
  Dim strFile        As String

  strPath = ThisWorkbook.Path

  If Len(Dir$(strPath, vbDirectory)) > 0 Then
    If GetXLFiles(astrXLFiles(), strPath, False) Then

      nFilesCnt = UBound(astrXLFiles)
      ReDim astrListData(nFilesCnt, 1)
      For nFile = 0 To nFilesCnt
        strFileName = astrXLFiles(nFile)
        strFile = Dir$(strFileName)

        astrListData(nFile, 0) = Left$(strFileName, _
              Len(strFileName) - Len(strFile))
        astrListData(nFile, 1) = strFile
      Next

      With Me.cboFileNames2
        .Style = fmStyleDropDownList

        .ColumnCount = 2
        .ColumnWidths = "0"
        .BoundColumn = 1

        .List = astrListData
      End With

      Erase astrListData
      Erase astrXLFiles

    Else
      Me.lblMsg.Caption = _
            "Keine Excel-Arbeitsmappen im Verzeichnis " & _
            strPath & " gefunden!"
    End If

  Else
    Me.lblMsg.Caption = "Das Verzeichnis " & strPath & _
          " existiert nicht!"
  End If
End Sub
 
Im Click-Ereignis der ComboBox/ListBox kann das ausgewählte Element wie folgt ermittelt werden:
 
Private Sub cboFileNames2_Click()
  With Me.cboFileNames2
    MsgBox "Pfad: " & .List(.ListIndex, 0) & vbCrLf & _
           "Dateiname: " & .List(.ListIndex, .BoundColumn), _
           vbInformation, "VB-fun-Demo"
  End With
End Sub
 
Weitere Links zum Thema
Dateinamen in Tabellenblatt ausgeben

Windows-Version
95
98
ME
NT
2000
XP
Vista
Win 7
Excel-Version
95
97
2000
2002 (XP)
2003
2007
2010


Download  (24,5 kB) Downloads bisher: [ 1909 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Mittwoch, 18. Mai 2011