Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

automatisch bestandsnaam toewijzen vanuit een cel in excel

6,703 views
Skip to first unread message

arieen...@hotmail.com

unread,
Jun 28, 2006, 1:17:38 PM6/28/06
to
Hoi,
Ik heb een excel document (formulier) met diverse formules. Dit bestand
heb ik als een alleen lezen bestand opgeslagen. Nu wil ik wanneer ik
dit formulier invult dat deze automatisch een bestandsnaam toegewezen
krijgt vanuit een cel in ditzelfde bestand.
Voorbeeld: In Cel A2 vul ik 520001 in en in cel A4 vul ik 22306 in.
Deze nr veranderen bij elke nieuwe invoer van het formulier (het alleen
lezen formulier)
Wanneer ik het alleen lezen formulier wil opslaan zou deze een nieuwe
bestandsnaam moeten krijgen en wel het getal van cel A2 en cel A4. Nu
kan ik deze cellen wel laten samenvoegen maar ik wil dat dit dan gelijk
overgenomen wordt in de nieuwe bestandsnaam.
Wie kan mij helpen?

Ikke

unread,
Jun 28, 2006, 2:16:00 PM6/28/06
to
Beste Arie en Gerrie,

dan zul je je moeten wagen aan VBA. Je zult alleen eerst een keuze moeten
maken op welk moment het bestand opgeslagen moet worden. Is dat enkel als
beide cellen gevuld zijn? Dit kan met een event macro.
Wil je het bestand opslaan middels een knop "Opslaan"?
En hoe wil je omgaan met bestaande bestandnamen. Wil je die dan
overschrijven?

Je ziet dat de vraag van jou bij mij meer vragen oproept.
De eerste stap die je in ieder geval moet zetten is de stap naar VBA.
Ik zou zeggen neem eens een macro op en bekijk de code. Dan kom je in ieder
geval in de vba editor. Van daaruit kun je verder gaan.

De code voor een macro die aan een knop gekoppeld kan worden is:

Sub Opslaan()
Pad = ActiveWorkbook.Path & "\"
If Range("Blad1!A2") <> "" And Range("Blad1!A4") <> "" Then
Naam = "Blad1!A2" & "Blad1!A4"
ActiveWorkbook.SaveAs Pad & Naam
Else
MsgBox "De naam van het bestand is nog niet compleet!", vbCritical
End If
End Sub


Maurrieske

<arieen...@hotmail.com> schreef in bericht
news:1151515058.4...@y41g2000cwy.googlegroups.com...

arieen...@hotmail.com

unread,
Jun 28, 2006, 2:52:46 PM6/28/06
to
De bestandsnaam moet niet overschreven worden. het is de bedoeling om
de verschillende bestanden in dezelfde map te bewaren.
Wanneer opslaan? Ik denk zelf dat het beste is om eerst een
Tekst.Samenvoegen te gebruiken in bv. cel C1 als dit mogelijk is.
Misschien kunt u beide manieren aangeven.

Groeten

Arie

Ikke schreef:

arieen...@hotmail.com

unread,
Jun 28, 2006, 3:00:42 PM6/28/06
to
Ik vergat de andere vraag te beantwoorden

Ik wil inderdaad met de knop opslaan het bestand opslaan. Evt. met de
knop opslaan als is ook geen probleem

Wat bedoeld u met de tekst: "De naam van het bestand is nog niet
compleet!", vbCritical
Moet ik daar nog een bepaalde naam in vermelden of is het een
verwijzing naar de formule, of is dit de verwijzing naar het alleen
lezen bestand?
Moet je een formule achter elkaar door typen of zoals u aangeeft in
onderstaande tekst?

Groeten
Arie

Ikke schreef:

Ikke

unread,
Jun 29, 2006, 4:36:34 AM6/29/06
to
De bedoeling van de code is dat deze in de vba editor op een module blad
geplaatst wordt en vervolgens aan een knop gekoppeld wordt.
Indien er vervolgens een van de twee velden niet gevuld is, maar de knop wel
geklikt wordt zal er een bericht verschijnen met de genoemde melding.
Het is dan de bedoeling dat alsnog beide velden gevuld worden alvorens de
knop geklikt wordt.

Om meer te leren over VBA moet je eerst zelf eens een macro opnemen. Kijk
eens in de help bij macro.

Maurrieske

<arieen...@hotmail.com> schreef in bericht
news:1151521242.6...@i40g2000cwc.googlegroups.com...

arieen...@hotmail.com

unread,
Jun 29, 2006, 1:01:49 PM6/29/06
to
Hoi,

Ik heb de formule gezet in VBA. De macro is nu gekoppeld met een knop (
Ctrl n)
Naar aanleiding van uw antwoord concludeer ik dat dit ook mogelijk moet
zijn met de normale opslaan knop ( boven in het bestand) klopt dit?

Het andere wat nog niet goed werkt is dat het bestand niet onder de
code van A1 & A4 wordt opgeslagen maar dat dit als tekst wordt weer
gegeven. (vb. Blad1!A2Blad1!A4 in plaats van 55236 - 125692

Groeten
Arie


Ikke schreef:

arieen...@hotmail.com

unread,
Jun 30, 2006, 12:57:53 PM6/30/06
to
Nog een aanvullend vraagje.

Voor het opslaan heb ik nu de volgende formule gebruikt:
ActiveWorkbook.SaveAs Filename:=Sheets("Blad1").Range("B1") & "_" &
Sheets("Blad1").Range("D1") & "_" & Sheets("Blad1").Range("F1")

Deze werkt goed op 1 punt na. Het begin (alleen lezen) bestand staat op
een server (schijf W) Als ik de map in schijf W opent en dan het
bestand opent en bewerkt en deze d.m.v. cntr q opslaat is er niets aan
de hand. Hij schrijft dit bestand netjes naar schijf W en de juiste
map. Ik heb voor het alleen lezen bestand een snelkoppeling gemaakt op
mijn desktop. Wanneer ik deze gebruikt en het bewerkte bestand opslaat
d.m.v. cntr q dan wordt het bestand opgeslagen in mijn documenten
i.p.v. in de map op de W-schijf. Kan ik dit instellen dat het bestand
altijd naar de W-schijf wordt opgeslagen?

Groeten

Arie


arieen...@hotmail.com schreef:

Ikke

unread,
Jun 30, 2006, 6:26:55 PM6/30/06
to
Arie, ik zie tot mijn schrik dat de code die ik gegeven heb inderdaad niet
de waarde uit de cellen haalt, maar de verwijzing als naam voor het bestand
neemt.
De juiste code moest zijn (aangepast aan de naam opgebouwd uit de cellen B1
D1 en F1 met een underscore als teken tussen de namen. De eerste regel code
zorgt voor de padnaam ( in jouw geval een map op schijf W) van het alleen
lezen bestand. Het maakt niet meer uit op welke manier het bestand geopend
wordt omdat ik bij het opslaan de padnaam meegeef.
Volgens mij moet deze code doen wat jij wil.

Sub Opslaan()
Pad = ActiveWorkbook.Path & "\"

If Range("Blad1!B1") <> "" And Range("Blad1!D1") <> "" And Range("Blad1!F1")
<> "" Then
Naam = Range("Blad1!B1") & "_" & Range("Blad1!D1") & "_" &
Range("Blad1!F1")


ActiveWorkbook.SaveAs Pad & Naam
Else
MsgBox "De naam van het bestand is nog niet compleet!", vbCritical
End If
End Sub


Maurrieske
<arieen...@hotmail.com> schreef in bericht

news:1151686673.2...@h44g2000cwa.googlegroups.com...

arieen...@hotmail.com

unread,
Jul 3, 2006, 4:27:15 AM7/3/06
to
Hoi,

Ik heb onderstaande formule nu ingevoerd:

Sub Opslaan()
Pad = ActiveWorkbook.Path & "\"
If Range("Blad1!B1") <> "" And Range("Blad1!D1") <> "" And
Range("Blad1!F1") <> "" Then

Naam = Range("Bld1!B1") & "_" & Range("Blad1!D1") & "_" &


Range("Blad1!F1")
ActiveWorkbook.SaveAs Pad & Naam
Else
MsgBox "De naam van het bestand is nog niet compleet!", vbCritical
End If
End Sub

Wanneer ik nu opslaat met cntr q dan krijg ik onderstaande melding:
Methode Range van object_Global is mislukt.

Eerder kreeg ik meldingen van: compileerfout Else zonder If. Na
opnieuw de formule er in gezet te hebben is de melding zoals ik
hierboven heb neergeschreven.

Met belangstelling zie ik uw antwoord tegemoet.

Groeten

Arie

Ikke schreef:

arieen...@hotmail.com

unread,
Jul 5, 2006, 9:42:15 AM7/5/06
to
Hoi ikke,

Ik ben nog een poosje bezig geweest met de formule. Na diverse pogingen
is het me toch gelukt.

1 schrijffoutje en het werkt dus niet. Bij het copieren was op een
plaats een spatie komen te vervallen tussen And Range. Ook staat er in
de formule 1 foutje bij Naam = Range("Bld1!B1) dit moest zijn
(Blad1!B1)

In ieder geval
Hartelijk bedankt en op naar het volgende probleem

Is er trouwens een lijstje waarin div. formules staan om in VBA te
zetten?

offroa...@gmail.com

unread,
May 1, 2019, 6:53:14 AM5/1/19
to
Op woensdag 28 juni 2006 19:17:38 UTC+2 schreef arieen...@hotmail.com:
Een stap verder, bij Facturering is dat vanuit een bestandje, automatische een opvolgend factuurnummer wordt gevonden.
Ik zie nogal eens bij bedrijven, dat hier "handmatig" fouten worden gemaakt ...
Dat moet uiteraard ook in VBA, maar ik heb geen flauw idee hoe ???
Weet iemand raad ??
0 new messages