Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

ajout libre dans une liste déroulante

5 réponses
Avatar
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

5 réponses

Avatar
JB
Bonjour,

http://boisgontierjacques.free.fr/pages_site/donneesvalidation.htm#DVAjoutL" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://boisgontierjacques.free.fr/pages_site/donneesvalidation.htm#DVAjoutL iste

JB
http://boisgontierjacques.free.fr


On 19 nov, 12:38, "Greg" wrote:
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


Avatar
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_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
Avatar
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" wrote:
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


Avatar
Greg
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" a écrit dans le message de news:

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" wrote:
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


Avatar
Greg
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