VBA auto opslaan, Word 2010

Status
Niet open voor verdere reacties.

dannydko

Gebruiker
Lid geworden
11 nov 2013
Berichten
23
Goedemiddag beste lezers,


Voor mijn werk gebruik ik een word formulier waaraan ik een uniek boekingsnummer koppel.

Hiermee bedoel ik dat ik in een veld (tabel) in het word bestand een boekingsnummer plak.

Vervolgens selecteer ik opslaan als en sla ik dit document ter archivering op op de server.
Hierbij gebruik ik het boekingsnummer als bestandsnaam tijdens het opslaan (deze kopieer ik)

Nu wil ik graag het volgende:

Het document dmv een macro automatische op laten slaan in de juiste map.

Ik dacht dat is een fluitje van een cent en begon een macro op te nemen, helaas kwam ik tot de conclusie dat ik in word tijdens het opnemen niet het boekingsnummer kan selecteren dat,
dient te functioneren als bestandsnaaam.

Dus even in het kort.

Ik heb een word document,>hier plak ik een boekingsnummer in>dit boekingsnummer functioneert ook als bestandsnaam (moet zo functioneren)>kan ik niet selecteren tijdens macro opnemen.

Mijn vraag : Hoe krijg ik het met VBA voorelkaar om een macro op te nemen die het boekingsnummer selecteert en het bestand opslaat in de juiste map.???

Ik hoop dat jullie mij kunnen helpen, alvast bedankt

Ps in de bijlage heb ik het document toegevoegd.

Groeten

Danny
 

Bijlagen

Met een kleine aanpassing kom je een heel eind.
1. Splits je tabel in 2 cellen, zodat het Boekingsnummer zelfstandig in de 2e cel kan worden gezet. Door de linker cel rechts uit te lijnen, en de rechter cel links, staat de tekst visueel dan gewoon bij elkaar.
2. Maak van de 2e cel (met het boekingsnummer) een Bladwijzer. Doe dat voor de hele cel, zodat je niet later per ongeluk een boekingsnummer op de verkeerde plek kan invoeren.
3. Lees in de macro de inhoud van de bladwijzer uit, en gebruik dat voor de bestandnaam.

De code ziet er dan ongeveer zo uit:
Code:
Sub test()
Dim sFile As String
    sFile = Left(ActiveDocument.Bookmarks("Boekingsnummer").Range, Len(ActiveDocument.Bookmarks("Boekingsnummer").Range) - 2)
    ActiveDocument.SaveAs FileName:=sFile, FileFormat:=wdFormatDocument
End Sub
Er zijn nog veel meer opties (DocVariables bijvoorbeeld) maar dit is simpel te bouwen.
 
Simpel met :

voor Word >2003
Code:
Sub M_snb()
    activedocument.saveas2 "G:\OF\" & Replace(Mid(ActiveDocument.Tables(1).Cell(1, 1).Range.Text, 9), Chr(13) & Chr(7), "") & ".docx"
End Sub

voor Word <2007
Code:
Sub M_snb()
    activedocument.saveas "G:\OF\" & Replace(Mid(ActiveDocument.Tables(1).Cell(1, 1).Range.Text, 9), Chr(13) & Chr(7), "") & ".doc"
End Sub



NB. Vervang "G:\OF\" door het pad waar jij het bestand wil opslaan.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan