Bat file uitvoeren met VBA

Status
Niet open voor verdere reacties.

amstelbier

Gebruiker
Lid geworden
9 feb 2015
Berichten
6
Goedemiddag,

Bij het openen van een excel bestand wil ik graag dat excel een bat file uitvoert. deze bat file verwijderd een CSV file en maakt vervolgens een nieuwe aan.

de huidige situatie is nu datbBij het openen van Excel krijg ik wel het MS-dos venster van de bat file echter maakt de bat file niet het nieuwe CSV bestand aan. Als ik zelf klik op het bat bestand werkt hij naar behoren en maakt hij dus wel een CSV file aan..

Kunnen jullie mij helpen?

bat bestand is dit:

REM Deze bat-file concateneert alle csvfiles in deze directory

REM verwijder eerst bestaande concat.csv bestand
del concat.csv

REM maak nu nieuw concat.csv bestand aan
copy *.csv concat.csv

VBA is nu dit:
Dim RetVal
RetVal = Shell("V:\csv_concat.bat", vbNormalFocus)

End Sub

waarschijnlijk vergeet ik een stapje :)


thx voor de hulp!
 
Hoi Edmoor,

omdat ik totaal geen verstand heb van VBA. de bedoeling is dat de bat file alle 4 CSV bestanden in 1 CSV onder elkaar plakt. als jij mij kunt vertellen hoe ik dat doe in VBA ben ik natuurlijk 1x geholpen.

ik zie dat je een aantal linkjes hebt meegestuurd, ik heb alleen geen idee hoe ik alle 4 bron bestanden in 1x moet kopiëren in het andere bestand.

ik hoop dat je me kan helpen.
 
Ik zal vanavond een voorbeeld voor je maken. Heb jij een voorbeeld van 1 zo'n .csv bestand?
 
Kan ik je helaas niet sturen ivm vertrouwelijke informatie. Dit betreft bron bestanden voor voorraadlijsten van meerdere BV's. deze bron bestanden moeten 1 bestand worden zodat er een draaitabel opgemaakt kan worden. een draaitabel kan namelijk maar 1 bronbestand hebben en geen 4 :)

alvast enorm bedankt voor je hulp!
 
Code:
Sub M_snb()
   kill "V:\concat.csv"
   createobject("wscript.shell").exec "cmd /c copy ""V:\*.csv"" V:\concat.csv"
End sub

Nu kun je het bestaande .bat bestand ook wel verwijderen.
 
Laatst bewerkt:
hoi snb,

op deze manier kopieer je toch maar 1 CSV bestand naar concat.csv? hoe geef ik aan dat hij ze alle 4 moet doen?
 
Deze doet dat wel:
Code:
Sub CSVconcat()
    Kill "V:\concat.csv"
    Shell Environ$("COMSPEC") & " /c Copy V:\*.csv V:\concat.csv "
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan