Boucle "if"

abdellah_tadjine Messages postés 203 Statut Membre -  
jordane45 Messages postés 40050 Statut Modérateur -
Bonjour,
Voila j'ai une macro a répétition
et je veux la remplacé par une boucle
Private Sub CommandButton3_Click()

If Me.OptionButton1 = True Then
UserForm1.TextBox3.Value = enf1.Value
End If

If Me.OptionButton2 = True Then
UserForm1.TextBox3.Value = enf2.Value
End If

If Me.OptionButton3 = True Then

UserForm1.TextBox3.Value = enf3.Value
End If

If Me.OptionButton4 = True Then

UserForm1.TextBox3.Value = enf4.Value
End If


merci pour votre aide les amis

Configuration: Windows / Firefox 72.0

2 réponses

jordane45 Messages postés 40050 Statut Modérateur 4 758
 
Bonjour,,

Je suppose que tu veux boucler sur chaque OptionButton de ton UserForm
Dans ce cas, un code du genre peux t'y aider
Dim Ctrl As Control

For Each Ctrl In Me.Controls
    If TypeOf Ctrl Is MSForms.OptionButton Then 
     MsgBox Ctrl.Object.Value
    EndIf
Next Ctrl


Sinon, tu peux utiliser une boucle du genre
Dim i As Integer
    
    For i = 1 To 10
      if Me.Controls("OptionButton" & i) = true Then
        UserForm1.TextBox3.Value = Me.Controls("enf" & i).Value
      End if
    Next i

Édit : suppression d'un espace en trop


Enfin bon.. voila de quoi t'aider à avancer
https://silkyroad.developpez.com/VBA/ControlesUserForm/

0
abdellah_tadjine Messages postés 203 Statut Membre 6
 
une boite de dialogue de débogage, erreur
0
abdellah_tadjine Messages postés 203 Statut Membre 6 > abdellah_tadjine Messages postés 203 Statut Membre
 
If Me.Controls("OptionButton " & i) = True Then........il le souligne en jaune
0
jordane45 Messages postés 40050 Statut Modérateur 4 758 > abdellah_tadjine Messages postés 203 Statut Membre
 
Y'a un espace en trop
0
yg_be Messages postés 24281 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 585
 
bonjour, que sont les enf?
0