ajout libre dans une liste déroulante

Le
Greg
Bonjour,

J'ai créé des listes dans un tableau excel mais je souhaiterais pouvoir
ajouter un commentaire libre si celui ci ne se trouve pas dans la liste
déroulante. En gros, avoir la possibilité de rajouter manuellement une ligne
supplémentaire à ma liste déroulante mais directement via mon tableau.

Merci

Greg
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #17891991
Bonjour,

http://boisgontierjacques.free.fr/pages_site/donneesvalidation.htm#DVAjoutL iste

JB
http://boisgontierjacques.free.fr


On 19 nov, 12:38, "Greg"
Bonjour,

J'ai créé des listes dans un tableau excel mais je souhaiterais pouvo ir
ajouter un commentaire libre si celui ci ne se trouve pas dans la liste
déroulante. En gros, avoir la possibilité de rajouter manuellement un e ligne
supplémentaire à ma liste déroulante mais directement via mon table au.

Merci

Greg


Greg
Le #17896361
Merci pour la réponse. Seul petit souci, je ne souhaite pas forcément que le
texte libre qui remplace un élément de la liste déroulante soit ajouter à
cette liste. Est-il possible d'avoir une boite qui s'ouvre pour en faire le
choix?

En fait, dans le fichier exemple
(http://boisgontierjacques.free.fr/fichiers/DonneesValidation/DV_AjoutListe.xls),
si on répond non à la question "on ajoute", la donnée ne se valide pas. Je
pense qu'l y un petit bug. Sinon, ce serait parfait!

Greg
JB
Le #17899811
Bonjour,

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$2" Then
If IsError(Application.Match(Target.Value, [Liste], 0)) Then
If MsgBox("On ajoute à la liste?", vbYesNo) = vbYes Then
[Liste].End(xlDown).Offset(1, 0) = Target.Value
Sheets("Liste").[Liste].Sort key1:=Sheets("Liste").Range("A2")
End If
End If
End If
End Sub

JB

On 19 nov, 20:06, "Greg"
Merci pour la réponse. Seul petit souci, je ne souhaite pas forcément que le
texte libre qui remplace un élément de la liste déroulante soit ajo uter à
cette liste. Est-il possible d'avoir une boite qui s'ouvre pour en faire le
choix?

En fait, dans le fichier exemple
(http://boisgontierjacques.free.fr/fichiers/DonneesValidation/DV_Ajout... ),
si on répond non à la question "on ajoute", la donnée ne se valide pas. Je
pense qu'l y un petit bug. Sinon, ce serait parfait!

Greg


Greg
Le #17900151
Merci JB!

Ca marche impeccable dans la feuille exemple du site... mais comme je suis
un peu niais en ce qui concerne les codes, même après plusieurs
essais-erreurs infrctueux, je n'ai pas réussi à la faire fonctionner sur ma
feuille. Je l'ai pourtant coller sur la feuille correcpondant à la liste
déroulante.

Ma liste est en page "Infos" (Feuil3), colonne F, avec comme nom de champ
"niveaux de classe". J'ai nommé ma liste "niveaux" et je passe par la
validation de données pour générer ma liste en A2, page "séquence 2 (Feuil
4).

Je ne sais pas si je dois utiliser la fonction DECALER, ni comment, ni où...

Quelqu'un pourrait-il m'aider?

Merci d'avance...

Greg


"JB"
Bonjour,

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$2" Then
If IsError(Application.Match(Target.Value, [Liste], 0)) Then
If MsgBox("On ajoute à la liste?", vbYesNo) = vbYes Then
[Liste].End(xlDown).Offset(1, 0) = Target.Value
Sheets("Liste").[Liste].Sort key1:=Sheets("Liste").Range("A2")
End If
End If
End If
End Sub

JB

On 19 nov, 20:06, "Greg"
Merci pour la réponse. Seul petit souci, je ne souhaite pas forcément que
le
texte libre qui remplace un élément de la liste déroulante soit ajouter à
cette liste. Est-il possible d'avoir une boite qui s'ouvre pour en faire
le
choix?

En fait, dans le fichier exemple
(http://boisgontierjacques.free.fr/fichiers/DonneesValidation/DV_Ajout...),
si on répond non à la question "on ajoute", la donnée ne se valide pas. Je
pense qu'l y un petit bug. Sinon, ce serait parfait!

Greg


Greg
Le #17903151
Bon, à force d'essayer, j'ai trouvé comme un grand. Voici donc, si ça peut
servir à qqn d'aussi mal dégourdi que moi... :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$2" Then
If IsError(Application.Match(Target.Value, [nom], 0)) Then
If MsgBox("On ajoute à la liste?", vbYesNo) = vbYes Then
[nom].End(xlDown).Offset(1, 0) = Target.Value
Sheets("onglet").[nom].Sort key1:=Sheets("onglet").Range("A2")
End If
End If
End If
End Sub

En sachant que "nom" correspond au nom donné à la liste, et "onglet"
correspond au nom de la feuille...

Merci encore JB!

Greg
Publicité
Poster une réponse
Anonyme