Bonjour,
Je reprends ce vieux fil.
Sur une feuille il y a un ComboBox. À côté de celui-ci un TextBox.
Je choisis un item dans le ComboBox, automatiquement le nombre (formaté) qui est dans le TextBox est substitué par "0,00%". Je voudrais que ce résultat soit surligné pour y entrer immédiatement un nouveau pourcentage.
Dans le post#2, zazaraignée propose :
Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 MonTextBox.SelStart = 0 MonTextBox.SelLength = Len (MonTextBox.Text) MonTextBox.SetFocus
J’ai essayé d’adapter cette solution à ma macro (qui marche très bien) :
Ça ne marche pas...
Code VBA : 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 Sub ChangeItem(ComboName$) 'Quand on change d'item dans la liste du ComboBox, le pourcentage s'annule dans le TextBox et le CheckBox est décoché s'il l'était Dim suf As Byte, tb As MSForms.TextBox, cb As Object, i As Byte, ad As Double suf = ExtractNumber(ComboName) 'suffixe du ComboBox Set tb = ActiveSheet.OLEObjects("TextBoxPP" & suf).Object 'TextBox "TextBoxPP" tb.Value = Format(0, "##,##0.00""%""") 'affiche 0 + formatage (--> 0,00%) tb.Activate 'MARCHE ' tb.SelStart = 0 ' ' tb.SelLength = 4 'NE MARCHE PAS ' tb.SetFocus ' Set cb = ActiveSheet.OLEObjects("CheckBoxPP" & suf).Object 'CheckBox "CheckBoxPP" If cb Then 'le CheckBox correspondant au ComboBox est coché cb = 0 'le CheckBox est décoché CheckSolvants = CheckSolvants - 1 'et hop ! 1 solvant checké en moins pourcents(suf) = 0 'le pourcentage sera forcément 0 dans le tableau dynamique "pourcents()" If CheckSolvants > 0 Then For i = 1 To NbSolvants + 1 '(Base 0) Set cb = ActiveSheet.OLEObjects("CheckBoxPP" & i).Object 'CheckBox "CheckBoxPP" If cb Then ad = ad + pourcents(i) 'repérage des CheckBox toujours cochés et addition de leurs pourcentages Next Set tb = ActiveSheet.OLEObjects("TextBox_AddPourcent").Object 'TextBox "TextBox_AddPourcent" tb.Value = Format(ad, "##,##0.00""%""") 'le TextBox "TextBox_AddPourcent" affiche la somme de tous les pourcentages toujours checkés + mise en forme (suffixe "%") End If End If End Sub
Comment s'y prendre ?
Partager