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

Macro openen samengevoegd Word document

Status
Niet open voor verdere reacties.

Robzster1969

Gebruiker
Lid geworden
17 sep 2014
Berichten
9
Ik probeer nu al een paar dagen het volgende voor elkaar te krijgen: Een macro button in een Excel worksheet waarmee ik een gekoppeld Word document mee kan openen. Ik heb geen verstand van VBA dus alle pogingen die ik heb gedaan is door informatie vanaf websites te vergaren en te copy-pasten. Alles tot op heden zonder resultaat. Wat heb ik?: Ik heb een Word document waarbij ik vanuit Excel een database heb samengevoegd. Dit werkt allemaal. Ik pas de database aan, sla het op en open vervolgens vanuit een andere map het betreffende word document. De laatste ingevoerde gegevens in de database staan dan keurig in het betreffende word document. Wat wil ik?: Ik wil eigenlijk in het Excelsheet een button die wanneer ik na het aanpassen van de database-gegevens deze kan selecteren zodat het gekoppelde word document met de al dan niet gewijzigde database gegevens wordt geopend. Het mooiste zou zijn wanneer ik na het wijzigen van de database deze niet eerst hoeft op te slaan maar dat na het indrukken van de button het word document met de laatst gewijzigde database gegevens opent.

Ik ben benieuwd naar een of meerdere reacties.

Alvast bedankt!

Grt'n Robzster
 
En wij maar raden....

Je zult een gewijzigd Excelbestand altijd eerst moeten opslaan wil een Word-document ervan gebruik kunnen maken.

Het 'hoofddocument samenvoegen" open je met :

Code:
getobject(volledige bestandsnaam)

de samenvoeging doe je met

Code:
activedocument.mailmerge.execute

ergo

Code:
Sub M_snb()
   with getobject("G:\OF\hoofddocument.docx")
     .mailmerge.execute
     with .application.activedocument
        .saveas2 "G:\OF\geactualiseerd.docx"
        .close 0
     end with
     .close 0
   end with
End Sub

De nieuwe gegevens staan nu in het bestand "G:\OF\geactualiseerd.docx"
 
Dank voor je snelle reactie.

Het is niet noodzakelijk dat het gewijzigde Word document wordt opgeslagen. Dus ik denk dat de SaveAs2 er dan tussenuit kan. Alleen dat blijkt niet zo bot te kunnen dan ik dacht, dus als je daar nog even naar wilt kijken, graag. Vervolgens heb ik een nieuwe button aangemaakt en in VBA jouw code geplaatst. Na dit gedaan te hebben heb ik de ontwerpmodus uitgezet. Wanneer ik nu de button wil benaderen lijkt het alsof deze in de ontwerpmodus blijft staan. Ik kijg dat zo'n meervoudig muisaanwijzer waarmee ik de button kan verplaatsen maar niet indrukken. Ik kon jouw code wel testen via macro's-uitvoeren

Mag ik nog eens rekenen op je hulp?
 
Ik was te voorbarig, met het selecteren van de button ontstaat er beweging alleen duurt het erg lang voordat het Word document opent. Ik krijg de melding "Microsoft Excel wacht totdat een andere toepassing een OLE-bewerking heeft voltooid" Huh???
 
Laatst bewerkt:
Het zou best kunnen dat Word het niet zo leuk vindt dat je de gekoppelde database nog aan het bewerken bent.
Dan is het handiger het Worbestand te koppelen aan een kopie van het databasebestand.
Dat kun je met dezelfde macro actualiseren met .savecopyas

Code:
Sub M_snb()
   thisworkbook.savecopyas "G:\OF\database_kopie.xlsb"

   with getobject("G:\OF\hoofddocument.docx")
     .mailmerge.execute
     with .application.activedocument
        .saveas2 "G:\OF\geactualiseerd.docx"
        .close 0
     end with
     .close 0
   end with
End Sub
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan