XL 2019 Liste Alphabétique automatique

  • Initiateur de la discussion Initiateur de la discussion lcouaci
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

lcouaci

XLDnaute Junior
Bonsoir le Forum, je souhaite éditer une liste de saisie alphabétique.
Je voudrais que cette liste de saisie s'automatise à la saisie des noms au fur à mesure dans la colonne "nom et prénoms" afin qu'on ai pas à trier la liste chaque fois. Comme présenté dans le fichier joint !!!
 

Pièces jointes

Dernière édition:
Bonjour Icouaci,
En PJ un essai.
C'est effectivement en automatique.
Cependant à la saisie si vous faites une faute d'orthographe la liste est évidemment triée et il vous faut recherchez le nom entré pour le modifier.
Perso je ne trouve pas ça ergonomique.
En Liste 2 j'ai mis le tri par un bouton. C'est juste une question de choix, vous avez les deux solutions.
 

Pièces jointes

bonjour icouaci bonjour le forum
voici une solution qui se met à jour au moment de la saisie.
quand une information est saisie en colonne D, la mise à jour du compteur est automatique grâce à la fonction grande valeur.
(reprenant l'idée de sylvanu), le tri est déclenché par le bouton, mais l'automatisation dans la macro est possible. (tri par index et tri par nom)
si vous reprenez l'idée pour l'integrer à un autre classeur attention au nom de l'onglet. Liste avec espace dans votre fichier. Liste sans espace dans le fichier joint.
cordialement
galougalou
 

Pièces jointes

Dernière édition:
bonjour icouaci bonjour le forum
voici une solution qui se met à jour au moment de la saisie.
quand une information est saisie en colonne D, la mise à jour du compteur est automatique grâce à la fonction grande valeur.
(reprenant l'idée de sylvanu), le tri est déclenché par le bouton, mais l'automatisation dans la macro est possible.
si vous reprenez l'idée pour l'integrer à un autre classeur attention au nom de l'onglet. Liste avec espace dans votre fichier. Liste sans espace dans le fichier joint.
cordialement
galougalou
Merci à vous, et merci le forum pour votre contribution.....
 
Merci à vous,
Bonjour Icouaci,
En PJ un essai.
C'est effectivement en automatique.
Cependant à la saisie si vous faites une faute d'orthographe la liste est évidemment triée et il vous faut recherchez le nom entré pour le modifier.
Perso je ne trouve pas ça ergonomique.
En Liste 2 j'ai mis le tri par un bouton. C'est juste une question de choix, vous avez les deux solutions.
Merci infiniment, Ta feuille "liste" résout mon problème. ma question ! comment vous l'avez réaliser ?
Est ce qu'on peut trier que la colonne "D" afin que les numéros d'ordre de la colonne "C" se maintiennent
 
Dernière édition:
Bonjour.
La feuille liste est traitée avec une macro événementielle Worksheet_Change.
Quand on clique sur la page ( qu'on aurait pu limiter à la zone C3-D100 ) on lance cette macro :
VB:
Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    Call Tri
End Sub
Sub Tri()
    ActiveWorkbook.Worksheets("Liste ").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Liste ").Sort.SortFields.Add Key:=Range("D4:D18") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Liste ").Sort
        .SetRange Range("C3:D100")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    [C3].Select
End Sub
Cette macro est à mettre impérativement dans la feuille concernée, pas dans un module standard.
 
Bonjour.
La feuille liste est traitée avec une macro événementielle Worksheet_Change.
Quand on clique sur la page ( qu'on aurait pu limiter à la zone C3-D100 ) on lance cette macro :
VB:
Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    Call Tri
End Sub
Sub Tri()
    ActiveWorkbook.Worksheets("Liste ").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Liste ").Sort.SortFields.Add Key:=Range("D4:D18") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Liste ").Sort
        .SetRange Range("C3:D100")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    [C3].Select
End Sub
Cette macro est à mettre impérativement dans la feuille concernée, pas dans un module standard.
Merci infiniment !
 

Pièces jointes

Dernière édition:
M
Bonjour,

Le #9 ne trie rien. Il n'y a pas de solution sans programmation (il faut détecter la saisie d'un nom).



VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 And Target.Count = 1 Then [C4:D1000].Sort key1:=[D4], Header:=xlNo
End Sub

Boisgontier
Merci, tes codes sont aussi assez léger !!!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2021 listbox
Réponses
18
Affichages
286
  • Question Question
Microsoft 365 tableau d'alerte
Réponses
2
Affichages
103
Retour