Bonjour à tous,
étant novice en vba je souhaite optimiser le code sur certaines actions.
je soufaite par exemple que si

** mon Checkbox1.value = false, mettre automatiquent les Optionbutton à false et que cela n'impacte pas les optionbutton de d'autres private Sub.
** et au même moment, met OptionButton.value = false ( ceci pour supprimer toutes les cases qui ont été cochées dans le même Private Sub sans affecter les autres)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
Private Sub CheckBox1_Click()
If Me.CheckBox1.Value = True Then
         Me.OptionButton7.Enabled = True
         Me.OptionButton8.Enabled = True
         Me.OptionButton9.Enabled = True
         Me.OptionButton10.Enabled = True
         Me.OptionButton11.Enabled = True
         Me.OptionButton12.Enabled = True
         Me.OptionButton13.Enabled = True
         Me.OptionButton14.Enabled = True
         Me.OptionButton15.Enabled = True
         Me.OptionButton16.Enabled = True
         Me.OptionButton17.Enabled = True
         Me.OptionButton18.Enabled = True
         Me.OptionButton28.Enabled = True
         Me.OptionButton29.Enabled = True
         Me.OptionButton30.Enabled = True
 
         Else
 
         If Me.CheckBox1.Value = False Then
 
         Me.OptionButton7.Enabled = False
         Me.OptionButton8.Enabled = False
         Me.OptionButton9.Enabled = False
         Me.OptionButton10.Enabled = False
         Me.OptionButton11.Enabled = False
         Me.OptionButton12.Enabled = False
         Me.OptionButton13.Enabled = False
         Me.OptionButton14.Enabled = False
         Me.OptionButton15.Enabled = False
         Me.OptionButton16.Enabled = False
         Me.OptionButton17.Enabled = False
         Me.OptionButton18.Enabled = False
         Me.OptionButton28.Enabled = False
         Me.OptionButton29.Enabled = False
         Me.OptionButton30.Enabled = False
        End If
End If
j'ai pu adapter le code ( pris sur le net) ci-dessous dans un autre document word qui fonctionne bien. mais lorsque je l'essaye dans un autre, il a agit sur tous les OptionButton du document.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
 
Private Sub CheckBox1_Click()
If Me.CheckBox1.Value = True Then
 
 
            For Each ControleEnCours In ActiveDocument.InlineShapes
        If ControleEnCours.Type = wdInlineShapeOLEControlObject Then
            If ControleEnCours.OLEFormat.ClassType = "Forms.OptionButton.1" Then
             ControleEnCours.OLEFormat.Object.Enabled = True    ' Active tous les OptionButton
            End If
        End If
    Next
 
 
  Else
 
         If Me.CheckBox1.Value = False Then
 
            For Each ControleEnCours In ActiveDocument.InlineShapes
        If ControleEnCours.Type = wdInlineShapeOLEControlObject Then
            If ControleEnCours.OLEFormat.ClassType = "Forms.OptionButton.1" Then
               ControleEnCours.OLEFormat.Object.Value = False      ' Remet tous les OptionButton à 0
               ControleEnCours.OLEFormat.Object.Enabled = False    ' Désactive tous les OptionButton
            End If
        End If
    Next
        End If
End If
 
End Sub
** Je dispose aussi d'un champ TextBox ou je parviens à mettre l'année en cours, mais j'aimerais que cette date soit incrementée d'une année.
c.a.d 2022 +1 = 2023 par exemple
ci-dessous mon code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Private Sub TextBox9_Change()
TextBox9.Value = Format(Now, "yyyy") + "1"
End Sub

Je n'ai pas de userform