Incrémentation liste de donnée de validation

Bonjour à tous les Exceliens,

Je viens vers vous pour une question qui rendra service à grand nombre je pense de novice comme moi.

J'ai créé une liste à partir des données de validation (=Toto), Toto fait référence aux cellules D2 à D10 de l'onglet "Parametre", avec D5 à D10 cellules vides.

En gros Toto = D2 (Banane) + D3(Orange) + D4(Pomme)+ D5(-)+ …. +D10(-)

J'aurais voulu savoir s'il est possible d'incrémenter ma liste Toto quand je saisi par exemple sur mon onglet "Commande" cellule A5 qui contient ma liste, une donnée étrangère à celle-ci par exemple Kiwi.

Résultat devant être obtenu :

Onglet "Commande" cellule A5 valeur -> Kiwi

Onglet "Parametre" cellule D5 prend la valeur D5. Ceci afin de pouvoir proposer maintenant dans ma liste Toto Kiwi en plus de Banane, Orange et Pomme

J'espère avoir été assez clair, car ce qui est clair pour soit ne l'est pas forcément pour d'autre :)

En vous remerciant tous par avance pour vos illuminations sur ce sujet

Ben

Bonjour

Il faut mettre les listes sources de validation sous forme de tableau structuré

Si la liste existe déjà, avec un titre, se placer sur un des fruits, Accueil, Mettre sous forme de tableau et valider

A gauche de l'onglet Outils de tableau qui s'affiche, remplacer le nom Tableau1 par L_Fruits par exemple

Sélectionner la liste hors titre puis, Formules, Définir un nom : choisir comme nom Fruit

Dans la Validation utiliser Liste et dans Source : =Fruit

Tout ajout ou modification dans le tableau L_Fruits, et donc sa colonne nommée Fruit, sera automatiquement répercuté sur toutes les validations l'utilisant

Bonjour,

C'est possible en passant par VBA.

Il y a un pré-requis important cependant, c'est que la liste soit en fait une colonne d'un tableau structuré (même si celui-ci n'a qu'une colonne).

Ex : Nommons le T et la colonne contenant la liste Liste

Formule de validation :

=INDIRECT("T[Liste]")

Ainsi, la liste se mettra à jour automatiquement...

Ensuite, posons que vous avez vos données à valider sur Commande en colonne A. Il faut saisir ce code dans le module de la feuille Commande (1er essai) :

private sub worksheet_change(byval target as range)

if not intersect(target, range("A:A")) is nothing then
    if target.value <> "" and target.count = 1 then
        with Sheets("Parametre")
            if application.countif(.range("T[Liste]"), target.value) = 0 then
                if msgbox("Ajouter à la liste ?", vbyesno) = vbyes then
                    .range("T[Liste]")(.range("T").rows.count + 1).value = target.value
                end if
            end if
        end with
    end if
end if

end sub

Il faut cependant que votre validation se limite à l'avertissement et non à l'arrêt. C'est à tester...

Cdlt,

Edit : Bonjour Chris

Bonjour à vous les amis,

Je viens de tester et malheureusement j'ai une erreur.

Je pense avoir fait tout ce que vous avez dit, mais je vous laisse regarder.

Merci encore

15classeur2.xlsm (15.83 Ko)

Bonjour,

En effet, j'aurais dû préciser que le tableau était sur la feuille paramètre.

Maintenant, ça marche mais il faut quand même faire quelques essais.

Cdlt,

25classeur2.xlsm (16.42 Ko)

EDIT : CODE EDITE a modifier !!! Effacement inutile enlevé

Super nickel, merci beaucoup 3GB, cela marche nickel. Je me suis même permis un extra à mon niveau, j'ai ajouté un tri par ordre alphabétique.

Le fichier joint pour ce que cela intéresse.

Merci encore

28classeur2.xlsm (18.41 Ko)
Rechercher des sujets similaires à "incrementation liste donnee validation"