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

Opslaan met macro

Status
Niet open voor verdere reacties.

rolfbrouwer

Gebruiker
Lid geworden
15 mrt 2013
Berichten
34
Beste mensen,

Via een messagebox-vraag wil ik, n.a.v. het gegeven antwoord, mijn huidige workbook opslaan als nieuw bestand. b.v.: mijn bestand heet b.v. auto_2015.xls.
Ik wil middels een vraag: "geef nieuw jaartal:" het volgende bereiken. Bij invoer van b.v. 2016, moet het huidige bestand opgeslagen worden als auto_2016.xls.
Maar hoe definieer ik die variabele (uitkomst van "geef nieuw jaartal" - in dit geval 2016) zodat deze gebruikt kan worden als deel van de (op te slagen) bestandsnaam.

Groet,

Rolf
 
Code:
Sub macro1()
Dim jaartal As Integer
jaartal = InputBox("Geef nieuw jaartal")
ActiveWorkbook.SaveAs Filename:= _
"C:\Hier het volledige pad\Auto_" & jaartal & ".xlsm", FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub
 
iets in deze vorm?
Code:
Sub VenA()
    myfile = "auto_" & InputBox("Geef jaar op: ", "Nieuw jaar")
    MsgBox myfile
End Sub
 
Beste zapatr en VenA,

Dank voor jullie snelle bericht. Ben nu helaas niet in staat om e.e.a. te testen, maar ik denk dat ik het meeste heb aan zapatr en morgen ga ik er even voor zitten. Kan ik overigens het resultaat van de inputbox (dus jaartal) ook nog verder gebruiken, om b.v. in diverse cellen in de diverse tabbladen dat jaartal weer te geven?

Groet,

Rolf
 
In dezelfde macro kun je jaartal zonder meer blijven gebruiken. Als je op de vraag naar een jaartal bv. 2015 hebt ingevoerd, dan behoudt jaartal die waarde totdat je er in die macro een andere waarde aan geeft. Wil je in een andere macro de waarde blijven gebruiken die je er in de eerste macro aan gegeven hebt, dan kun je er best een public variabele van maken. Plaats dan bovenaan in een module (buiten de macro's): Public jaartal as integer .
 
Beste zapatr,

Heel, heel veel dank. Dit is precies wat ik bedoelde, het opslaan onder een nieuw jaar. Alleen zou ik graag, nadat het nieuwe jaar is opgeslagen, de " jaarwaarde" (buiten de macro om, deze is dus niet meer actief) ook willen gebruiken op in de diverse tabbladen dat jaartal te gebruiken. Hoe pak ik dat aan???
Alvast wederom veel dank.

Groet, Rolf
 
Dit soort vragen kan je beter stellen met een voorbeeldbestandje. Je kan dit denk ik het beste doen voor het opslaan van het het bestand. Stel in Blad1!A1 staat 2015. Je wil daar waarschijnlijk 2016 hebben staan?

De code wordt dan (even die zapatr gebruikt.)

Code:
Sub macro1()
Dim jaartal As Integer
jaartal = InputBox("Geef nieuw jaartal")
sheets("Blad1").Range("A1") = jaartal
ActiveWorkbook.SaveAs Filename:= _
"C:\Hier het volledige pad\Auto_" & jaartal & ".xlsm", FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub
 
Rolf,
De waarde van jaartal opslaan in een cel (zoals VenA aangeeft) lijkt mij ook het beste wat je kunt doen, want de waarde eraan toegekend in een macro blijft in de macro niet bewaard. Na opslaan van het bestand ben je die kwijt en in een cel blijft die waarde wel bewaard. Maar als ik je goed begrijp wil je graag voor die waarde het woord jaartal kunnen blijven gebruiken. Dat kan ook, je moet dan de cel waarin je het jaartal opslaat (dat kan om het even welke cel zijn) een naam geven. Selecteer daarvoor de cel waarin het jaartal staat of komt te staan, plaats de cursor in het witte vak links van de formulebalk (boven de A-kolom), wis wat daar staat en schrijf er voor in de plaats: jaartal (of om het even welke andere naam die je aan die cel wil geven); druk daarna op Enter. Als dat gebeurd is kun je op elke plaats in je bestand (dus ook op andere bladen) die naam gebruiken. Je typt dan in een cel: =jaartal en het jaartal dat in de cel met die naam staat wordt dan weergegeven.
 
Laatst bewerkt:
WAT ZIJN JULLIE GOED !!!!! Geweldig bedankt. Precies wat ik zocht.

Groet, Rolf
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan