XL 2019 Liste Alphabétique automatique

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

  • Liste des effectifs.xlsx
    12.7 KB · Affichages: 33
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
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

  • Liste des effectifs.xlsm
    26.5 KB · Affichages: 20

GALOUGALOU

XLDnaute Accro
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

  • Liste des effectifs V2.xlsm
    20.9 KB · Affichages: 13
Dernière édition:

lcouaci

XLDnaute Junior
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.....
 

lcouaci

XLDnaute Junior
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:

sylvanu

XLDnaute Barbatruc
Supporter XLD
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.
 

lcouaci

XLDnaute Junior
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 !
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix

Pièces jointes

  • Copie de Liste des effectifs.xlsm
    18.4 KB · Affichages: 13
Dernière édition:

lcouaci

XLDnaute Junior
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 !!!
 

Discussions similaires

Réponses
9
Affichages
412

Statistiques des forums

Discussions
312 321
Messages
2 087 264
Membres
103 498
dernier inscrit
FAHDE