Y
Yarroll
Hi,
Could someone please help me with the following macro?
A folder contains lots of .csv files along with corresponding .xls files
(file names are identical, except for the extension). The macro is supposed
to open the xls file, open corresponding csv file, copy contents from csv to
user-defined (Input box) sheet in xls, save and close, then goes to the next
pair.
The trouble seems to be with the line: also marked below:
nam_0 = Left(nam_1, InStr(1, nam_1, ".csv") - 1)
- where Excel says "Invalid procedure call or argument", but I have no clue
why that would be so.
Please help,
Best, Yarroll
Sub Tester3()
Dim nam_0 As String, nam_1 As String, nam_2 As String
Dim plik As Workbook
Dim i As Integer
Dim myVal As Variant
With Application.FileSearch
.NewSearch
.LookIn = "g:\test"
.SearchSubFolders = False
.FileName = "*.csv"
If .Execute() > 0 Then
For i = 1 To .FoundFiles.Count
nam_1 = .FoundFiles(i)
nam_0 = Left(nam_1, InStr(1, nam_1, ".csv") - 1)
nam_2 = nam_0 & ".xls"
If Dir(nam_2) = "" Then
MsgBox ("No file: " & nam_2)
Else
Set plik = Workbooks.Open(nam_2)
myVal = Application.InputBox("Which sheet this time: ")
If myVal <> False Then
With Workbooks.Open(nazwa_1)
.Worksheets(1).Cells.Copy Destination:= _
plik.Worksheets(myVal).Cells
.Close
End With
plik.Save
End If
plik.Close
End If
Next
Else
MsgBox "No files to process"
End If
End With
Set plik = Nothing
End Sub
Could someone please help me with the following macro?
A folder contains lots of .csv files along with corresponding .xls files
(file names are identical, except for the extension). The macro is supposed
to open the xls file, open corresponding csv file, copy contents from csv to
user-defined (Input box) sheet in xls, save and close, then goes to the next
pair.
The trouble seems to be with the line: also marked below:
nam_0 = Left(nam_1, InStr(1, nam_1, ".csv") - 1)
- where Excel says "Invalid procedure call or argument", but I have no clue
why that would be so.
Please help,
Best, Yarroll
Sub Tester3()
Dim nam_0 As String, nam_1 As String, nam_2 As String
Dim plik As Workbook
Dim i As Integer
Dim myVal As Variant
With Application.FileSearch
.NewSearch
.LookIn = "g:\test"
.SearchSubFolders = False
.FileName = "*.csv"
If .Execute() > 0 Then
For i = 1 To .FoundFiles.Count
nam_1 = .FoundFiles(i)
nam_0 = Left(nam_1, InStr(1, nam_1, ".csv") - 1)
nam_2 = nam_0 & ".xls"
If Dir(nam_2) = "" Then
MsgBox ("No file: " & nam_2)
Else
Set plik = Workbooks.Open(nam_2)
myVal = Application.InputBox("Which sheet this time: ")
If myVal <> False Then
With Workbooks.Open(nazwa_1)
.Worksheets(1).Cells.Copy Destination:= _
plik.Worksheets(myVal).Cells
.Close
End With
plik.Save
End If
plik.Close
End If
Next
Else
MsgBox "No files to process"
End If
End With
Set plik = Nothing
End Sub