tijmen_4real
Gebruiker
- Lid geworden
- 20 apr 2005
- Berichten
- 338
Hoi,
Via deze code zoek ik in een map naar bestanden. De VBA-code is nu:
Dit werkt prima voor de bestanden die direct in die map staan, maar ik wil graag dat er ook in onderliggende mappen gezocht wordt, als in "locatie\map\map1", "locatie\map\map2", etc.
Welke VBA-code is hier aanvullend voor nodig?
Groet,
Tijmen
Via deze code zoek ik in een map naar bestanden. De VBA-code is nu:
Code:
Sub MergeAllWorkbooks()
Dim SummarySheet As Worksheet
Dim FolderPath As String
Dim NRow As Long
Dim FileName As String
Dim WorkBk As Workbook
Dim SourceRange As Range
Dim DestRange As Range
Dim datumAanmaak As Range
Dim oFS As Object
Dim creationDate As String
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
Set SummarySheet = ThisWorkbook.Worksheets(1)
Set oFS = CreateObject("Scripting.FileSystemObject")
FolderPath = "locatie\map"
NRow = 3
FileName = Dir(FolderPath & "*.xlsm*")
Do While FileName <> ""
Set WorkBk = Workbooks.Open(FolderPath & FileName)
'Z-nummer
SummarySheet.Range("A" & NRow).Value = "Z-" & WorkBk.Worksheets(1).Range("D1")
'naam grondstof
Set SourceRange = WorkBk.Worksheets(1).Range("D6")
'Datum document aangemaakt
SummarySheet.Range("C" & NRow).Value = oFS.GetFile(WorkBk.FullName).DateCreated
'deel A ondertekend
If WorkBk.Worksheets(1).Range("R29").Value = "" Then
SummarySheet.Range("D" & NRow).Value = "X"
Else: SummarySheet.Range("D" & NRow).Value = "V"
End If
'deel B ondertekend
If WorkBk.Worksheets(1).Range("R37").Value = "" Then
SummarySheet.Range("E" & NRow).Value = "X"
Else: SummarySheet.Range("E" & NRow).Value = "V"
End If
'deel C ondertekend
If WorkBk.Worksheets(1).Range("R51").Value = "" Then
SummarySheet.Range("F" & NRow).Value = "X"
Else: SummarySheet.Range("F" & NRow).Value = "V"
End If
'deel D ondertekend
If WorkBk.Worksheets(1).Range("R75").Value = "" Then
SummarySheet.Range("G" & NRow).Value = "X"
Else: SummarySheet.Range("G" & NRow).Value = "V"
End If
'deel E ondertekend
If WorkBk.Worksheets(1).Range("R115").Value = "" Then
SummarySheet.Range("H" & NRow).Value = "X"
Else: SummarySheet.Range("H" & NRow).Value = "V"
End If
'deel F ondertekend
If WorkBk.Worksheets(1).Range("R133").Value = "" Then
SummarySheet.Range("I" & NRow).Value = "X"
Else: SummarySheet.Range("I" & NRow).Value = "V"
End If
'deel G ondertekend
If WorkBk.Worksheets(1).Range("R162").Value = "" Then
SummarySheet.Range("J" & NRow).Value = "X"
Else: SummarySheet.Range("J" & NRow).Value = "V"
End If
'deel H ondertekend
If WorkBk.Worksheets(1).Range("R173").Value = "" Then
SummarySheet.Range("K" & NRow).Value = "X"
Else: SummarySheet.Range("K" & NRow).Value = "V"
End If
'deel I ondertekend
If WorkBk.Worksheets(1).Range("R181").Value = "" Then
SummarySheet.Range("L" & NRow).Value = "X"
Else: SummarySheet.Range("L" & NRow).Value = "V"
End If
'deel J ondertekend
If WorkBk.Worksheets(1).Range("R186").Value = "" Then
SummarySheet.Range("M" & NRow).Value = "X"
Else: SummarySheet.Range("M" & NRow).Value = "V"
End If
'deel K ondertekend
If WorkBk.Worksheets(1).Range("R193").Value = "" Then
SummarySheet.Range("N" & NRow).Value = "X"
Else: SummarySheet.Range("N" & NRow).Value = "V"
End If
Set DestRange = SummarySheet.Range("B" & NRow)
Set DestRange = DestRange.Resize(SourceRange.Rows.Count, _
SourceRange.Columns.Count)
DestRange.Value = SourceRange.Value
NRow = NRow + DestRange.Rows.Count
WorkBk.Close SaveChanges:=False
FileName = Dir()
Loop
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Welke VBA-code is hier aanvullend voor nodig?
Groet,
Tijmen
Laatst bewerkt: