Ik heb dankzij hulp op dit forum onderstaande code gemaakt voor het automatisch opslaan van CSV-bestanden. De code kijkt in een bepaalde map en slaat daarvan alle bestanden op als tabblad in het Excel-bestand, behalve degene die er al in staan. Vervolgens vervangt hij in alle mappen de punten door komma's.
Nu staan er véél bestanden in de map en véél tabbladen in het Excel-bestand, dus de code duurt erg lang, omdat hij die hele rits gaat controleren. Hoe kan ik deze code sneller maken?
Kan ik de code aanpassen zodat hij alleen aanvult vanaf het laatste tabblad?
Kan ik de code zo aanpassen zodat hij alleen de punten in komma's verandert van het zojuist opgeslagen tabblad?
Nu staan er véél bestanden in de map en véél tabbladen in het Excel-bestand, dus de code duurt erg lang, omdat hij die hele rits gaat controleren. Hoe kan ik deze code sneller maken?
Kan ik de code aanpassen zodat hij alleen aanvult vanaf het laatste tabblad?
Kan ik de code zo aanpassen zodat hij alleen de punten in komma's verandert van het zojuist opgeslagen tabblad?
Code:
Sub Logbestanden()
Windows("Logbestanden.xlsx").Activate
c00 = "D:\Gebruikers\Boerlo\Documenten\Data\"
For Each sh In Sheets
c01 = c01 & sh.Name
Next sh
For Each it In Split(CreateObject("Wscript.Shell").Exec("cmd /c dir """ & c00 & "*.csv"" /b").StdOut.ReadAll, vbCrLf)
If it = "" Then GoTo Verder
If InStr(c01, Split(it, ".")(0)) = 0 Then
With GetObject(c00 & it)
.Sheets(1).Copy , After:=Workbooks("Logbestanden.xlsx").Sheets(Workbooks("Logbestanden.xlsx").Sheets.Count)
.Close 0
End With
End If
Next it
'Punt_naar_komma
For Each ws In Workbooks("Logbestanden.xlsx").Sheets
ws.UsedRange.Replace What:=".", Replacement:=","
Next ws
End Sub