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)
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
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
** 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.
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
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
Partager