Tekst in document automatisch opnemen in naam van het te bewaren Word document

Status
Niet open voor verdere reacties.

Chrispelot

Gebruiker
Lid geworden
21 apr 2015
Berichten
5
Hoi,
Ik probeer in een sjabloon op te nemen dat veldteksten (uit Excel bijv. documentnummer en onderwerp) automatisch opgenomen worden in de naam van het document als je het document op wilt slaan. Kan dat? en zo ja hoe?
Ik heb al geprobeerd om deze velden met fontkleur wit bovenaan in het document te plaatsen. Dat helpt, maar je blijft ze dan toch zien als je het document opent. Wie kan mij helpen?
 
Als je de velden in Docvariabelen zet, zie je ze sowieso niet in je document, en met de Opslaan macro kun je ze uitlezen.
 
Kijk eens in dit draadje; daar heb ik een voorbeeldje gezet met docvariabelen.
 
macro

Ha daar ben ik weer sorry. Ja die velden had ik al bovenin de file gezet, met tekstkleur wit Dan dus niet zichtbaar.
Maar als andere mensen werken met die sjabloon, staat de cursor als ze de sjabloon openen automatisch op die velden die dan op dat moment ook zichtbaar zijn, daar gaan ze dan de mist mee in.
Of is dit de enige oplossing? Of moet ik dan een macro maken. (dat heb ik nog nooit gedaan :shocked:) Ik hoor graag.
 
Volgens mij heb je het formulier niet helemaal goed bestudeerd. De variabelen zelf zie je namelijk niet. Alleen als je ze gebruikt (zoals in het voorbeeld) dan roep je ze op met een veld. Maar dat hoef je uiteraard niet te doen als je dat niet wilt.
 
filenaam

Ik zie alleen een word document met samenvoegvelden. Of was er meer?
Wellicht heb ik mijn vraag niet goed omschreven. Ik heb de [velden[ vanuit excel al in de template staan. Bijv.

Memo
Datum: [datum]
Onze referentie: {brfnr]
Onderwerp: {onderwerp]

Als je samenvoegt staat er

Memo
Datum: 23 april 2015
Onze referentie: 15 324
Onderwerp: aanvraag


Nu wil men graag dat wanneer het document vanuit de template wordt opgeslagen onder de nieuwe documentsnaam dmv samenvoegen, de gegevens uit het veld brfnr en het veld onderwerp automatisch verschijnen in de het hokje waar je de nieuwe naam van het document kunt ingeven.
Dus naam van het te bewaren document wordt dan automatisch: 15 324 aanvraag
Dat lukt mij niet.
 
D'r zit toch echt een formulier in het document. En dat maakt de DocVariables aan. Die dan vervolgens in de tekst in het document worden opgevraagd. Het heeft tenslotte niet zo bar veel zin om input te vragen en die dan niet te gebruiken. Dit voorbeeld is voor jou ook niet gelijk over te nemen, want je hebt dus bestaande velden. En die zul je op de een of andere manier moeten inlezen in de DocVariables. Maar dat is niet zo heel moeilijk.
Je probleem is logisch en niet zo simpel op te lossen als je had gewild. Dat komt omdat Word bij het samenvoegen de velden vervangt door tekst. Er zijn dus geen velden meer in het nieuwe document. Zet je echter voordat je de samenvoeging uitvoert de gegevens die je wilt gebruiken in die docvariabelen, dan blijven ze wel bewaard in het nieuwe document. En kun je ze dus alsnog opslaan. Maar daar heb je dus een macro voor nodig die het uitvoeren regelt. Want de standaardknop kan dat niet.
 
Dank je wel voor je reply. Ik denk dat deze wellicht boven mijn pet gaat of we praten met andere woorden over het zelfde :shocked:
Er zit denk ik niets anders op dan verder met de mindere oplossing die ik al had. Maar iig bedankt voor je hulp.
 
Of moet ik dan een macro maken. (dat heb ik nog nooit gedaan)
Je maakt het jezelf niet makkelijk, want de oplossing kan alleen met programmeren worden bereikt. En dan geldt de oeroude natuurwet: zonder inspanning geen resultaat. Je zult je dus, wil je het goed oplossen, op zijn minst moeten verdiepen in het werken met macro's en VBA. Er is geen standaard oplossing, anders dan wat je nu doet, en dat is, eerlijk gezegd, natuurlijk geen echte oplossing. Kun je het niet zelf bouwen, en snap je de aangedragen oplossing niet (en dat zal niemand je kwalijk nemen als je nog nooit geprogrammeerd hebt :) ) dan zou ik zeggen: geef de klus aan iemand die wél kan programmeren, want een echte oplossing is natuurlijk altijd veel beter als een vage workaround.
Om nog een ander voorbeeldje te geven: hier een macro die ik zelf gebruik om een samengevoegd document te splitsen en op te slaan onder een unieke naam.
Code:
Sub Splitter()
'------------------------------------------------------------------------------------------------------------------
' splitter Macro
' Macro created by Doug Robbins to save each letter created by a mailmerge as a separate file.
' 20140102 Aangepast door OctaFish om documenten los op te slaan m.b.v. de naam in de 1e alinea.
' 20141210 Macro gebruikt nu een functie om op te slaan in een aparte map op de desktop van de user.
'------------------------------------------------------------------------------------------------------------------
Dim Letters As Integer, Counter As Integer
Dim DocName As String, sRange As String, Pad As String
Dim aRange As Range

DocName = "Brief "
Pad = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\Brieven"
If CreateFolder(Pad) = False Then
    MsgBox "Het pad kon niet worden aangemaakt; check de gegevens."
    Exit Sub
End If
If Not Right(Pad, 1) = Application.PathSeparator Then Pad = Pad & Application.PathSeparator

Letters = ActiveDocument.Sections.Count
Selection.HomeKey Unit:=wdStory
Counter = 1

While Counter < Letters
    ActiveDocument.Sections.First.Range.Cut
    Documents.Add
    Selection.Paste
    '-----------------------------------------------------------------------------
    'Naam samenstellen uit 1e alinea van tekst
    '-----------------------------------------------------------------------------
    Set aRange = ActiveDocument.Paragraphs(1).Range
    DocName = aRange.text
    If Right(DocName, 1) = Chr(13) Or Right(DocName, 1) = Chr(10) Then
        DocName = Left(DocName, Len(DocName) - 1)
    End If
    '-----------------------------------------------------------------------------
    ActiveDocument.Sections(2).PageSetup.SectionStart = wdSectionContinuous
    ActiveDocument.SaveAs FileName:=Pad & DocName & ".docx", FileFormat:=wdFormatDocument, _
    Password:="", AddToRecentFiles:=True, WritePassword:="", EmbedTrueTypeFonts:=False, _
    SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:=False
    ActiveWindow.Close
    Counter = Counter + 1
Wend

End Sub
Dezde macro gebruikt de eerste regel om de naam van het document te lezen; in mijn geval staat daar dus de naam van de geadresseerde. Nogmaals: het kan allemaal prima wat je wilt, maar als je niet kunt programmeren wordt het heel lastig.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan