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 !