Probleme de boucle infinie

Re bonjour,

Avant de valider ma facture, je voudrais vérifier que 1 optionbutton soit bien coché avant d'aller plus loin dans le programme. mais là je sèche car a chaque boucle testée, j'ai le msgbox "saisir un mode de réglement" qui tourne a l'infini. Quelqu'un a une idée ? voilà le code sans boucle pour pas m'embrouiller

Private Sub Facturation_Click()
Dim lemail As Variant
Dim numfact As Integer

'controle du mode de reglement

    Call controlereglement

'procedure de sauvegarde
    MsgBox ("Procedure de sauvegarde")
    Call PDF1

    'incrementation num facture
.......
Sub controlereglement()
 'validation paiement

    If CB.Value = True Then
        Range("F35").Value = CB.Caption
        Else
            If monnaie.Value = True Then
            Range("F35").Value = monnaie.Caption
            Else
                If cheque.Value = True Then
                Range("F35").Value = cheque.Caption
                Else
                    If cb_monnaie.Value = True Then
                    Range("F35").Value = cb_monnaie.Caption
                    Else
                        If cb_chq.Value = True Then
                        Range("F35").Value = cb_chq.Caption
                        Else
                            If monnaie_chq.Value = True Then
                            Range("F35").Value = monnaie_chq.Caption
                            Else
                            MsgBox ("Saisir un mode de réglement")
                            End If
                        End If
                    End If
                End If
            End If
        End If
End Sub

Bonjour,

Difficile de comprendre un problème lorsqu'il est partiellement présenté...

En tout cas, voici un essai si tous vos optionbuttons concernent un moyen de règlement :

Private Sub Facturation_Click()
Dim lemail As Variant
Dim numfact As Integer
ModeRglt = TypeRglt
if ModeRglt <> "" then Range("F35").Value = ModeRglt else MsgBox "Saisir un mode de réglement": exit sub
Call PDF1
End Sub

private Function TypeRglt() as string
for each ctrl in me.controls
    if typename(ctrl) = "OptionButton" then
        if ctrl.value = true then TypeRglt = ctrl.caption: exit function
    end if
next ctrl
end function

Cdlt,

Rechercher des sujets similaires à "probleme boucle infinie"