CheckBox.BackColor dans une fonction VBA
Résolu
fabien25000
Messages postés
697
Statut
Membre
-
fabien25000 Messages postés 697 Statut Membre -
fabien25000 Messages postés 697 Statut Membre -
Bonjour à tous,
Je manipule habituellement la VBA sur excel et je manque de connaissance sur le vocabulaire VBA Word et j'aurai besoin de vos lumières :
Je travaille sur un document Word qui a plusieurs dizaines de chekbox
Je souhaite que lorsque que je clic une première fois sur la checkbox le backcolor passe en vert, au deuxième clic le backcolor passe en orange , et au troisième clic le backcolor revienne à la couleur par défaut et que checkbox.value=False
J'ai réussi à écrire tout ça sur une checkbox, ça fonctionne comme je le souhaite :
mais je n'arrive pas à trouver la synthaxe pour rendre ce code générique dans une fonction pour n'avoir qu'a appeler la fonction dans chaque chekbox.
voici ce que j'ai essayé suite à mes recherche sur internet et qui ne fonctionne pas :
merci d'avance pour vos conseils et votre temps
Je manipule habituellement la VBA sur excel et je manque de connaissance sur le vocabulaire VBA Word et j'aurai besoin de vos lumières :
Je travaille sur un document Word qui a plusieurs dizaines de chekbox
Je souhaite que lorsque que je clic une première fois sur la checkbox le backcolor passe en vert, au deuxième clic le backcolor passe en orange , et au troisième clic le backcolor revienne à la couleur par défaut et que checkbox.value=False
J'ai réussi à écrire tout ça sur une checkbox, ça fonctionne comme je le souhaite :
Private Sub Test_Click() If test.Value = True Then If test.Value = True And test.BackColor = RGB(224, 128, 32) Then test.BackColor = vbWhite test.Value = False Else test.BackColor = vbGreen End If Else If test.BackColor = vbGreen Then test.BackColor = RGB(224, 128, 32) End If End Sub
mais je n'arrive pas à trouver la synthaxe pour rendre ce code générique dans une fonction pour n'avoir qu'a appeler la fonction dans chaque chekbox.
voici ce que j'ai essayé suite à mes recherche sur internet et qui ne fonctionne pas :
Private Sub Test_Click() Color ("Test") End Sub Function Color(varTest) If ThisDocument.FormFields(varTest).CheckBox.Value = True Then If ThisDocument.FormFields(varTest).CheckBox.Value = True And ThisDocument.FormFields(varTest).BackColor.RGB = RGB(224, 128, 32) Then ThisDocument.FormFields(varTest).BackColor = vbWhite ThisDocument.FormFields(varTest).CheckBox.Value = False Else ThisDocument.FormFields(varTest).BackColor = vbGreen End If Else If ThisDocument.FormFields(varTest).BackColor = vbGreen Then ThisDocument.FormFields(varTest).BackColor = RGB(224, 128, 32) End If End If End Function
merci d'avance pour vos conseils et votre temps
Configuration: Windows / Chrome 83.0.4103.97
A voir également:
- CheckBox.BackColor dans une fonction VBA
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
- Fonction remplacer dans word - Guide
1 réponse
Bonjour,
C'est, très exactement, la même façon de coder qu'avec Excel.
Tu passes la CheckBox en paramètre de ta fonction, pas son nom...
C'est, très exactement, la même façon de coder qu'avec Excel.
Tu passes la CheckBox en paramètre de ta fonction, pas son nom...
Option Explicit Private Sub CheckBox1_Click() Colorie CheckBox1 End Sub Private Sub CheckBox2_Click() Colorie CheckBox2 End Sub Private Sub Colorie(C As MSForms.CheckBox) With C If .Value = True Then If .Value = True And .BackColor = RGB(224, 128, 32) Then .BackColor = vbWhite .Value = False Else .BackColor = vbGreen End If Else If .BackColor = vbGreen Then .BackColor = RGB(224, 128, 32) End If End With End Sub
fabien25000
Messages postés
697
Statut
Membre
59
Merci !