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

Documenteigenschap vullen

Status
Niet open voor verdere reacties.

mulderwme

Gebruiker
Lid geworden
12 dec 2014
Berichten
232
Hallo allemaal,


In Excel heb ik een lijstje met bijv. 5 namen.
Per persoon laat ik een Worddocument aanmaken, met daarin zijn naam. Dat worden dus 5 docjes.

In Word vul ik de documenteigenschap "Bedrijf" met de naam van de persoon.

Code:
ActiveDocument.BuiltinDocumentProperties("Company").Value = Naam

Dat gaat prima.
Aan het eind van de macro sluit ik Word af.

Als ik dan de volgende naam van mijn lijstje pak, wordt Word netjes geopend, document verschijnt, maar ik krijg een foutmelding op die regel code die hierboven staat. Voor de foutmelding, zie bijlage.

Dan sluit ik Word en doe het opnieuw en dan gaat het wel. Dus het gaat steeds fout bij de volgende die ik wil doen.

Herkent iemand dit?

Kan het zijn dat er toch nog iets van Word open blijft staan, zonder dat je dat ziet?

Ik heb de testbestandjes bijgevoegd.

Groet
Willem
 

Bijlagen

Je grootste fout zit 'm er in dat je continue Word afsluit en opnieuw opent. Als je meerdere documenten wilt genereren, kun je Word (en het document) best open laten staan. In ieder geval Word open laten, want anders blijf je tegen die vertraging aanhikken. Het enige dat je wilt is de naam wijzigen en het document opslaan. Dat kan gewoon met alles open.
 
Je bent de punt voor ActiveDocument vergeten, dus:
.ActiveDocument.BuiltinDocumentProperties("Company").Value = Naam

Gecombineerd met wat Octafish bedoelt:
Code:
Sub Doc_Naar_PDF_TST()
    MijnPad = "C:\Users\User\Desktop"
    
    With CreateObject("Word.Application")
        .Visible = True
        .Documents.Open Filename:=MijnPad & "\TestDocProp.docx"
        For i = 2 To Range("A1").SpecialCells(xlCellTypeLastCell).Row
            Naam = Cells(i, 1)
            .ActiveDocument.BuiltinDocumentProperties("Company").Value = Naam
            Bestandsnaam = MijnPad & "\TestDocProp - " & Naam & ").pdf"
            .ActiveDocument.ExportAsFixedFormat OutputFileName:=Bestandsnaam, ExportFormat:=wdExportFormatPDF
        Next i
        .Quit False
    End With
End Sub
 
Laatst bewerkt:
Dank je wel, Edmoor. Op deze manier werkt het.

Het verschil is, dat ik Word na elk document sluit en jij wijzigt de prop terwijl het bestand open blijft.
Dat is veel sneller.

Blijft nog wel de vraag waarom ik in mijn situatie bij de tweede run steeds de melding "Externe server niet beschikbaar" krijg.

Weet je dat soms ook?

Bedankt & groet
Willem
 
Dat vertelde ik al.
Het kwam omdat je voor ActiveDocument geen punt had gezet.
Excel blijft dan de bestaande stream naar een gesloten object server gebruiken.
 
Oeps, ik heb 2x een ActiveDocument. Als je dan maar voor 1 ActiveDocument een punt zet...

dom, dom
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan