Userfom VBA
Résolugbdos Messages postés 65 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'espère que tout le monde va bien :)
Je viens vers vous, car je suis en train de modifier un fichier Excel avec macro VBA que je n'ai pas créé au départ et qui contient des Userform.
Je ne peux malheureusement pas partager mon fichier, je vais donc essayer d'être la plus claire possible dans ma demande.
Le fichier démarre avec un Userform (Userform2) où l'on renseigne des champs, puis on valide.
Le bouton de validation lance une vérification, puis si c'est bon, il lance la macro Calculer du Module1.
Code bouton de validation du Userform2 :
Private Sub CommandButton1_Click() If (verification(ComboBox1.Value, ComboBox2.Value) = True) Then Sheets("Données").Cells(6, 6).Value = DTPicker2.Value Sheets("Données").Cells(3, 3).Value = ComboBox1.Value Sheets("Données").Cells(4, 3).Value = ComboBox2.Value Sheets("Données").Cells(3, 6).Value = TextBox1.Value Sheets("Données").Cells(7, 3).Value = TextBox3.Value Module1.Calculer Else MsgBox "Attention, le nom du produit ne correspond pas à la référence" End If End Sub
La modification que je dois faire, c'est une comparaison entre une donnée saisie dans Userform2 et une valeur dans une des feuilles du fichier.
Si les 2 valeurs ne sont pas égales, je veux faire apparaître une fenêtre (Userform3) pour dire que ce n'est pas égale (valeur saisie supérieure à valeur de la feuille du fichier), avec 2 boutons de commande : CommandButton1 pour accepter la valeur saisie et continuer la macro Calculer et CommandButton2 pour refuser et donc arrêter la macro Calculer et revenir au Userform2 de saisie.
Et pareil avec un Userform4 pour le cas : valeur saisie inférieur à valeur de la feuille du fichier
Et là... c'est le drame. J'ai des messages d'erreur. Je comprends que le programme ne peux pas faire quelque chose qui est déjà fait, mais je ne sais pas comment corriger.
Code du test dans la macro Calculer :
Private Sub CommandButton1_Click() If (verification(ComboBox1.Value, ComboBox2.Value) = True) Then Sheets("Données").Cells(6, 6).Value = DTPicker2.Value Sheets("Données").Cells(3, 3).Value = ComboBox1.Value Sheets("Données").Cells(4, 3).Value = ComboBox2.Value Sheets("Données").Cells(3, 6).Value = TextBox1.Value Sheets("Données").Cells(7, 3).Value = TextBox3.Value Module1.Calculer Else MsgBox "Attention, le nom du produit ne correspond pas à la référence" End If End Sub
Code des CommandButton1 et 2 des Userform3 et 4 :
Private Sub CommandButton1_Click() Module1.Calculer End Sub Private Sub CommandButton2_Click() UserForm2.Show 0 End Sub
J'espère que mon explication a été claire :)
Et merci d'avance pour ceux auront eu le courage d'essayer de comprendre ma demande :)
Bonne journée
Windows / Firefox 108.0
3 réponses
Bonjour,
une fenêtre (Userform3) pour dire que ce n'est pas égale
Une MsgBox irait bien mieux pour choisir stop ou encore.Vous avez pas besoin de deux Userform
J'espère que mon explication a été claire :)
Pas vraiment.
Je ne peux malheureusement pas partager mon fichier
Pourquoi?
bonjour,
- C'est bizarre, tu montres deux fois le même code.
- Tu mentionnes des messages d'erreur. Quels sont-ils?
- Je ne comprends pas que tu comprennes que le programme ne peux pas faire quelque chose qui est déjà fait.