Bouton pour cocher une case à cocher

Bouton pour cocher une case à cocher - VB/VBA/VBS - Programmation

Marsh Posté le 05-11-2020 à 00:01:30    

Bonjour,
je sollicite votre aide.  
J'ai une appli métier qui nous génère un rapport sous word (*.doc)
Dans ce document j'ai de multiple case à cocher. Mon souhait aurait été de creer un bouton avec un bout de code qui me permette de cocher ces fameuses cases.
A l'heure actuelle il me faut double cliquer sur la case à cocher puis de la mettre en "case activée"
 
Bon j'arrive à le faire avec une case à cocher à la fois avec ça :

Code :
  1. ActiveDocument.FormFields("Caseacocher1" ).CheckBox.Value = True

mais j'y arrive car j'ai nommé au préalable ma checkbox.
 
 
Mon souhait serait de pouvoir le faire à la volé sur n'importe quel document.
voici des exemples :
https://i.ibb.co/y0D9yCd/Sans-titre.png
 
si vous avez des pistes, merci d'avance

Reply

Marsh Posté le 05-11-2020 à 00:01:30   

Reply

Marsh Posté le 05-11-2020 à 11:39:34    

Bonjour,
 
Tu pourrais utiliser des ActiveX (sans macro) au lieu de contrôles de formulaire :  
https://www.cjoint.com/doc/20_11/JKfkJ60TtFW_Salle.jpg
 
Exemple : https://www.cjoint.com/doc/20_11/JK [...] EPTIE.docx


Message édité par patrice33740 le 05-11-2020 à 11:41:35

---------------
Cordialement, Patrice
Reply

Marsh Posté le 05-11-2020 à 17:10:37    

Merci pour la réponse, malheureusement je ne peux pas modifier comme cela.  
En gros en fin d'une procédure je clique sur "générer le rapport" dans le logiciel métier. Le logiciel métier ( avec une base access je pense) me génère le fichier .doc avec les cases à coché déjà présentes dans le document. Je ne peux donc pas les modifier avec des activeX.
Mais je souhaiterais pouvoir, après avoir sélectionné un bouton, cocher/décocher mes cases

Reply

Marsh Posté le 05-11-2020 à 19:12:03    

Re,
 
Pour Cocher / Décocher la case à cocher sur Double Clic :

  • Ajoutes un module de classe nommé cEvent :
Code :
  1. Public WithEvents appWord As Application
  2. Private Sub appWord_WindowBeforeDoubleClick(ByVal Sel As Selection, Cancel As Boolean)
  3. Dim ff As FormField
  4.   Sel.Expand Unit:=wdWord
  5.   If Sel.Range.FormFields.Count > 0 Then Set ff = Sel.Range.FormFields(1)
  6.   If Not ff Is Nothing Then
  7.     If ff.Type = wdFieldFormCheckBox Then
  8.       ff.CheckBox.Value = Not ff.CheckBox.Value
  9.       Cancel = True
  10.     End If
  11.   End If
  12. End Sub


  • Et dans ThisDocument :
Code :
  1. Private cls As New cEvent
  2. Private Sub Document_Open()
  3.   Set cls.appWord = Word.Application
  4. End Sub
  5. Private Sub Document_Close()
  6.   Set cls.appWord = Nothing
  7. End Sub


Exemple : https://www.cjoint.com/doc/20_11/JK [...] SEPTIE.doc


Message édité par patrice33740 le 05-11-2020 à 19:12:56

---------------
Cordialement, Patrice
Reply

Marsh Posté le 05-11-2020 à 20:21:57    

Han , super merci à toi, c'est exactement ce que je voulais faire !   :love:  :love:  
ça fonctionne au top
 :jap:  :jap:  :jap:


Message édité par gregsk8 le 05-11-2020 à 20:22:32
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed