VBA koppeling tussen Excel en Word

Status
Niet open voor verdere reacties.

Marleenvisscher

Gebruiker
Lid geworden
8 nov 2009
Berichten
23
Hallo,

Iemand heeft mij laatst geholpen met het schrijven van een VBA code om een koppeling tussen Excel en Word te creeëren. Het bijgevoegde bestandje heb ik toen ontvangen. Als je een vinkje in de checkbox hebt gezet en je drukt dan op de knop bovenaan, dan wordt automatisch het bijgevoegde stukje tekst in word gezet.

Ik wil nu alleen deze code toepassen op mijn eigen bestand. Ik heb zelf gewone checkboxen gemaakt (zie de checkbox "test" in het bestand). Deze lijken alleen niet hetzelfde, want bij de bovenste twee checkboxen kan ik niets veranderen of instellen. Kan iemand mij uitleggen hoe ik zulke checkboxen kan aanmaken en wat ik moet doen om deze VBA code toepasbaar te maken op mijn bestand?

Groetjes Marleen
 

Bijlagen

Jou checkbox is aangemaakt met de werkbalk "Formulieren" en de andere zijn aangemaakt met de werkbalk "Werkset besturingselementen". Dat is het verschil.
 
Bedankt voor je hulp. Nu snap ik in ieder geval dat verschil. Ik probeer de code nu alleen toe te passen op mijn bestand. Ik heb al verschillende dingen geprobeerd, ook het werkblad kopieëren naar een nieuwe map. Ik krijg alleen de volgende melding en ik weet niet waar de fout zit.

Compileerfout:
Een door de gebruiker gedefineerd gegevenstype is niet gedefineerd.

Vervolgens maakt hij de volgende regels geel:

Private Sub CommandButton1_Click()
Dim wApp As Word.Application

Hoe zou ik dit op kunnen lossen? In de bijlage de nieuwe map die ik aangemaakt heb. In mijn eerste bericht staat het bestand wat wel werkt.

Groetjes Marleen
 

Bijlagen

Je moet een verwijzing maken naar de:

Microsoft Word 11.0 Object libary

Voor 11.0 kan er ook 10.0 of 12.0 staan. Heeft te maken met welke versie van Excel je werkt.

De verwijzing kun je maken in de VBA editor (Alt+F11). Menu "Extra" ---> "Verwijzingen". Bovenstaande libary in de lijst aanvinken.
 
Ok, helemaal super!

Nog een laatste wens dan: nu start het een nieuw word document. Kan ik de tekst ook invoegen in een sjabloon en dan aangeven op welke pagina de tekst moet komen te staan?

Groetjes Marleen
 
Marleen,

Ik kom meer uit de access hoek. Ben me nu zelf wat meer aan het verdiepen in Excel. Het kan wel. Dat doe je volgens mij met samenvoegen en bladwijzers. Misschien iemand anders hier op het forum. Mocht je hier geen antwoord krijgen, probeer het dan eens in de Excel sectie. Daar zitten ook voldoende goeroe's.
 
Ok, het werkt nu bijna op mijn bestand. Ik heb nu meerder checkboxen aangemaakt (10 stuks, rij 9 t/m 18). De linked cells staan allemaal in kolom A (A9 t/m/ A18). De bijbehorende tekst staat in kolom G. Als ik nu de checkboxen in rij 16, 17 en 18 aanvink, dan krijg ik de tekst die hoort bij de checkboxen in rij 9, 10 en 11 in Word. Heeft iemand hier een oplossing voor?

Groetjes Marleen
 
Maak een Wordbestand aan met de naam C:\voorbeeld.doc
Reduceeer je Excelbestand tot 1 werkblad (sheet/worksheet)
Dan is deze code in Excel voldoende:

Code:
Private Sub CommandButton1_Click()
  With GetObject("C:\voorbeeld.doc")
    For Each obj In ThisWorkbook.Sheets(1).OLEObjects
      If TypeName(obj.Object) = "CheckBox" And obj.Object.Value = True Then .content.insertafter Range(obj.LinkedCell).Offset(, 6).Value
    Next
    .save 
    .close 0
  End With
End Sub
als je daarna het Wordbestand opent zie je het effekt.
 
Laatst bewerkt:
Moet ik in deze code ook nog de naam van het bestand en/of de sheet invullen? Ik heb nu de code onder de knop gezet en het werkt zo nog niet.
 
Lees mijn vorige bericht nog eens heel precies door en doe precies wat er staat, dan hoef je aan de code niets te veranderen.

eventueel:

Code:
Private Sub CommandButton1_Click()
  With GetObject("C:\voorbeeld.doc")
    .Application.Visible=true
    For Each obj In ThisWorkbook.Sheets(1).OLEObjects
      If TypeName(obj.Object) = "CheckBox" And obj.Object.Value = True Then .Application.activedocument.content.insertafter Range(obj.LinkedCell).Offset(, 6).Value & vbcr
    Next
    .save 
    .close 0
  End With
End Sub
 
Laatst bewerkt:
Ok, zo had ik het niet begrepen, dat ik maar 1 tabblad mag hebben. Ik heb alleen in mijn bestand heel veel tabbladen :S En nu?

Groetjes Marleen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan