Filename and creation timestamp in 2-column combobox

  • Thread starter Thread starter L Mehl
  • Start date Start date
L

L Mehl

Hello --

An application creates one or more text files, including a specific text
string in the name.

I want to display all file names and creation timestamp in a 2-column
combobox so the user can select the one which is to be imported into a
worksheet.

Can anyone suggest ways to do this, or tell me of examples they know of
which already do it?

Thanks for any help.

Larry Mehl
 
Larry,

Here's some code to load a combobox

Private Sub UserForm_Initialize()
Dim oFSO As Object
Dim oFolder As Object
Dim oFile As Object

Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.Getfolder("c:\myTest")

With Me.ComboBox1
.ColumnCount = 2
For Each oFile In oFolder.Files
If oFile.Type = "Text Document" Then
.AddItem oFile.Name
.List(.ListCount - 1, 1) = oFile.DateLastModified
End If
Next oFile
.ListIndex = 0
End With

End Sub


--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)
 
Hi,

Another method to try,

Example from VBA Help & modified.

Private Sub UserForm_Initialize()
Dim mypath, myname

mypath = "c:\windows\" ' Set the path.
myname = Dir(mypath, vbDirectory) ' Retrieve the first entry.
With Me.ComboBox1
Do While myname <> "" ' Start the loop.
' Ignore the current directory and the encompassing
directory.
If myname <> "." And myname <> ".." Then
' Use bitwise comparison to make sure MyName is a Fileanme

If (GetAttr(mypath & myname) And vbDirectory) <>
vbDirectory Then

'Debug.Print MyName ' Display entry only if it
represents a filename
If UCase(Right(myname, 4)) = ".TXT" Then
.ColumnCount = 2
.AddItem myname
.List(.ListCount - 1, 1) = FileDateTime(mypath &
myname)
End If
End If
End If
myname = Dir ' Get next entry.
Loop
If .ListCount > 0 Then .ListIndex = 0
End With
End Sub



Regards,
Shah Shailesh
http://members.lycos.co.uk/shahweb/
 
Bob --

Thank you for the method.

It works like a charm. I revised it to add a 3rd column (a value calculated
by the code) to the combobox and it still worked!

Another question:

Is there a property of a combo box which displays vertical lines between the
columns?

Larry
 
Thank you, Shah.

Larry

Shailesh Shah said:
Hi,

Another method to try,

Example from VBA Help & modified.

Private Sub UserForm_Initialize()
Dim mypath, myname

mypath = "c:\windows\" ' Set the path.
myname = Dir(mypath, vbDirectory) ' Retrieve the first entry.
With Me.ComboBox1
Do While myname <> "" ' Start the loop.
' Ignore the current directory and the encompassing
directory.
If myname <> "." And myname <> ".." Then
' Use bitwise comparison to make sure MyName is a Fileanme

If (GetAttr(mypath & myname) And vbDirectory) <>
vbDirectory Then

'Debug.Print MyName ' Display entry only if it
represents a filename
If UCase(Right(myname, 4)) = ".TXT" Then
.ColumnCount = 2
.AddItem myname
.List(.ListCount - 1, 1) = FileDateTime(mypath &
myname)
End If
End If
End If
myname = Dir ' Get next entry.
Loop
If .ListCount > 0 Then .ListIndex = 0
End With
End Sub



Regards,
Shah Shailesh
http://members.lycos.co.uk/shahweb/
 
Back
Top