Ajout automatique nom dans menu déroulant
Résolu/Fermé
nlbmoi
Messages postés
434
Date d'inscription
samedi 26 août 2006
Statut
Membre
Dernière intervention
3 décembre 2023
-
14 févr. 2014 à 17:10
Le Pingou Messages postés 12044 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 25 avril 2024 - 19 août 2014 à 16:09
Le Pingou Messages postés 12044 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 25 avril 2024 - 19 août 2014 à 16:09
A voir également:
- Ajout automatique nom dans menu déroulant
- Menu déroulant excel - Guide
- Trouver un nom avec une adresse ✓ - Forum Loisirs / Divertissements
- Trouver un numéro de portable avec un nom ✓ - Forum Mobile
- Supprimer menu déroulant excel ✓ - Forum Excel
- Message automatique thunderbird - Guide
10 réponses
Le Pingou
Messages postés
12044
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
25 avril 2024
1 426
14 févr. 2014 à 17:58
14 févr. 2014 à 17:58
Bonjour,
Au passage, s'il s'agit juste du nom il faut l'ajouter dans la base de données.
Au passage, s'il s'agit juste du nom il faut l'ajouter dans la base de données.
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
523
14 févr. 2014 à 17:59
14 févr. 2014 à 17:59
Bonjour,
Une proposition
https://www.cjoint.com/?DBor6ozzzUy
A+
Une proposition
https://www.cjoint.com/?DBor6ozzzUy
A+
nlbmoi
Messages postés
434
Date d'inscription
samedi 26 août 2006
Statut
Membre
Dernière intervention
3 décembre 2023
24
17 févr. 2014 à 17:13
17 févr. 2014 à 17:13
Bonjour
Merci de ta réponse qui convient parfaitement à ce que je souhaite. Pourrais-tu détailler un peu les lignes de code (pour que je puisse comprendre ce que tu as fait et que je le refasse !)
Merci encore.
Merci de ta réponse qui convient parfaitement à ce que je souhaite. Pourrais-tu détailler un peu les lignes de code (pour que je puisse comprendre ce que tu as fait et que je le refasse !)
Merci encore.
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
523
17 févr. 2014 à 17:52
17 févr. 2014 à 17:52
Bonjour,
J'ai ajouté quelques commentaires pour la compréhension
A noter que la plage nommée "Noms" est une plage dynamique définie par la formule
A+
J'ai ajouté quelques commentaires pour la compréhension
Private Sub Worksheet_Change(ByVal Target As Range)
'Si la plage modifiée concerne plusieurs cellules, on sort de la procédure
If Target.Count > 1 Then Exit Sub
'Si la modification concerne la cellule A1
If Target.Address = "$A$1" Then
With Worksheets("Base")
'Si la valeur de A1 n'est pas une valeur de la plage nommée "Noms"
If Application.CountIf(.Range("Noms"), Target) = 0 Then
'On ajoute cette valeur à la plage nommée "Noms"
.Range("A" & Rows.Count).End(xlUp).Offset(1) = Target
End If
End With
End If
End Sub
A noter que la plage nommée "Noms" est une plage dynamique définie par la formule
=DECALER(Base!$A$1;;;NBVAL(Base!$A:$A))
A+
nlbmoi
Messages postés
434
Date d'inscription
samedi 26 août 2006
Statut
Membre
Dernière intervention
3 décembre 2023
24
17 févr. 2014 à 22:34
17 févr. 2014 à 22:34
Je comprends mieux maintenant sauf peut-être la première ligne "Si la plage modifiée concerne plusieurs cellules, on sort de la procédure" : je ne vois pas à quoi ça correspond.
Est-ce qu'il est possible d'avoir une saisie pré-automatique : par exemple, si ma liste est longue et que je souhaite sélectionner un élément en bas de la liste, peut-on taper la ou les premières lettres et faire en sorte que n'apparaissent que les éléments de la liste commençant par ses lettres ?
Merci de prendre du temps en tout cas.
Est-ce qu'il est possible d'avoir une saisie pré-automatique : par exemple, si ma liste est longue et que je souhaite sélectionner un élément en bas de la liste, peut-on taper la ou les premières lettres et faire en sorte que n'apparaissent que les éléments de la liste commençant par ses lettres ?
Merci de prendre du temps en tout cas.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
523
18 févr. 2014 à 10:54
18 févr. 2014 à 10:54
Bonjour,
La première ligne "Si la plage modifiée concerne plusieurs cellules, on sort de la procédure" permet d'éviter de générer une erreur si l'opérateur effectue une modification sur un ensemble de cellules (sélection d'une plage et effacement par exemple).
Pour la saisie semi-automatique tu peux utiliser la méthode proposée dans ce lien
https://www.commentcamarche.net/applis-sites/bureautique/549-creer-des-listes-deroulantes-dans-excel/
En voici une application.
https://www.cjoint.com/c/DBskZbAgaP4
Pour obtenir un fonctionnement satisfaisant, il faut que a liste soit triée. J'ai donc ajouté un tri automatique dans la procédure.
A+
La première ligne "Si la plage modifiée concerne plusieurs cellules, on sort de la procédure" permet d'éviter de générer une erreur si l'opérateur effectue une modification sur un ensemble de cellules (sélection d'une plage et effacement par exemple).
Pour la saisie semi-automatique tu peux utiliser la méthode proposée dans ce lien
https://www.commentcamarche.net/applis-sites/bureautique/549-creer-des-listes-deroulantes-dans-excel/
En voici une application.
https://www.cjoint.com/c/DBskZbAgaP4
Pour obtenir un fonctionnement satisfaisant, il faut que a liste soit triée. J'ai donc ajouté un tri automatique dans la procédure.
A+
nlbmoi
Messages postés
434
Date d'inscription
samedi 26 août 2006
Statut
Membre
Dernière intervention
3 décembre 2023
24
18 févr. 2014 à 11:09
18 févr. 2014 à 11:09
Bonjour
J'ai testé le fichier que tu as envoyé : lorsque je sélectionne un élément de la liste, j'ai une erreur de compilation et il me surligne xlSortOnValues
J'ai testé le fichier que tu as envoyé : lorsque je sélectionne un élément de la liste, j'ai une erreur de compilation et il me surligne xlSortOnValues
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
523
18 févr. 2014 à 11:31
18 févr. 2014 à 11:31
Essaie avec ce code
A+
Private Sub Worksheet_Change(ByVal Target As Range)
'Si la plage modifiée concerne plusieurs cellules, on sort de la procédure
If Target.Count > 1 Then Exit Sub
'Si la modification concerne la cellule A1
If Target.Address = "$A$1" Then
Application.ScreenUpdating = False
With Worksheets("Base")
'Si la valeur de A1 n'est pas une valeur de la plage nommée "l_noms"
If Application.CountIf(.Range("l_noms"), Target) = 0 Then
'On ajoute cette valeur à la plage nommée "l_noms"
.Range("A" & Rows.Count).End(xlUp).Offset(1) = Target
End If
'On effectue le tri de la liste
.Range("l_noms").Sort Key1:=.Range("A1"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End With
End If
End Sub
A+
nlbmoi
Messages postés
434
Date d'inscription
samedi 26 août 2006
Statut
Membre
Dernière intervention
3 décembre 2023
24
18 févr. 2014 à 17:38
18 févr. 2014 à 17:38
Re
Le code marche nickel.
J'ai essayé de le mettre à ma sauce pour l'adapter à mon fichier mais ça ne marche pas : je joins mon fichier https://www.cjoint.com/?3BsrFCTaNPC
SUr mon fichier :
- j'ai plusieurs listes de choix : une pour les clubs (qui couvrent 2 colonnes dans la 1ere feuille), une pour les arbitres (qui couvrent 2 colonnes dans la 1ere feuille) et une pour les marqueurs (pour les autres, la liste est connue, je n'ai pas besoin de l'ajouter via la première feuille).
- j'aimerais que la pré-saisie et l'ajout d'un nom dans une liste soit possible quelque soit la ligne dans une même colonne (par ex, comme je vais avoir plusieurs matchs, j'aurais plusieurs lignes et j'aimerais pouvoir faire en sorte que l'ajout dans une liste se vérifie pour chaque ligne saisie)
Merci beaucoup pour ton aide
Le code marche nickel.
J'ai essayé de le mettre à ma sauce pour l'adapter à mon fichier mais ça ne marche pas : je joins mon fichier https://www.cjoint.com/?3BsrFCTaNPC
SUr mon fichier :
- j'ai plusieurs listes de choix : une pour les clubs (qui couvrent 2 colonnes dans la 1ere feuille), une pour les arbitres (qui couvrent 2 colonnes dans la 1ere feuille) et une pour les marqueurs (pour les autres, la liste est connue, je n'ai pas besoin de l'ajouter via la première feuille).
- j'aimerais que la pré-saisie et l'ajout d'un nom dans une liste soit possible quelque soit la ligne dans une même colonne (par ex, comme je vais avoir plusieurs matchs, j'aurais plusieurs lignes et j'aimerais pouvoir faire en sorte que l'ajout dans une liste se vérifie pour chaque ligne saisie)
Merci beaucoup pour ton aide
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
523
19 févr. 2014 à 11:11
19 févr. 2014 à 11:11
nlbmoi
Messages postés
434
Date d'inscription
samedi 26 août 2006
Statut
Membre
Dernière intervention
3 décembre 2023
24
19 févr. 2014 à 15:51
19 févr. 2014 à 15:51
Merci pour ta réactivité !
J'ai réussi à tout mettre à jour.
Il y a juste une attention à avoir : il faut décocher la case "Saisie semi-automatique d'entrées de cellule" dans les options d'Excel sinon la liste de choix se restreint aux données déjà présentes dans la colonne.
Merci beaucoup pour tout.
J'ai réussi à tout mettre à jour.
Il y a juste une attention à avoir : il faut décocher la case "Saisie semi-automatique d'entrées de cellule" dans les options d'Excel sinon la liste de choix se restreint aux données déjà présentes dans la colonne.
Merci beaucoup pour tout.
Bonjour, j'ai suivi votre conversation et je travaille sur un fichier pour mon stage qui me pose le même problème.
Le code a l'air bien mais je m'y connais pas suffisamment pour le modifier tout seul. Je voulais juste savoir si il était possible que lorsque l'utilisateur rentre à la main une nouvelle donnée, un message apparaisse du genre "cette donnée ne fait pas partie de la liste. Souhaitez-vous l'ajouter?" avec "oui" ou "annuler" en boutons.
Par ce petit message j'espere éviter l'ajout automatique de tout et n'importe quoi dans les listes déroulantes, au moins ca évite les coquilles.
Comment faire pour intégrer ce message dans le code proposé par Gyrus?
Merci d'avance
Le code a l'air bien mais je m'y connais pas suffisamment pour le modifier tout seul. Je voulais juste savoir si il était possible que lorsque l'utilisateur rentre à la main une nouvelle donnée, un message apparaisse du genre "cette donnée ne fait pas partie de la liste. Souhaitez-vous l'ajouter?" avec "oui" ou "annuler" en boutons.
Par ce petit message j'espere éviter l'ajout automatique de tout et n'importe quoi dans les listes déroulantes, au moins ca évite les coquilles.
Comment faire pour intégrer ce message dans le code proposé par Gyrus?
Merci d'avance
Le Pingou
Messages postés
12044
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
25 avril 2024
1 426
Modifié par Le Pingou le 19/08/2014 à 16:09
Modifié par Le Pingou le 19/08/2014 à 16:09
Bonjour,
Juste au passage, vous pouvez compléter le code de Gyrus (salutations) comme suit :
Juste après la ligne :
Salutations.
Le Pingou
Juste au passage, vous pouvez compléter le code de Gyrus (salutations) comme suit :
Juste après la ligne :
If Application.CountIf(Liste, Target) = 0 ThenVous insérez ces 2 lignes de code :
choix = MsgBox("Cette donnée [" & Target & "] ne fait pas partie de la liste." & Chr(13) & " Souhaitez-vous l'ajouter?", vbYesNo, "Votre choix est nécessaire..!")
If choix = vbNo Then Exit Sub
Salutations.
Le Pingou