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

ordre alphabétique dans liste de choix

7 réponses
Avatar
guizmo
Bonjour,

J'ai crée une liste de choix (données; validation) par rapport à une liste
d'articles. Cette liste d'articles comporte près de 200 articles. Pour une
recherche plus facile dans la liste de choix, j'aimerais qu'elle soit par
ordre alphabétique.

Je suis passée par la commande données;trier sur ma liste d'articles mais le
problème est qu'à chaque saisie de nouvel article il faut refaire le trie.
Et le problème se corse car l'utilisateur de ce fichier n'appartient pas à
la catégorie "à l'aise avec excel", donc, il arrive à tout éffacer.

Merci pour votre aide

7 réponses

Avatar
papou
Bonjour
Ajouter un tri automatique dans le code de la feuille contenant les éléments
de la liste ?
Clic droit sur l'onglet, visualiser le code puis coller l'exemple suivant en
adaptant (ici le nom ZnListe définit la liste des valeurs en colonne A)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Range("ZnListe").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:= _
xlNo
End If
End Sub

On peut évidemment compléter en définissant le nom ZnListe comme étant
dynamique de telle manière que celui-ci se mette à jour automatiquement au
fur et à mesure d'ajout d'élément dans la plage.
Cordialement
Pascal


"guizmo" a écrit dans le message de news:

Bonjour,

J'ai crée une liste de choix (données; validation) par rapport à une liste
d'articles. Cette liste d'articles comporte près de 200 articles. Pour une
recherche plus facile dans la liste de choix, j'aimerais qu'elle soit par
ordre alphabétique.

Je suis passée par la commande données;trier sur ma liste d'articles mais
le problème est qu'à chaque saisie de nouvel article il faut refaire le
trie. Et le problème se corse car l'utilisateur de ce fichier n'appartient
pas à la catégorie "à l'aise avec excel", donc, il arrive à tout éffacer.

Merci pour votre aide



Avatar
guizmo
Merci à toi pour ta réponse,

Pour tout t'avouer quand j'ai vu ta réponse avec un programme VBA (c'est
comme cela que l'on dit?) j'ai eu peur car je ne connais pas et ma foi cela
c'est très bien passé. Par contre, j'avais oublié de préciser que dans mon
fichier articles dans une ligne j'ai plusieurs colonne associées, du genre:

article désignation unité tarif

Donc, quand je rajoute un nouvel article la macro fonctionne bien mais
évidement mes autres colonnes ne sont pas prises en compte et catastrophe le
fichier et complétement décalé!
j'ai essayé de modifier (le terme bidouiller est peut-être mieux)
:=Range("A1"),
et j'ai remplacé par :=Range("A1:G1"),
Visiblement ce n'est pas cela.....

Merci d'avance de ta réponse



"papou" <cestpasbon@çanonplus44.fr> a écrit dans le message de news:

Bonjour
Ajouter un tri automatique dans le code de la feuille contenant les
éléments de la liste ?
Clic droit sur l'onglet, visualiser le code puis coller l'exemple suivant
en adaptant (ici le nom ZnListe définit la liste des valeurs en colonne A)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Range("ZnListe").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:= _
xlNo
End If
End Sub

On peut évidemment compléter en définissant le nom ZnListe comme étant
dynamique de telle manière que celui-ci se mette à jour automatiquement au
fur et à mesure d'ajout d'élément dans la plage.
Cordialement
Pascal


"guizmo" a écrit dans le message de news:

Bonjour,

J'ai crée une liste de choix (données; validation) par rapport à une
liste d'articles. Cette liste d'articles comporte près de 200 articles.
Pour une recherche plus facile dans la liste de choix, j'aimerais qu'elle
soit par ordre alphabétique.

Je suis passée par la commande données;trier sur ma liste d'articles mais
le problème est qu'à chaque saisie de nouvel article il faut refaire le
trie. Et le problème se corse car l'utilisateur de ce fichier
n'appartient pas à la catégorie "à l'aise avec excel", donc, il arrive à
tout éffacer.

Merci pour votre aide







Avatar
anonymousA
bonjour,

il faut simplement être sur que Znliste correspond à l'intégralité du
range sur lequel doit s'appliquer le tri (donc y compris les colonnes à
droite de la colonne A) et ensuite nul besoin de changer la proc
rédigée par Papou.


A+

Merci à toi pour ta réponse,

Pour tout t'avouer quand j'ai vu ta réponse avec un programme VBA (c'est
comme cela que l'on dit?) j'ai eu peur car je ne connais pas et ma foi cela
c'est très bien passé. Par contre, j'avais oublié de préciser que dans mon
fichier articles dans une ligne j'ai plusieurs colonne associées, du genre:

article désignation unité tarif

Donc, quand je rajoute un nouvel article la macro fonctionne bien mais
évidement mes autres colonnes ne sont pas prises en compte et catastrophe le
fichier et complétement décalé!
j'ai essayé de modifier (le terme bidouiller est peut-être mieux)
:=Range("A1"),
et j'ai remplacé par :=Range("A1:G1"),
Visiblement ce n'est pas cela.....

Merci d'avance de ta réponse



"papou" <cestpasbon@çanonplus44.fr> a écrit dans le message de news:


Bonjour
Ajouter un tri automatique dans le code de la feuille contenant les
éléments de la liste ?
Clic droit sur l'onglet, visualiser le code puis coller l'exemple suivant
en adaptant (ici le nom ZnListe définit la liste des valeurs en colonne A)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Range("ZnListe").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:= _
xlNo
End If
End Sub

On peut évidemment compléter en définissant le nom ZnListe comme étant
dynamique de telle manière que celui-ci se mette à jour automatiquement au
fur et à mesure d'ajout d'élément dans la plage.
Cordialement
Pascal


"guizmo" a écrit dans le message de news:


Bonjour,

J'ai crée une liste de choix (données; validation) par rapport à une
liste d'articles. Cette liste d'articles comporte près de 200 articles.
Pour une recherche plus facile dans la liste de choix, j'aimerais qu'elle
soit par ordre alphabétique.

Je suis passée par la commande données;trier sur ma liste d'articles mais
le problème est qu'à chaque saisie de nouvel article il faut refaire le
trie. Et le problème se corse car l'utilisateur de ce fichier
n'appartient pas à la catégorie "à l'aise avec excel", donc, il arrive à
tout éffacer.

Merci pour votre aide











Avatar
guizmo
Bonjour,

Effectivement c'est logique! J'avais nommée seulement la colonne A au lieu
de nommer les autres avec!
Cela marche mais....un autre problème s'est manifesté qui lui aussi est
logique:
quand je saisie mon nouvel article et dès que je valide pour aller saisir
dans mes autres colonnes tarifs etc...mon article est déjà rangé par ordre
alphabétique; donc, je dois aller le retrouver pour saisir sa désignation et
tarif; j'ai trouvé une tout petite solution: je commence à saisir les
colonnes B C D et la A (l'article) en dernier. Par contre si je dois annuler
l'article évidement ma désignation et tarifs vont se classer à la fin. Je
joue au chat et à la souris...!


"anonymousA" a écrit dans le message de news:
422b02eb$0$314$
bonjour,

il faut simplement être sur que Znliste correspond à l'intégralité du
range sur lequel doit s'appliquer le tri (donc y compris les colonnes à
droite de la colonne A) et ensuite nul besoin de changer la proc rédigée
par Papou.


A+

Merci à toi pour ta réponse,

Pour tout t'avouer quand j'ai vu ta réponse avec un programme VBA (c'est
comme cela que l'on dit?) j'ai eu peur car je ne connais pas et ma foi
cela c'est très bien passé. Par contre, j'avais oublié de préciser que
dans mon fichier articles dans une ligne j'ai plusieurs colonne
associées, du genre:

article désignation unité tarif

Donc, quand je rajoute un nouvel article la macro fonctionne bien mais
évidement mes autres colonnes ne sont pas prises en compte et catastrophe
le fichier et complétement décalé!
j'ai essayé de modifier (le terme bidouiller est peut-être mieux)
:=Range("A1"),
et j'ai remplacé par :=Range("A1:G1"),
Visiblement ce n'est pas cela.....

Merci d'avance de ta réponse



"papou" <cestpasbon@çanonplus44.fr> a écrit dans le message de news:


Bonjour
Ajouter un tri automatique dans le code de la feuille contenant les
éléments de la liste ?
Clic droit sur l'onglet, visualiser le code puis coller l'exemple suivant
en adaptant (ici le nom ZnListe définit la liste des valeurs en colonne
A)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Range("ZnListe").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:= _
xlNo
End If
End Sub

On peut évidemment compléter en définissant le nom ZnListe comme étant
dynamique de telle manière que celui-ci se mette à jour automatiquement
au fur et à mesure d'ajout d'élément dans la plage.
Cordialement
Pascal


"guizmo" a écrit dans le message de news:


Bonjour,

J'ai crée une liste de choix (données; validation) par rapport à une
liste d'articles. Cette liste d'articles comporte près de 200 articles.
Pour une recherche plus facile dans la liste de choix, j'aimerais
qu'elle soit par ordre alphabétique.

Je suis passée par la commande données;trier sur ma liste d'articles
mais le problème est qu'à chaque saisie de nouvel article il faut
refaire le trie. Et le problème se corse car l'utilisateur de ce fichier
n'appartient pas à la catégorie "à l'aise avec excel", donc, il arrive à
tout éffacer.

Merci pour votre aide












Avatar
papou
Re
Effectivement il va y avoir quelques soucis ;-)
Dans ce cas, il te faudrait vérifier en plus que l'ensemble des infos ont
bien été saisies avant de laisser faire le tri.
Et en même temps au lieu de s'attacher à un changement uniquement sur la
colonne 1, inclure la totalité de la plage de données.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("ZnListe")) Is Nothing Then
If WorksheetFunction.CountA(Range(Cells(Target.Row, 1), Cells(Target.Row,
4))) = 4 Then
Range("ZnListe").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:= _
xlNo
End If
End If
End Sub

Cordialement
Pascal


"guizmo" a écrit dans le message de news:

Bonjour,

Effectivement c'est logique! J'avais nommée seulement la colonne A au lieu
de nommer les autres avec!
Cela marche mais....un autre problème s'est manifesté qui lui aussi est
logique:
quand je saisie mon nouvel article et dès que je valide pour aller saisir
dans mes autres colonnes tarifs etc...mon article est déjà rangé par ordre
alphabétique; donc, je dois aller le retrouver pour saisir sa désignation
et tarif; j'ai trouvé une tout petite solution: je commence à saisir les
colonnes B C D et la A (l'article) en dernier. Par contre si je dois
annuler l'article évidement ma désignation et tarifs vont se classer à la
fin. Je joue au chat et à la souris...!


"anonymousA" a écrit dans le message de news:
422b02eb$0$314$
bonjour,

il faut simplement être sur que Znliste correspond à l'intégralité du
range sur lequel doit s'appliquer le tri (donc y compris les colonnes à
droite de la colonne A) et ensuite nul besoin de changer la proc rédigée
par Papou.


A+

Merci à toi pour ta réponse,

Pour tout t'avouer quand j'ai vu ta réponse avec un programme VBA (c'est
comme cela que l'on dit?) j'ai eu peur car je ne connais pas et ma foi
cela c'est très bien passé. Par contre, j'avais oublié de préciser que
dans mon fichier articles dans une ligne j'ai plusieurs colonne
associées, du genre:

article désignation unité tarif

Donc, quand je rajoute un nouvel article la macro fonctionne bien mais
évidement mes autres colonnes ne sont pas prises en compte et
catastrophe le fichier et complétement décalé!
j'ai essayé de modifier (le terme bidouiller est peut-être mieux)
:=Range("A1"),
et j'ai remplacé par :=Range("A1:G1"),
Visiblement ce n'est pas cela.....

Merci d'avance de ta réponse



"papou" <cestpasbon@çanonplus44.fr> a écrit dans le message de news:


Bonjour
Ajouter un tri automatique dans le code de la feuille contenant les
éléments de la liste ?
Clic droit sur l'onglet, visualiser le code puis coller l'exemple
suivant en adaptant (ici le nom ZnListe définit la liste des valeurs en
colonne A)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Range("ZnListe").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:= _
xlNo
End If
End Sub

On peut évidemment compléter en définissant le nom ZnListe comme étant
dynamique de telle manière que celui-ci se mette à jour automatiquement
au fur et à mesure d'ajout d'élément dans la plage.
Cordialement
Pascal


"guizmo" a écrit dans le message de news:


Bonjour,

J'ai crée une liste de choix (données; validation) par rapport à une
liste d'articles. Cette liste d'articles comporte près de 200 articles.
Pour une recherche plus facile dans la liste de choix, j'aimerais
qu'elle soit par ordre alphabétique.

Je suis passée par la commande données;trier sur ma liste d'articles
mais le problème est qu'à chaque saisie de nouvel article il faut
refaire le trie. Et le problème se corse car l'utilisateur de ce
fichier n'appartient pas à la catégorie "à l'aise avec excel", donc, il
arrive à tout éffacer.

Merci pour votre aide















Avatar
guizmo
Bonjour Pascal,

J'ai bien nommée en ZNLISTE mes 5 colonnes puis j'ai recopié
(copier/coller)la formule dans le VBA de ma feuille1.
Il me met un message d'erreur : erreur de compilation erreur de syntaxe et
sur le VBA de ma feuille 1 il me met la première phrase Private Sub
Worksheet_Change(ByVal Target As Range EN JAUNE ET LA TROISIEME If
WorksheetFunction.CountA(Range(Cells(Target.Row, 1), Cells(Target.Row,
4))) = 4 Then EN BLEU;
J'ai encore du mal comprendre quelquechose!


GUIZMO



"papou" <cestpasbon@çanonplus44.fr> a écrit dans le message de news:
#On#
Re
Effectivement il va y avoir quelques soucis ;-)
Dans ce cas, il te faudrait vérifier en plus que l'ensemble des infos ont
bien été saisies avant de laisser faire le tri.
Et en même temps au lieu de s'attacher à un changement uniquement sur la
colonne 1, inclure la totalité de la plage de données.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("ZnListe")) Is Nothing Then
If WorksheetFunction.CountA(Range(Cells(Target.Row, 1), Cells(Target.Row,
4))) = 4 Then
Range("ZnListe").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:= _
xlNo
End If
End If
End Sub

Cordialement
Pascal


"guizmo" a écrit dans le message de news:

Bonjour,

Effectivement c'est logique! J'avais nommée seulement la colonne A au
lieu


de nommer les autres avec!
Cela marche mais....un autre problème s'est manifesté qui lui aussi est
logique:
quand je saisie mon nouvel article et dès que je valide pour aller
saisir


dans mes autres colonnes tarifs etc...mon article est déjà rangé par
ordre


alphabétique; donc, je dois aller le retrouver pour saisir sa
désignation


et tarif; j'ai trouvé une tout petite solution: je commence à saisir les
colonnes B C D et la A (l'article) en dernier. Par contre si je dois
annuler l'article évidement ma désignation et tarifs vont se classer à
la


fin. Je joue au chat et à la souris...!


"anonymousA" a écrit dans le message de news:
422b02eb$0$314$
bonjour,

il faut simplement être sur que Znliste correspond à l'intégralité du
range sur lequel doit s'appliquer le tri (donc y compris les colonnes à
droite de la colonne A) et ensuite nul besoin de changer la proc
rédigée



par Papou.


A+

Merci à toi pour ta réponse,

Pour tout t'avouer quand j'ai vu ta réponse avec un programme VBA
(c'est




comme cela que l'on dit?) j'ai eu peur car je ne connais pas et ma foi
cela c'est très bien passé. Par contre, j'avais oublié de préciser que
dans mon fichier articles dans une ligne j'ai plusieurs colonne
associées, du genre:

article désignation unité tarif

Donc, quand je rajoute un nouvel article la macro fonctionne bien mais
évidement mes autres colonnes ne sont pas prises en compte et
catastrophe le fichier et complétement décalé!
j'ai essayé de modifier (le terme bidouiller est peut-être mieux)
:=Range("A1"),
et j'ai remplacé par :=Range("A1:G1"),
Visiblement ce n'est pas cela.....

Merci d'avance de ta réponse



"papou" <cestpasbon@çanonplus44.fr> a écrit dans le message de news:


Bonjour
Ajouter un tri automatique dans le code de la feuille contenant les
éléments de la liste ?
Clic droit sur l'onglet, visualiser le code puis coller l'exemple
suivant en adaptant (ici le nom ZnListe définit la liste des valeurs
en





colonne A)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Range("ZnListe").Sort Key1:=Range("A1"), Order1:=xlAscending, Header: _
xlNo
End If
End Sub

On peut évidemment compléter en définissant le nom ZnListe comme étant
dynamique de telle manière que celui-ci se mette à jour
automatiquement





au fur et à mesure d'ajout d'élément dans la plage.
Cordialement
Pascal


"guizmo" a écrit dans le message de news:


Bonjour,

J'ai crée une liste de choix (données; validation) par rapport à une
liste d'articles. Cette liste d'articles comporte près de 200
articles.






Pour une recherche plus facile dans la liste de choix, j'aimerais
qu'elle soit par ordre alphabétique.

Je suis passée par la commande données;trier sur ma liste d'articles
mais le problème est qu'à chaque saisie de nouvel article il faut
refaire le trie. Et le problème se corse car l'utilisateur de ce
fichier n'appartient pas à la catégorie "à l'aise avec excel", donc,
il






arrive à tout éffacer.

Merci pour votre aide



















Avatar
papou
Bonjour
Il y a eu des retours à la ligne intempestifs lorsque tu as recopié le code.
Va voir ici le fichier texte :
http://cjoint.com/data/disUnALycR.htm
Cordialement
Pascal

"guizmo" a écrit dans le message de news:
%
Bonjour Pascal,

J'ai bien nommée en ZNLISTE mes 5 colonnes puis j'ai recopié
(copier/coller)la formule dans le VBA de ma feuille1.
Il me met un message d'erreur : erreur de compilation erreur de syntaxe et
sur le VBA de ma feuille 1 il me met la première phrase Private Sub
Worksheet_Change(ByVal Target As Range EN JAUNE ET LA TROISIEME If
WorksheetFunction.CountA(Range(Cells(Target.Row, 1), Cells(Target.Row,
4))) = 4 Then EN BLEU;
J'ai encore du mal comprendre quelquechose!


GUIZMO



"papou" <cestpasbon@çanonplus44.fr> a écrit dans le message de news:
#On#
Re
Effectivement il va y avoir quelques soucis ;-)
Dans ce cas, il te faudrait vérifier en plus que l'ensemble des infos ont
bien été saisies avant de laisser faire le tri.
Et en même temps au lieu de s'attacher à un changement uniquement sur la
colonne 1, inclure la totalité de la plage de données.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("ZnListe")) Is Nothing Then
If WorksheetFunction.CountA(Range(Cells(Target.Row, 1), Cells(Target.Row,
4))) = 4 Then
Range("ZnListe").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:= _
xlNo
End If
End If
End Sub

Cordialement
Pascal


"guizmo" a écrit dans le message de news:

Bonjour,

Effectivement c'est logique! J'avais nommée seulement la colonne A au
lieu


de nommer les autres avec!
Cela marche mais....un autre problème s'est manifesté qui lui aussi est
logique:
quand je saisie mon nouvel article et dès que je valide pour aller
saisir


dans mes autres colonnes tarifs etc...mon article est déjà rangé par
ordre


alphabétique; donc, je dois aller le retrouver pour saisir sa
désignation


et tarif; j'ai trouvé une tout petite solution: je commence à saisir
les
colonnes B C D et la A (l'article) en dernier. Par contre si je dois
annuler l'article évidement ma désignation et tarifs vont se classer à
la


fin. Je joue au chat et à la souris...!


"anonymousA" a écrit dans le message de news:
422b02eb$0$314$
bonjour,

il faut simplement être sur que Znliste correspond à l'intégralité du
range sur lequel doit s'appliquer le tri (donc y compris les colonnes
à
droite de la colonne A) et ensuite nul besoin de changer la proc
rédigée



par Papou.


A+

Merci à toi pour ta réponse,

Pour tout t'avouer quand j'ai vu ta réponse avec un programme VBA
(c'est




comme cela que l'on dit?) j'ai eu peur car je ne connais pas et ma
foi
cela c'est très bien passé. Par contre, j'avais oublié de préciser
que
dans mon fichier articles dans une ligne j'ai plusieurs colonne
associées, du genre:

article désignation unité tarif

Donc, quand je rajoute un nouvel article la macro fonctionne bien
mais
évidement mes autres colonnes ne sont pas prises en compte et
catastrophe le fichier et complétement décalé!
j'ai essayé de modifier (le terme bidouiller est peut-être mieux)
:=Range("A1"),
et j'ai remplacé par :=Range("A1:G1"),
Visiblement ce n'est pas cela.....

Merci d'avance de ta réponse



"papou" <cestpasbon@çanonplus44.fr> a écrit dans le message de news:


Bonjour
Ajouter un tri automatique dans le code de la feuille contenant les
éléments de la liste ?
Clic droit sur l'onglet, visualiser le code puis coller l'exemple
suivant en adaptant (ici le nom ZnListe définit la liste des valeurs
en





colonne A)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Range("ZnListe").Sort Key1:=Range("A1"), Order1:=xlAscending,
Header: > _
xlNo
End If
End Sub

On peut évidemment compléter en définissant le nom ZnListe comme
étant
dynamique de telle manière que celui-ci se mette à jour
automatiquement





au fur et à mesure d'ajout d'élément dans la plage.
Cordialement
Pascal


"guizmo" a écrit dans le message de news:


Bonjour,

J'ai crée une liste de choix (données; validation) par rapport à une
liste d'articles. Cette liste d'articles comporte près de 200
articles.






Pour une recherche plus facile dans la liste de choix, j'aimerais
qu'elle soit par ordre alphabétique.

Je suis passée par la commande données;trier sur ma liste d'articles
mais le problème est qu'à chaque saisie de nouvel article il faut
refaire le trie. Et le problème se corse car l'utilisateur de ce
fichier n'appartient pas à la catégorie "à l'aise avec excel", donc,
il






arrive à tout éffacer.

Merci pour votre aide