Userfom VBA

Résolu
gbdos Messages postés 59 Date d'inscription mercredi 10 septembre 2008 Statut Membre Dernière intervention 15 janvier 2024 - Modifié le 26 août 2023 à 15:16
gbdos Messages postés 59 Date d'inscription mercredi 10 septembre 2008 Statut Membre Dernière intervention 15 janvier 2024 - 28 août 2023 à 09:01

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

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
26 août 2023 à 16:41

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?

0
yg_be Messages postés 22732 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 avril 2024 1 477
27 août 2023 à 08:18

bonjour,

  1. C'est bizarre, tu montres deux fois le même code.
  2. Tu mentionnes des messages d'erreur.  Quels sont-ils?
  3. Je ne comprends pas que tu comprennes que le programme ne peux pas faire quelque chose qui est déjà fait.
0
gbdos Messages postés 59 Date d'inscription mercredi 10 septembre 2008 Statut Membre Dernière intervention 15 janvier 2024 2
28 août 2023 à 09:01

Bonjour,

Désolée de ne pas avoir été très claire dans mon explication et ma demande.

J'ai trouvé une solution à mon problème.

Merci d'avoir pris le temps de lire mon post.

A bientôt pour une nouvelle question que j'espère plus claire.

0