• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Bestanden samenvoegen

Status
Niet open voor verdere reacties.

Timshel

Terugkerende gebruiker
Lid geworden
14 feb 2015
Berichten
1.927
Beste mensen,

Ik gebruik dit script om excelbestanden samen te voegen die bij elkaar in een map staan:
Code:
Sub VoegSamen()    Dim Br
    
    For Each Br In Split(CreateObject("Wscript.Shell").Exec("cmd /c dir [COLOR=#ff0000]H:\Fouten\*.xls[/COLOR] /b/s").StdOut.ReadAll, vbCrLf)
        With GetObject(Br)
            .Sheets(1).Cells(1).CurrentRegion.Offset(1).Copy ThisWorkbook.Sheets("FACTUURREGEL_303").Cells(Rows.Count, 1).End(xlUp).Offset(1)
            .Close False
        End With
    Next
End Sub
De routine werkt als een speer maar gaat de mist in als de map met bestanden een naam heeft die een of meer spaties bevat, bv "I:\Bestanden inkoop". Ik kom er niet uit. Weet iemand hier een oplossing voor?
 
einfach so:

Code:
For Each Br In Split(CreateObject("Wscript.Shell").Exec("cmd /c dir ""H:\Fouten\*.xls"" /b/s").StdOut.ReadAll, vbCrLf)

en sneller zo:

Code:
Sub VoegSamen()
  For Each Br In Split(CreateObject("Wscript.Shell").Exec("cmd /c dir ""[COLOR=#ff0000]H:\Fouten\*.xls[/COLOR]"" /b/s").StdOut.ReadAll, vbCrLf)
     With GetObject(Br)
       with  .Sheets(1).Cells(1).CurrentRegion.Offset(1)
        ThisWorkbook.Sheets("FACTUURREGEL_303").Cells(Rows.Count, 1).End(xlUp).Offset(1).resize(.rows.count,.columns.count)=.Value
       end with
       .Close 0
     End With
  Next
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan