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

in eigen map opslaan

Status
Niet open voor verdere reacties.

vrouw

Terugkerende gebruiker
Lid geworden
27 mrt 2010
Berichten
1.434
Hoi,

Ik wil een bestand in de eigen map (waarin die ook geopent is) opslaan.

Met deze wil het niet lukken:
Code:
ActiveWorkbook.SaveAs .Path & "\" & [B2] & [B3] & [AB5] & [C4] & ".xls"
en ook niet met deze:
Code:
ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & .[B2] & .[B3] & .[AB5] & .[C4] & ".xls"

hoe dan wel?
 
Laatst bewerkt door een moderator:
Kan jij niet zeggen gewoon opslaan diskette dus.(niet letterlijk zeggen.)
 
Vrouw,

Code:
Me.SaveAs (ActiveWorkbook.Path & "\" & [B2] & [B3] & [AB5] & [C4] & ".xls")
 
werkt helaas niet; foutmelding

Compile error:
Invalid use of Me keyword
 
Omdat het opslaan in de eigen map toch steeds weer problemen veroorzaakt (niet lukt)
wil ik dit ervan maken.
Code:
MkDir "C:\test"
    ThisWorkbook.SaveAs "C:\test\" & [B2] & [B3] & [AB5] & [C4] & ".xls"
dat gaat goed voor de eerste keer. maar bij een tweede keer als de map al bestaat komt er een foutmelding.
Er moet dus iets inkomen van "niet doen" als de map al bestaat.
 
Laatst bewerkt:
Code:
With Sheets(1)
    ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & .[B2] & .[B3] & .[AB5] & .[C4] & ".xls"
End With
 
En toch slaat die `m weer in de root van de C schijf op:eek:
 
Doe save as met het programma en doe de destenation waar jij hem wilt bij mij werkt die functie wel goed.
 
Het vervelende is dat destination iedere keer anders is. Dat is afhankelijk wie het bestand opent en waar hij/zij het heeft opgeslagen.
Dat leek het mij zo makkelijk als het bestand word opgeslagen daar waar het ook geopend is.
 
Vrouw,

Zo dan:

Code:
With Sheets(1)
    ThisWorkbook.SaveAs "D:\Temp\" & .[B2] & .[B3] & .[AB5] & .[C4] & ".xls"
End With

D kies hiervoor je gewenste schijf
Temp kies hiervoor je gewenste directory
 
Dank Superzeeuw:p

Nu is Temp natuurlijk niet zo`n mooie directory dus ik zat te denken aan mijn documenten om daar op te slaan.
Maar dan zit je natuurlijk weer met het probleem voor diegene die een engelstalige windows gebruiken en die map heet dan weer anders:shocked:

Is dat eventueel ook nog op te lossen?
 
Als je deze draait zou je het volledige pad moeten krijgen waarin jouw bestand opgeslagen is
Code:
Sub tst()
    MsgBox ThisWorkbook.Path
End Sub
Wat is bij jou het resultaat ?
 
Vrouw,

Er zijn en blijven altijd problemen.
Want stel dat jij het op de D-schijf wilt opslaan, leuk maar niet iedereen heeft een D-schijf.

Toch begrijp ik het probleem niet zozeer want de aangeboden oplossingen van Rudi en Mij leiden beide tot hetzelfde en toch stel jij dat het de eerste keer goed gaat en daarna niet meer?

Als het de eerste keer goed gaat en de tweede keer niet wat gebeurd er dan tussentijds?
 
Voorwaarde is natuurlijk wel dat het bestand eerst opgeslagen is vooraleer de code uit te voeren. Dan zie ik toch niet in wat er dan fout kan lopen met het vinden v/h juiste pad.
 
Het heeft geen zin partiële vragen te stellen; dan kunnen slechts partiële antwoorden gegeven worden.

.[B2] & .[B3] & .[AB5] & .[C4] & ".xls

van welk werkblad zijn dit de cellen ?
wat staat er in die cellen ?
werk je met Excel 2007 of niet ?
is het een gedeeld bestand ?
kunnen 2 verschillende mensen het bestand openen ?
wordt het bestand via een macro 2 maal geopend ?
Wat staat er nog meer in die macro ?
Waar staat (hoe heet) het bestand dat geopend wordt ?
Bevat het bestand nog meer macro's ?
Waarom gebruik je geen application.displayAlerts=False ?

Code:
ThisWorkbook.SaveAs replace(Application.DefaultFilePath & "\" & ThisWorkbook.Name,"\\","\")
 
Laatst bewerkt:
Als je deze draait zou je het volledige pad moeten krijgen waarin jouw bestand opgeslagen is
Code:
Sub tst()
    MsgBox ThisWorkbook.Path
End Sub
Wat is bij jou het resultaat ?

Sjabloon staat opgeslagen in D: My Documents en de code geeft als resultaat: leeg.
 
Vrouw,
Toch begrijp ik het probleem niet zozeer want de aangeboden oplossingen van Rudi en Mij leiden beide tot hetzelfde en toch stel jij dat het de eerste keer goed gaat en daarna niet meer?
Als het de eerste keer goed gaat en de tweede keer niet wat gebeurd er dan tussentijds?

Omdat bij een tweede keer de macro draaien de foutmelding:
Run-time erro '75': Path/File acces error komt.
 
Ja Hallo ! Nu wordt alles duidelijk
Sjabloon staat opgeslagen in D: My Documents
Dit gaat dus nooit lukken aangezien je van een sjabloon steeds een kopie opent(Logisch) en dit bestand is dus nooit opgeslagen in de beginfase. Je zal dus steeds een pad moeten hardcoderen in je code om je kopie op te slaan.
 
Laatst bewerkt:
Dan moet ik het dus toch met deze code in de sjabloon zetten.
Code:
MkDir "C:\test"
    ThisWorkbook.SaveAs "C:\test\" & [B2] & [B3] & [AB5] & [C4] & ".xls"
Maar dan krijg ik dus een foutmelding als de macro (bij een tweede keer openen van de sjabloon) weer een map test wil aanmaken als die al bestaat.
 
Dan zal je een controle moeten toevoegen om het bestaan van een file te controleren. Kijk hiervoor eens bij de methode Dir
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan