Cocher des cases dans un doc Word

Bonjour,

J'ai créé un document Word qui me sert de modèle, et j'ai créé une macro excel pour le remplir en fonction des données de mes tableaux.

J'arrive très bien à inscrire dans mon document word les données de mon tableau à l'aide des signets, mais j'aimerais désormais cocher des cases à cocher dans mon document word en fonction du texte contenu dans certaines cellules.

Typiquement "Si "telle cellule" contient "blabla" alors cocher telle case à cocher.

J'ai essayé plusieurs choses mais rien ne marche :

1er essai :

If InStr(Cells(AN, ligne), "Oui") > 0 Then

wDoc.CheckBox1 = True

End If

2ème essai :

Dim grue As String

grue = "AN" & ligne

If UCase(Range(grue)) = "oui" Then

wDoc.Bookmarks("case_echafaudage") = True 'j'ai mis un signet sur la case à cocher "echafaudage"

End If

Je pense qu'avec la deuxième solution la partie "test du texte de la cellule" est bon mais je n'arrive pas à faire cocher une case...

En résumé (et pardon pour le pavé)....Comment appeler une case à cocher d'un document Word dans une macro Excel?

MERCI!!!! =D

Bonjour,

voici un exemple à adapter,

Sub test()
For i = 1 To ActiveDocument.ContentControls.Count
  ActiveDocument.ContentControls(i).Checked = True
Next
End Sub

Merci pour cette réponse!

Si je comprends bien cette ligne de code

Sub test()

For i = 1 To ActiveDocument.ContentControls.Count

ActiveDocument.ContentControls(i).Checked = True

Next

End Sub

contrôle et coche toutes les cases document word.

De ce fait j'ai plus qu'à l'insérer dans ma bouche "if" pour la condition de teste dans ma case et à assigner la case qui m'intéresse à la place de la boucle "for"? Cela suffirait? (ou ai-je mal interprété)

Dim grue As String

grue = "AN" & ligne

If UCase(Range(grue)) = "oui" Then

ActiveDocument.ContentControls(1).Checked = True

End If

Merci

Dim grue As String

grue = "AN" & ligne

If UCase(Range(grue)) = "oui" Then

ActiveDocument.ContentControls(1).Checked = True

End If

Merci

J'ai essayé la ligne dont je parle dans le message précédent... cela ne marche pas je pense que je n'appelle pas correctement les cases à cocher dans la macro excel

peux-tu joindre ton fichier ?

Les voilà,

Attention, les chemins d'accès risquent de bugger

J'ai du réduire un maximum les docs car c'est bourré de données clients que je n'ai pas le droit de diffuser... j'espère que c'est quand même bon!

La macro s'appelle "test" (CTRL+t)

Le fichier word à remplir "fiche_chantier_vierge"

re,

sur le doc, je réussi à lire les ID des controls mais pas les BookmarkID

il sont tous à 0,

à vérifier

Sub test()
For i = 1 To ActiveDocument.ContentControls.Count
  Debug.Print ActiveDocument.ContentControls(i).ID
  Debug.Print ActiveDocument.ContentControls(i).Range.BookmarkID
Next
End Sub

D'accord je vais tester!

Avant je ne suis pas sûr de comprendre le rôle de cette commande?

A quoi correspond les "contentcontrols"?

D'accord je vais tester!

Avant je ne suis pas sûr de comprendre le rôle de cette commande?

A quoi correspond les "contentcontrols"?

au case à cocher

Hello!

Donc si je comprends bien :

For i = 1 To ActiveDocument.ContentControls.Count 'pour toutes les cases à cocher du doc

Debug.Print ActiveDocument.ContentControls(i).ID 'on affiche le nom des cases à cocher

Debug.Print ActiveDocument.ContentControls(i).Range.BookmarkID 'on affiche le nom des signet

Après pour les signets c'est peut-être un problème de sauvegarde car pour ce qui est du remplissage des textes ça marche bien chez moi =D

Et une fois que j'ai les ID il me suffit de faire quelque chose du style : ?

ActiveDocument.ContentControls(ID) = True

Et une fois que j'ai les ID il me suffit de faire quelque chose du style : ?

ActiveDocument.ContentControls(ID) = True

oui, c'est bien ça

Bonjour!

De retour après une petite trêve

Alors j'ai essayé dans une nouvelle macro pour juste sortir les "noms" de mes cases à cocher mais rien ne sort...

Sub Macro1()

'

' Macro1 Macro

'

Dim wApp As Word.Application

Dim wDoc As Word.Document

Set wApp = CreateObject("Word.Application")

wApp.Visible = False

'ouvre le doc word

Set wDoc = wApp.Documents.Add(Template:="\\sv42017winv001\afcc services z3\02_WIN_SAV\JOINTS\mutualisation_documentation_en_cours\Fiches_Chantier\Fiche_chantier_vierge.docx", NewTemplate:=False, DocumentType:=0)

For i = 1 To wDoc.ContentControls.Count

Debug.Print wDoc.ContentControls(i).ID

Debug.Print wDoc.ContentControls(i).Range.BookmarkID

Next

'

End Sub

Je pense que j'aurai plus vite fait de cocher à la main

De retour après une petite trêve

Alors j'ai essayé dans une nouvelle macro pour juste sortir les "noms" de mes cases à cocher mais rien ne sort...

c'est ce que je disais plus tôt, il n'y a pas de Bookmark sur les controls ...

re,

sur le doc, je réussi à lire les ID des controls mais pas les BookmarkID

il sont tous à 0,

à vérifier

Sub test()
For i = 1 To ActiveDocument.ContentControls.Count
  Debug.Print ActiveDocument.ContentControls(i).ID
  Debug.Print ActiveDocument.ContentControls(i).Range.BookmarkID
Next
End Sub

Oui tout à fait!

Merci encore pour l'aide! J'ai opté pour ne pas les cocher automatiquement mais de le faire à la relecture, il n'y a que quelques croix à faire...

Merci encore!

Rechercher des sujets similaires à "cocher cases doc word"