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

File _opslaan_in _bepaalde _directory_mbv_macro

Status
Niet open voor verdere reacties.

bertvanmaaren

Gebruiker
Lid geworden
13 nov 2007
Berichten
12
Ik probeer een worksheet op te slaan met een naam bepaald in de sheet, in een nog te maken directory, ook bepaald in de sheet. Opzich is het opslaan van de sheet met die naam het probleem nog niet, maar om hem op te slaan in een directory bepaald in de sheet. Stel ik heb in de sheet in cel d3 een klantnaam staan en in cel d5 een plaatsnaam, dan wil ik een directory maken met die plaatsnaam, waarna ik in deze directory de sheet opslaan met klant gevolgd door het jaartal (uit a2), als filename.
Ben zelf al aardig aan het puzzelen geweest en heb het volgende resultaat bereikt:

#
public klant as string
public plaats as string
public jaar as integer
________________________________________________

Sub opslaan()

klant = range("d3").value
jaar = range("a2").value
plaats = range("d5").value

ChDir "c:\klanten\" & plaats

On Error GoTo FoutAfhandeling

Exit Sub
FoutAfhandeling
ChDir "c:\klanten\"
MkDir "plaats"
Resume Next

Filename1 = "c:\klanten\" & plaats & "\" & "klant" & "jaar"

ChDir "c:\klanten\" & plaats & "\"
ActiveSheet.SaveAs Filename1

End Sub

#

Het opslaan op zich gaat goed, dat gebruik ik in een aantal macro's met succes. Het probleem ligt bij het maken van een directory (of eerst de controle of die directory al bestaat, zo niet, dan maken).

Wie kan mij hiermee (opweg) helpen?

Bert van Maaren :(
 
Laatst bewerkt:
Een check om te zien of een directory bestaat kan als volgt:

Code:
If Len(Dir("c:\test", vbDirectory)) = 0 Then
    MkDir "c:\test"
End If

In deze code wordt de dir aangemaakt indien deze niet zou bestaan.

Verder zou ik die saveas niet aanroepen vanaf een worksheet, maar vanaf de workbook.
Voor alle veiligheid is het misschien beter om bovenaan een workbook variabele aan te maken, en dan daar het huidige workbook in op te slaan.

bv.

Code:
Dim wbOmOpTeSlaan as Workbook

set wbOmOpTeSlaan=ThisWorkbook

Nog vragen, shoot :p

edit: strings plaats je tussen "" tekens, maar variabelen niet. Omdat je plaats als variabele wilt gebruiken, en niet als string "plaats", dien je mkdir plaats te gebruiken ipv mkdir "plaats"
edit 2: Wigi was enkele seconden voor met het plaatsen van deze opmerking. Note to myself: in het vervolg dadelijk vermelden :p
 
Laatst bewerkt:
En doe eens

Code:
MkDir plaats

ipv.

Code:
MkDir "plaats"

Wigi
 
Bert,

als je code plaatst, kan je die dan tussen code tags plaatsen aub? Dat is het # icoontje.
 
Dank aan allen

Mijn hartelijke dank aan de heren die bijgedragen hebben aan het oplossen van mijn 'probleem'. Heb van alle tips en aanwijzingen een (naar mijn idee) goed werkend macro in elkaar gezet, met van een ieder een stukje. M.a.w. een beetje van mezelf en een beetje van: Finch & Wigi.
:thumb:Zie hieronder het resultaat (ik heb de variabelen eerst in de sheet bepaald):

#
Sub opslaan()

klant = Range("D3").Value
ruimte = Range("K6").Value
jaar = Range("U3").Value
pad = Range("U4").Value
lengte = Range("U5").Value


If Len(Dir(pad, lengte)) <> 0 Then
MkDir pad
End If

ChDir pad

Filename1 = pad & "\" & ruimte

ActiveWorkbook.SaveAs Filename1

End Sub
#
:thumb: :thumb: :love: :D :) ;) :cool: :thumb:
 
Hihihihi... Bert, hij bedoelt de knop-# en niet zelf deze teken plaatsen. Als je het handmatig wilt doen, den gebruik je [code ] jouw verhaal.... [ /code]
de spaties uiteraard verwijderen uit [....]
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan