XL 2010 Gestion d'erreur dans un UserForm

jeff1494

XLDnaute Occasionnel
Bonsoir à toutes et tous;

Je viens vers vous car j'ai un soucis dont je n'arrive pas à me débarrasser.
Je suis en train de créer un fichier de suivi de budget pour un projet de construction d'une machine CNC.
Le principe est assez simple.

Depuis un bouton placé sur une feuille (Suivi du Budget), je lance l'affichage d'un UserForm de saisie de certaines données.
Si il existe déjà des valeurs pour les zones que je veux gérer (cela vient d'une feuille nommée BD), j'initialise les textbox du UserForm avec ces données.
Puis j'affiche le UserForm.
L'utilisateur peut à ce moment là modifier les valeurs.
Quand il clique sur le bouton "Valider", alors je commence ma série de vérification.
L'une d'entre elles est de m'assurer que la somme des pourcentages renseignés pour chaque section (Structure, Mécanique, Electronique, Outillage) ne peut excéder 100%.
Ce que je veux faire est :
Durant les contrôles, calculer le total des pourcentages, et si cela dépasse 100, alors affichage d'un message d'erreur, qui devrait permettre à l'utilisateur de modifier sa saisie.

J'arrive presque au résultat. Ce qui me bloque est que lorsque je trouve une erreur, j'affiche un MsgBox, mais lorsque je clique sur le bouton OK du MsgBox, je perd le focus sur le UserForm, et impossible du moins pour moi, de revenir dans le Userform pour modifier les valeurs puis de revenir dans le process de vérification.

Alors autant vous le dire tout de suite, je débute dans le VBA pour Excel, donc mon code n'est certainement pas parfait, loin s'en faut.
Donc un peu d'indulgence SVP.

D'avance je remercie ceux ou celles qui prendront de me lire et de me répondre.
Bonne soirée à toutes et tous.
 

Pièces jointes

  • Suivi budget.xlsm
    52.7 KB · Affichages: 16

eriiic

XLDnaute Barbatruc
Bonjour,

J'imagine plus ça comme structure :
VB:
    If PourTot < 100 Then
        MsgBox "Le Total des % doit être = à 100"
        ' on ne ferme pas l'UF
    Else
        ' écriture données
        ' fermeture UF
    End If
Au passage testes l'inverse de ce que tu annonces dans le texte. <100 au lieu de >100
Et dans le message maintenant c'est =100. Faudrait savoir...

Et perdre le focus c'est devenir inactif au profit d'un autre objet, mais toujours visible. Toi tu le fermes.
eric
 

Statistiques des forums

Discussions
311 732
Messages
2 081 995
Membres
101 857
dernier inscrit
mt60400