[VBA] Validation dynamique sous Excel
Résolu
Praetorian
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
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!!!!!!
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
-
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 -
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... -
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!