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

Sheet opslaan als

Status
Niet open voor verdere reacties.

nanjo

Gebruiker
Lid geworden
10 sep 2006
Berichten
28
Hallo allemaal,

ik zit even vast met excel. Wat is het probleem? Ik wil van een bestand waarin een aantal macro's zitten een kopie maken van de data op een worksheet (blad1). Ik gebruik hiervoor de volgende macro die bij afsluiten een kopie van blad1 opslaat als een bestand.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets(1).Copy
ActiveWorkbook.SaveAs "c:\test.xls"
ActiveWorkbook.Close savechanges:=False
ThisWorkbook.Save
End Sub

Als je de macro stap voor stap uitvoert dan zie je dat als sheets(1).copy gedaan wordt, er een nieuw bestand wordt aangemaakt met de naam map1.xls. Dit kan ook een ander nummer hebben, afhankelijk van wat je op dat moment al in excel hebt gedaan. Het gaat echter soms fout bij de opdracht activeworkbook.SaveAs......
Het komt namelijk voor dat dan in plaats van map1.xls het bronbestand wordt opgeslagen als c:\test.xls. Kennelijk wordt dan map1.xls dan niet automatisch geselecteerd.
Waarom dit de ene keer wel misgaat en de andere keer niet, is mij nog niet helemaal duidelijk. Ik zoek de oplossing in de mogelijkheid om bij de opdracht sheets(1).copy een naam te kunnen meegeven aan het nieuwe bestandje dat wordt gegenereerd (map1.xls). Daarna zou je dan namelijk heel gericht dat workbook kunnen selecteren en opslaan als test.xls. Ik heb echter nog geen mogelijkheid gevonden om ipv map1.xls een andere naam te genereren vanuit sheets(1).copy Wie weet er raad?

:shocked: Nanjo
 
Het zal toch zaak zijn om na te gaan wanneer en waarom dat bestand niet geactiveerd wordt. Ik heb er om eerlijk te zijn, het raden naar.
 
Het zal toch zaak zijn om na te gaan wanneer en waarom dat bestand niet geactiveerd wordt. Ik heb er om eerlijk te zijn, het raden naar.

Ik heb dit de afgelopen dagen bekeken, maar kan er nog geen vinger achter krijgen. Dacht eerst dat het ontstond als je ook een ander bestand open had staan, maar dat bleek niet het geval te zijn. Het probleem zou al verholpen zijn als:
- je het niewe bestand waarvan de naam automatisch wordt gegenereerd kunt selecteren
- je deze naam ergens zou kunnen instellen.

ondertussen zoek ik natuurlijk ook verder voor een andere workaround.

Nanjo
 
tip

via mijn vraag en de tips die ik daar kreeg misschien een idee om het als volgt op te lossen:

http://www.helpmij.nl/forum/showthread.php?t=292995

schrijf een macro die in 1e instantie jou bestand opslaat,
vervolgens jou data copieert (met alleen de waarden) naar een nieuw werkblad in je huidige werkmap.
vervolgens alle oude werkbladen verwijderd en het bestand dan onder een nieuwe naam opslaat.

Hiermee is volgens mij het probleem omzeilt waar je tegen aan loopt.

Hugo
 
via mijn vraag en de tips die ik daar kreeg misschien een idee om het als volgt op te lossen:

http://www.helpmij.nl/forum/showthread.php?t=292995

schrijf een macro die in 1e instantie jou bestand opslaat,
vervolgens jou data copieert (met alleen de waarden) naar een nieuw werkblad in je huidige werkmap.
vervolgens alle oude werkbladen verwijderd en het bestand dan onder een nieuwe naam opslaat.

Hiermee is volgens mij het probleem omzeilt waar je tegen aan loopt.

Hugo

Hugo,
ik heb dat geprobeerd, maar dan blijft het vba-script dat in "workbook" staat gewoon actief, en dat zorgt voor conflicten. Heeft me wel op een ander idee gebracht, dat ik ga uittesten. Ik maak gewoon een nieuw bestand aan en sla dat op onder bijvoorbeel de naam test.xls. Vanuit VBA laat ik dit bestand openen en de inhoud wissen. Daarna copy/paste ik de inhoud naar dit bestand en sla het op. Ik laat hier nog weten of dit werkt.

Anyway, bedankt voor het meedenken.

Nanjo
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan