[VBA] Validation dynamique sous Excel

Résolu
Bonjour,

Petit souci en VBA.

Je suis en train de créer un formulaire de commande qui sera utilisé en 2 étapes.
Etape 1 - L'utilisateur #1 personnalise le formulaire. Il entre les quantités commandables: Exemple: minimum 10, Maximum 20.
Etape 2 - L'utilisateur #2 ouvre le formulaire personnalisé par l'utilisateur 1 et entre dans une cellule (G29) la quantité qu'il aimerait recevoir.

J'aimerais que l'utilisateur 1 puisse dynamiquement définir les conditions de validation (via minimum/maximum) de la cellule G29 sans devoir aller dans "données>validation". Le top serait qu'il entre le minimum et maximum dans des cellules (respectivement O29 et P29) et que cela modifie les critères de validation dynamiquement.

Puis j'aimerais que si l'utilisateur 2 entre une valeur fausse (par exemple 32 dans notre exemple) cela lui affiche un message genre: "Erreur, vous devez entrer une quantité entre 10 et 20."

Auriez vous une idée comment faire? J'ai déjà essayé 2-3 trucs mais ça ne marche pas...

Merci mille fosi d'avance!!!!!!
Configuration: Windows XP Internet Explorer 7.0

3 réponses

  1. Contributeur
    Ci joint proposition (là il faut VBA !!!) ;-)

    macro événementielle à copier coller dans le module feuille concerné
    a adapter avec tes adresses de celulles: G29 au lieu de D3 etc.

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Union(Range("A1"), Range("B2"))) Is Nothing Then: Exit Sub
    
    mini = Range("A1")
    maxi = Range("B2")
    
    Range("D3").Select
        With Selection.Validation
            .Delete
            .Add Type:=xlValidateWholeNumber, AlertStyle:=xlValidAlertStop, _
            Operator:=xlBetween, Formula1:=mini, Formula2:=maxi
            .InputMessage = "saisir une valeur entre " & mini & " et " & maxi
            .ErrorMessage = "valeur incorrecte: saisir une valeur entre " & mini & " et " & maxi
        End With
    End Sub


    Bonne soirée
    1. Merci Michel... je vois que je cherchais beaucoup trop loin... dès fois la simplicité....

      Par contre saurais tu comment mettre un message d'erreur personnalisé du genre: "ERREUR la quantité doit être comprise entre XXX et YYY", XXX et YYY étant dynamiques.

      Merci!
      1. Contributeur
        Bonjour,

        Quel est l'intérêt d'utiliser VBA ?

        tout simplement:
        dans données validation:
        autoriser: personnalisé
        et dans formule
        =(G29>=O29)*(G29<=P29)

        ou alors, je n'ai rien compris à ta demande...