Boucle "if"

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

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    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/

    1. une boite de dialogue de débogage, erreur
    2. @abdellah_tadjineIf Me.Controls("OptionButton " & i) = True Then........il le souligne en jaune