Hallo allemaal,
Lange tijd geleden maar ik ben weer terug.
Ik ben druk bezig om door middel van visual basic meerdere excel files te importeren in 1 werkboek.
Al deze files hebben dezelfde opmaak en moeten in bladen achter elkaar komen te staan.
Ik heb de volgende VBA formule geschreven:
Sub CollectAll_Click()
On Error Resume Next
Application.DisplayAlerts = False
Application.EnableEvents = False
Dim fso, da, fld, fil As Object
Dim wb As Workbook
Dim ws As Worksheet
Dim Sh As String
Dim astrLinks As Variant
Set fso = CreateObject("Scripting.FileSystemObject")
da = Date - 1
Sh = Format(da, "dd mmm")
Ma = Format(da, "mm")
Best = Ma & " Pressco Analyse L2 - " & Sh & ".xlsx"
Dest = "\\C:\Documents and Settings\RvanHaar\My Documents\Importeren in dagrapportage\"
Application.ScreenUpdating = False
Set fld = fso.GetFolder(Dest)
For Each fil In fld.Files
If LCase(Left(fil.Name, 26)) = "turflijst lijn2 " & da Then
Set wb = Workbooks.Open(fil.Path)
Set ws = wb.Sheets(1)
With PressCollect
With wb.VBProject
awcl = .VBComponents(ws.CodeName).CodeModule.CountOfLines
.VBComponents(ws.CodeName).CodeModule.DeleteLines 1, awcl
End With
ws.Activate
ActiveWindow.ScrollRow = 1
ws.Protect
ws.Move After:=.Worksheets(.Worksheets.Count)
End With
wb.Close SaveChanges:=False
End If
Next
Set fil = Nothing
Set fld = Nothing
ActiveWorkbook.Sheets(2).Activate
ActiveWindow.ScrollRow = 1
TabCollect = Nothing
For I = 3 To Worksheets.Count + 1
ShNm = Sheets(I).Name
TabCollect = TabCollect & ShNm & "'!B4"
If I = Worksheets.Count + 1 Then GoTo Klr
TabCollect = TabCollect & "+'"
Klr:
Next I
PressCollect.SaveAs (Dest & Best), FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
VBA.FileSystem.SetAttr (Dest & Best), vbReadOnly
Application.ScreenUpdating = True
Set da = Nothing
If Workbooks.Count = 1 Then Application.Quit Else PressCollect.Close SaveChanges:=False
Application.EnableEvents = True
Application.ScreenUpdating = True
Einde:
End Sub
De functie gaat lopen maar hij voegt niet de werkbladen toe zoals ik wil...
Hoe moet het eruit komen te zien en wat moet hij doen?
Het is nu 25-6, hij moet alle gemaakte bestanden met de naam ''turflijst lijn2 24-06-2013'' sheet 1 samenvoegen in 1 werkboek met meerdere werkbladen.
De werkbladen moeten de naam uit de bestandsnaam krijgen; ''turflijst lijn2 24-06-2013_00-07" en dan namelijk de tijd 00-07 die er achter staat.
werkblad 1 en 2 zijn samenvattingsbladen in de file.
Zou iemand er eens naar kunnen/willen kijken wat hier fout gaat?
Bekijk bijlage Collector L2.xlsm
alvast heel erg bedankt,
Rick
Lange tijd geleden maar ik ben weer terug.
Ik ben druk bezig om door middel van visual basic meerdere excel files te importeren in 1 werkboek.
Al deze files hebben dezelfde opmaak en moeten in bladen achter elkaar komen te staan.
Ik heb de volgende VBA formule geschreven:
Sub CollectAll_Click()
On Error Resume Next
Application.DisplayAlerts = False
Application.EnableEvents = False
Dim fso, da, fld, fil As Object
Dim wb As Workbook
Dim ws As Worksheet
Dim Sh As String
Dim astrLinks As Variant
Set fso = CreateObject("Scripting.FileSystemObject")
da = Date - 1
Sh = Format(da, "dd mmm")
Ma = Format(da, "mm")
Best = Ma & " Pressco Analyse L2 - " & Sh & ".xlsx"
Dest = "\\C:\Documents and Settings\RvanHaar\My Documents\Importeren in dagrapportage\"
Application.ScreenUpdating = False
Set fld = fso.GetFolder(Dest)
For Each fil In fld.Files
If LCase(Left(fil.Name, 26)) = "turflijst lijn2 " & da Then
Set wb = Workbooks.Open(fil.Path)
Set ws = wb.Sheets(1)
With PressCollect
With wb.VBProject
awcl = .VBComponents(ws.CodeName).CodeModule.CountOfLines
.VBComponents(ws.CodeName).CodeModule.DeleteLines 1, awcl
End With
ws.Activate
ActiveWindow.ScrollRow = 1
ws.Protect
ws.Move After:=.Worksheets(.Worksheets.Count)
End With
wb.Close SaveChanges:=False
End If
Next
Set fil = Nothing
Set fld = Nothing
ActiveWorkbook.Sheets(2).Activate
ActiveWindow.ScrollRow = 1
TabCollect = Nothing
For I = 3 To Worksheets.Count + 1
ShNm = Sheets(I).Name
TabCollect = TabCollect & ShNm & "'!B4"
If I = Worksheets.Count + 1 Then GoTo Klr
TabCollect = TabCollect & "+'"
Klr:
Next I
PressCollect.SaveAs (Dest & Best), FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
VBA.FileSystem.SetAttr (Dest & Best), vbReadOnly
Application.ScreenUpdating = True
Set da = Nothing
If Workbooks.Count = 1 Then Application.Quit Else PressCollect.Close SaveChanges:=False
Application.EnableEvents = True
Application.ScreenUpdating = True
Einde:
End Sub
De functie gaat lopen maar hij voegt niet de werkbladen toe zoals ik wil...
Hoe moet het eruit komen te zien en wat moet hij doen?
Het is nu 25-6, hij moet alle gemaakte bestanden met de naam ''turflijst lijn2 24-06-2013'' sheet 1 samenvoegen in 1 werkboek met meerdere werkbladen.
De werkbladen moeten de naam uit de bestandsnaam krijgen; ''turflijst lijn2 24-06-2013_00-07" en dan namelijk de tijd 00-07 die er achter staat.
werkblad 1 en 2 zijn samenvattingsbladen in de file.
Zou iemand er eens naar kunnen/willen kijken wat hier fout gaat?
Bekijk bijlage Collector L2.xlsm
alvast heel erg bedankt,
Rick