Liste déroulante excel macro
Résolu/Fermé
Laurence
-
29 mars 2009 à 14:23
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 - 11 janv. 2010 à 13:24
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 - 11 janv. 2010 à 13:24
A voir également:
- Liste déroulante excel macro
- Liste déroulante excel - Guide
- Excel liste déroulante en cascade - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Formule excel - Guide
- Macro word - Guide
11 réponses
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
289
30 mars 2009 à 13:37
30 mars 2009 à 13:37
je te propose cette solution.
1) nomme la liste en feuille2 : Ici je l'appelle "listeperso"
2) click sur Données / (outils de données) validation de données,
Choisit : Autoriser : liste
et source =listeperso puis OK
sur la feuille 2 place un bouton
et recopie ce code
Sub miseàjourliste()
'
' test Macro
'
' Attention je considère que tu mets un titre en A1
'la liste commence en A2....
Sheets("Feuil2").Select
Range("A1").Select
nbligne = Range(Selection, Selection.End(xlDown)).Rows.Count ' le nombre de ligne
Range("A1").Offset(1, 0).Resize(nbligne, 1).Name = "listeperso" ' de A2 à Axx
Range("A1").Select
End Sub
A+
1) nomme la liste en feuille2 : Ici je l'appelle "listeperso"
2) click sur Données / (outils de données) validation de données,
Choisit : Autoriser : liste
et source =listeperso puis OK
sur la feuille 2 place un bouton
et recopie ce code
Sub miseàjourliste()
'
' test Macro
'
' Attention je considère que tu mets un titre en A1
'la liste commence en A2....
Sheets("Feuil2").Select
Range("A1").Select
nbligne = Range(Selection, Selection.End(xlDown)).Rows.Count ' le nombre de ligne
Range("A1").Offset(1, 0).Resize(nbligne, 1).Name = "listeperso" ' de A2 à Axx
Range("A1").Select
End Sub
A+
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
289
30 mars 2009 à 15:19
30 mars 2009 à 15:19
la macro vient simplement actualiser un élément de la liste que tu aurais ajouter
manuellement.
comme tu n'as pas demandé que l'ajout se fasse par la macro...je ne l'ai pas fait.
Sheets("Feuil2").Select : sélectionne la feuille pour que tu suives....
Range("A1").Select : sélectionne la cellule A1nbligne = Range(Selection, Selection.Endnbligne = nbligne=Range(Selection, Selection.End(xlDown)).Rows.Count ' compte le nombre de ligne et garde le résultat dans nbligne
Range("A1").Offset(1, 0).Resize(nbligne, 1).Name = "listeperso" ' de A2 à Axx renomme la zonne de liste
Range("A1").Select
j'espère avoir répondu à ta question, sinon précise ton besoin.
manuellement.
comme tu n'as pas demandé que l'ajout se fasse par la macro...je ne l'ai pas fait.
Sheets("Feuil2").Select : sélectionne la feuille pour que tu suives....
Range("A1").Select : sélectionne la cellule A1nbligne = Range(Selection, Selection.Endnbligne = nbligne=Range(Selection, Selection.End(xlDown)).Rows.Count ' compte le nombre de ligne et garde le résultat dans nbligne
Range("A1").Offset(1, 0).Resize(nbligne, 1).Name = "listeperso" ' de A2 à Axx renomme la zonne de liste
Range("A1").Select
j'espère avoir répondu à ta question, sinon précise ton besoin.
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
289
30 mars 2009 à 15:24
30 mars 2009 à 15:24
Bonjour Laurence,
Je précise que je suis débutante sur excel 07
1) nomme la liste en feuille2 : Ici je l'appelle "listeperso" et je valide C'est juste
je me mets où sur la feuil2? Non ! sur la feuille1 c'est là que tu voulais utiliser ta liste!!!
car quand je fais validation de données j'ai ce message " Impossible de trouver une plage nommée que vous avez spécifié.
je pense que tu as oublié le signe = dans la zone source il faut mettre =listeperso
Je précise que je suis débutante sur excel 07
1) nomme la liste en feuille2 : Ici je l'appelle "listeperso" et je valide C'est juste
je me mets où sur la feuil2? Non ! sur la feuille1 c'est là que tu voulais utiliser ta liste!!!
car quand je fais validation de données j'ai ce message " Impossible de trouver une plage nommée que vous avez spécifié.
je pense que tu as oublié le signe = dans la zone source il faut mettre =listeperso
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
289
31 mars 2009 à 08:52
31 mars 2009 à 08:52
Bonjour Laurence, un petit plus
je t'ai ajouté un filtre tri de A à Z ( j'aurai dû y penser, mais je m'attache à répondre aux questions)
Attention toutefois, ta liste ne doit pas contenir de cellules vides
sinon tu n'auras qu'une partie de la liste.
A+
La macro ci-dessous.
Sub miseàjourliste()
'
' miseàjourliste .... avec un tri alphabétique A..Z
'
'
Sheets("Feuil2").Select
Range("A1").Select
nbligne = Range(Selection, Selection.End(xlDown)).Rows.Count
Range("A1").Offset(1, 0).Resize(nbligne, 1).Name = "listeperso"
Range("A1").Select
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear 'supprime les filtres
'prépare le filtre
ActiveWorkbook.Worksheets("Feuil2").Sort.SortFields.Add Key:=Range("A2:A" & nbligne), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
'applique le filtre
With ActiveWorkbook.Worksheets("Feuil1").Sort
.SetRange Range("A1:A" & nbligne)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
' fin du filtre
End Sub
je t'ai ajouté un filtre tri de A à Z ( j'aurai dû y penser, mais je m'attache à répondre aux questions)
Attention toutefois, ta liste ne doit pas contenir de cellules vides
sinon tu n'auras qu'une partie de la liste.
A+
La macro ci-dessous.
Sub miseàjourliste()
'
' miseàjourliste .... avec un tri alphabétique A..Z
'
'
Sheets("Feuil2").Select
Range("A1").Select
nbligne = Range(Selection, Selection.End(xlDown)).Rows.Count
Range("A1").Offset(1, 0).Resize(nbligne, 1).Name = "listeperso"
Range("A1").Select
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear 'supprime les filtres
'prépare le filtre
ActiveWorkbook.Worksheets("Feuil2").Sort.SortFields.Add Key:=Range("A2:A" & nbligne), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
'applique le filtre
With ActiveWorkbook.Worksheets("Feuil1").Sort
.SetRange Range("A1:A" & nbligne)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
' fin du filtre
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour, Bidouilleu_R :-)
J'ai ajoutée la nouvelle macro et cela n'a pas marché.
donc au lieu d'un long discours, je vais mettre un lien ; ce sera plus simple.
http://www.cijoint.fr/cjlink.php?file=cj200903/cijskC6CnW.doc
Je pense qu'avec ça , la bonne explication ne va pas tarder.
A bientôt, :o)
J'ai ajoutée la nouvelle macro et cela n'a pas marché.
donc au lieu d'un long discours, je vais mettre un lien ; ce sera plus simple.
http://www.cijoint.fr/cjlink.php?file=cj200903/cijskC6CnW.doc
Je pense qu'avec ça , la bonne explication ne va pas tarder.
A bientôt, :o)
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
289
31 mars 2009 à 15:14
31 mars 2009 à 15:14
Désolé Laurence j'ai fait une erreur sur la feuille ( ta liste est en feuille 2)
je l'ai placé sur la feuille 1.
C'est de ma faute.
teste et tiens moi au courant.
Sub miseàjourliste()
'
' miseàjourliste .... avec un tri alphabétique A..Z
'
'
Sheets("Feuil2").Select
Range("A1").Select
nbligne = Range(Selection, Selection.End(xlDown)).Rows.Count
Range("A1").Offset(1, 0).Resize(nbligne, 1).Name = "listeperso"
Range("A1").Select
ActiveWorkbook.Worksheets("Feuil2").Sort.SortFields.Clear 'supprime les filtres
'prépare le filtre
ActiveWorkbook.Worksheets("Feuil2").Sort.SortFields.Add Key:=Range("A2:A" & nbligne), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
'applique le filtre
With ActiveWorkbook.Worksheets("Feuil2").Sort
.SetRange Range("A1:A" & nbligne)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
je l'ai placé sur la feuille 1.
C'est de ma faute.
teste et tiens moi au courant.
Sub miseàjourliste()
'
' miseàjourliste .... avec un tri alphabétique A..Z
'
'
Sheets("Feuil2").Select
Range("A1").Select
nbligne = Range(Selection, Selection.End(xlDown)).Rows.Count
Range("A1").Offset(1, 0).Resize(nbligne, 1).Name = "listeperso"
Range("A1").Select
ActiveWorkbook.Worksheets("Feuil2").Sort.SortFields.Clear 'supprime les filtres
'prépare le filtre
ActiveWorkbook.Worksheets("Feuil2").Sort.SortFields.Add Key:=Range("A2:A" & nbligne), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
'applique le filtre
With ActiveWorkbook.Worksheets("Feuil2").Sort
.SetRange Range("A1:A" & nbligne)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
289
31 mars 2009 à 15:55
31 mars 2009 à 15:55
peux-tu m'envoyer ton fichier excel même épurer
ce sera plus rapide
si tu le veux bien.
R
ce sera plus rapide
si tu le veux bien.
R
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
289
31 mars 2009 à 16:22
31 mars 2009 à 16:22
décale ta liste en feuille 2 ajoute une entête coms noms
et c'est tout
le tri et le reste fonctionne.
je dois partir à plus.
et c'est tout
le tri et le reste fonctionne.
je dois partir à plus.
Le Pingou
Messages postés
12042
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 avril 2024
1 426
31 mars 2009 à 17:40
31 mars 2009 à 17:40
Bonjour Laurence,
Vous avez une erreur dans le nom sous Validation de données il faut [=listeperso] .... il manque le (e) après list.
Note: juste pour le plaisir : https://www.cjoint.com/?ecr5mblvYM
Salutations.
Jean-Pierre
Vous avez une erreur dans le nom sous Validation de données il faut [=listeperso] .... il manque le (e) après list.
Note: juste pour le plaisir : https://www.cjoint.com/?ecr5mblvYM
Salutations.
Jean-Pierre
Le Pingou
Messages postés
12042
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 avril 2024
1 426
31 mars 2009 à 21:15
31 mars 2009 à 21:15
Merci, de rien.
30 mars 2009 à 14:21
Je précise que je suis débutante sur excel 07
1) nomme la liste en feuille2 : Ici je l'appelle "listeperso" et je valide
je me mets où sur la feuil2? car quand je fais validation de données j'ai ce message " Impossible de trouver une plage nommée que vous avez spécifié.
Merci
30 mars 2009 à 14:33
Je ne comprends pas cette macro, elle sert à quoi?
Merci. A+
11 janv. 2010 à 12:08
J'ai la même question sauf que je travaille avec EXCEL2003, pouvez-vous me donner une solution qui correspondant au excel 2003, svp. Merci.
Si vous pouvez m'envoyer par mail, ca sera gentil. Mon mail: siwei_huang@hotmail.fr
11 janv. 2010 à 12:14
J'ai le même problème sauf je travaille avec excel03, j'ai testé votre macro, mais ca ne marche pas avec excel03, pouvez-vous me donner la macro pour excel 2003, svp. merci. Mon mail: siwei_huang@hotmail.fr
11 janv. 2010 à 12:26
Non se n'est pas possible, le code fonctionne aussi pour la version 2003.