ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Set Cell Value (https://www.excelbanter.com/excel-programming/363724-set-cell-value.html)

[email protected]

Set Cell Value
 
Hi,

I'm new to this. Would appreciate advice on the following issue about a
macro in VB:

I want to loop through a folder and get all the file names in the
folder. Then I will then set the cell values on "C" column in "Sheet2"
to these file names. What's the correct syntax for setting the cell
values?

I'm looking for something like:

Dim i As Integer
i = 1
For Each fileName In fileNames
i++;
Sheet2.Cell(i,3).value = fileName;

Next

Clearly this doesn't work because the syntax is not correct. Any input?
Many thanks!

-Emily


Jim Thomlinson

Set Cell Value
 
Since you seem to ahve some fimiliarty with C/C++ syntax I will assume that
you have some familiarity with programming. My recommendation would be to
look in the help at File System Objects (fso). They can do everything you
need. Here is some code that I use. It looks at folders and subfolders(if you
want). It requires a reference to "Microsoft Scripting Runtime"

Option Explicit
Option Compare Text

Sub test()
Call ListFiles("G:\Management", Sheet4.Range("A2"), "dbq", True)
End Sub

Public Sub ListFiles(ByVal strPath As String, _
ByVal rngDestination As Range, Optional ByVal strFileType As String = "*", _
Optional ByVal blnSubDirectories As Boolean = False)
Dim objFSO As Scripting.FileSystemObject
Dim objFolder As Scripting.Folder
Dim objFile As Scripting.File
Dim strName As String

'Specify the file to look for...
strName = "*." & strFileType
Set objFSO = New Scripting.FileSystemObject
Set objFolder = objFSO.GetFolder(strPath)

For Each objFile In objFolder.Files
If objFile.Name Like strName Then
rngDestination.Value = objFile.Path
rngDestination.Offset(0, 1).Value = objFile.DateLastAccessed
Set rngDestination = rngDestination.Offset(1, 0)
End If
Next 'objFile
Set objFile = Nothing

'Call recursive function
If blnSubDirectories = True Then _
DoTheSubFolders objFolder.SubFolders, rngDestination, strName

Set objFSO = Nothing
Set objFolder = Nothing
End Sub


Function DoTheSubFolders(ByRef objFolders As Scripting.Folders, _
ByRef rng As Range, ByRef strTitle As String)
Dim scrFolder As Scripting.Folder
Dim scrFile As Scripting.File
Dim lngCnt As Long

On Error GoTo ErrorHandler
For Each scrFolder In objFolders
For Each scrFile In scrFolder.Files
If scrFile.Name Like strTitle Then
rng.Value = scrFile.Path
rng.Offset(0, 1).Value = scrFile.DateLastAccessed
Set rng = rng.Offset(1, 0)
End If
Next 'scrFile

'If there are more sub folders then go back and run function again.
If scrFolder.SubFolders.Count 0 Then
DoTheSubFolders scrFolder.SubFolders, rng, strTitle
End If
ErrorHandler:
Next 'scrFolder

Set scrFile = Nothing
Set scrFolder = Nothing
End Function
'-------------------
--
HTH...

Jim Thomlinson


" wrote:

Hi,

I'm new to this. Would appreciate advice on the following issue about a
macro in VB:

I want to loop through a folder and get all the file names in the
folder. Then I will then set the cell values on "C" column in "Sheet2"
to these file names. What's the correct syntax for setting the cell
values?

I'm looking for something like:

Dim i As Integer
i = 1
For Each fileName In fileNames
i++;
Sheet2.Cell(i,3).value = fileName;

Next

Clearly this doesn't work because the syntax is not correct. Any input?
Many thanks!

-Emily




All times are GMT +1. The time now is 05:17 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com