• 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.

data laden en opslaan met vba

Status
Niet open voor verdere reacties.

Excelebeginner

Gebruiker
Lid geworden
21 apr 2020
Berichten
15
Hallo,

ik heb op dit moment een vba script waarbij ik bestandsnamen inlaad uit een bepaalde map, dan een aantal tussen stappen en op het einde exporteer ik het eind resultaat als een .csv bestand.
op dit moment zien die stukken code er zo uit:

With CreateObject("scripting.filesystemobject").GetFolder("C:\Users\thier\OneDrive\Documenten\macro yannick\IMG")
For Each fl In .Files
If Right(fl.Name, 4) = ".jpg" Then Cells(Rows.Count, 1).End(xlUp).Offset(1) = fl.Name
Next

dit werkt goed als de bestandsnaam op dezelfde plek staat maar de bedoeling is uiteindelijk dat ik 1 map stuur met in die map mijn macro bestand en nog een map genaamd IMG, die IMG map zal altijd dezelfde naam hebben. De macro zal dan geopend worden, de bestandsnamen zullen dan ingeladen worden uit die map en het .csv zal dan opgeslagen moeten worden in diezelfde map.


hetzelfde geld voor voor het opslaan, hier heb ik :

ActiveWorkbook.SaveAs Filename:="C:\Users\thier\OneDrive\Documenten\macro yannick\" & _
SaveName & ".csv", _
FileFormat:=xlCSV, CreateBackup:=False, local:=True

ook hier zou die naar de map moeten verwijzen waar het macro bestand in staat ongeacht waar die map op staat geslagen.

kan iemand mij hiermee helpen.
 

Bijlagen

Code:
ActiveWorkbook.SaveAs Filename:= ThisWorkbook.Path &  _
SaveName & ".csv", _
FileFormat:=xlCSV, CreateBackup:=False, local:=True
 
ik heb dit in de code gezet maar ik zie het bestand er niet bij verschijnen. ik krijg overigens geen foutmelding dat de code niet werkt, hij lijkt wel een nieuwe sheet te openen en die weer te sluiten maar ook als ik op de bestandsnaam zoek op deze pc krijg ik geen resultaten. Enig idee waar dit aan kan liggen.
 
Update:

ik denk dat ik weet misschien waar het aan ligt, de code open een nieuw werkblad, kopieert daarin data uit het werkblad waar de macro instaat en moet die opslaan voordat die weer terug gaat naar het het werkblad met de macro. De code verwijst naar thisworkbook.path maar het nieuwe werkblad heeft nog geen path want is nog niet opgeslagen. hij zou moeten verwijzen naar het path van het werkblad waar de macro in staat.

ik denk dat dit het probleem is maar ik ben nog een beginner op het gebied van vba code
 
Je kunt met Application.ActiveWorkbook.Path de pad waar de workbook waaruit de macro wordt gestart ophalen.
b.v:
Dim locatiePad As String
locatiePad = Application.ActiveWorkbook.Path
Deze kun je dan (later) weer gebruiken om het nieuwe workbook daar (of in een map daar: locatiePad & "\MapNaam" & ....) op te slaan.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan