Tri alphabétique sur trois colonnes

belga

XLDnaute Nouveau
Bonjour à vous toutes et tous,

Dans une page Excel 2007 : Je désire mettre trois colonnes sur une seule page et pouvoir y inscrire des noms de personnes et que ces noms se classent par ordre alphabétique en partant de la première case de la colonne 1 jusqu'à la dernière case de la colonne 3. Pourriez-vous m'aider s.v.p. ?

D'autres questions au sujet de cette page :

Est-il possible d'effacer le contenu d'une case et que les suivantes se déplace et la comble ?

Est-il possible que, si la page est remplie, la liste se continue sur une deuxième page ?

Désolé de vous demander tant de choses !!!

D'avance un gros merci !!!

Jean
 

Pièces jointes

  • Tri-essai-1.xlsx
    12.8 KB · Affichages: 22

belga

XLDnaute Nouveau
Bonsoir à toi,
38 lignes par colonne x 3 par page (c'est en lettre US... je suis au Canada)
Désolé, je ne comprends pas ta question : Et le tableau dans chaque feuille, à quel emplacement est-il ?
C'est très gentil de t'intéresser à mes petits problèmes !!!
 

belga

XLDnaute Nouveau
Le saut de colonne et le classement pourrait-il se faire par page (de la colonne 1 vers la 2, puis vers la 3, puis passer à la colonne 1 de la page 2... et ainsi de suite) ?

Aussi pourrait-il y avoir une première ligne où je pourrais mettre un titre et le modifier sans que ce soit un entête ou un pied de page ?

Ceci sans aucune obligation de ta part. je ne veux pas abuser de toi !!!

Note que moi, je ne suis pas capable de faire cela.

Mon épouse gère bénévolement les listes de personnes atteintes de maladies très grave dans notre région et je tente de la soulager un peu dans ses travaux.

Un gros merci à toi !!!
 

Pièces jointes

  • IdxFusBelga2.xlsm
    24.1 KB · Affichages: 12

Dranreb

XLDnaute Barbatruc
Pas sûr de comprendre, mais si je comprends, ça marche déjà comme ça: de haut en bas sur 38 lignes, puis de gauche à droite sur 3 colonnes, enfin de la 1ère à la dernière feuille.
Quand j'ai demandé à quel emplacement étaient les tableaux il aurait fallu me répondre: "en A2:C39"
Il ne te reste plus qu'à remplacer partout "[A1:C38]" par "[A2:C39]" dans le code.
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour belga, Bernard,

Avec un document auxiliaire la macro est facile à comprendre :
Code:
Sub Tri_plusieurs_feuilles()
Dim ad$, h&, w As Worksheet, col As Range, n&
ad = "A3:C39" 'adresse à adapter
h = Range(ad).Rows.Count
Application.ScreenUpdating = False
With Workbooks.Add.Sheets(1) 'document auxiliaire
    For Each w In ThisWorkbook.Worksheets
        If w.FilterMode Then w.ShowAllData 'si la feuille est filtrée
        For Each col In w.Range(ad).Columns
            .Range("A" & .Rows.Count).End(xlUp)(2).Resize(h) = col.Value
    Next col, w
    .Columns(1).Sort .Columns(1), xlAscending, Header:=xlNo 'tri
    For Each w In ThisWorkbook.Worksheets
        For Each col In w.Range(ad).Columns
            n = n + 1
            col = .Cells(1 + h * (n - 1), 1).Resize(h).Value
    Next col, w
    .Parent.Close False 'fermeture du document auxiliaire
End With
End Sub
Fichier joint (c'est celui du post #1).

Bonne journée.
 

Pièces jointes

  • Tri-essai(1).xlsm
    33.7 KB · Affichages: 13

belga

XLDnaute Nouveau
Bonjour à vous deux,
Là, le document trie les noms, c'est parfait.
J'ai une autre demande : peut-on faire en sorte que, à la saisie on passe de la cellule A39 à la cellule B3. Et ensuite de la B39 à C3 ? Soit une suite automatique de trois colonnes en continuité et aussi, les nom et prénoms (composés éventuellement, exemple : Jean-Pierre) pourraient-ils avoir la première lettre en majuscule automatique ?
Désolé de vous faire tant de demandes !!!
Bon après-midi à vous.
 

job75

XLDnaute Barbatruc
Re,

Avec les 1ères lettres en majuscule :
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim c As Range
Application.EnableEvents = False
On Error Resume Next 'si aucune cellule vide
Sh.[A3:C39].Find("", [C39], xlValues, , xlByColumns).Select
For Each c In Intersect(Target, Sh.[A3:C39])
    c = Application.Proper(c)
Next
Application.EnableEvents = True
End Sub
Fichier (2).

A+
 

Pièces jointes

  • Tri-essai(2).xlsm
    35.6 KB · Affichages: 11

belga

XLDnaute Nouveau
Ma version toujours, rectifiée de façon à aller à la 1ère cellule libre à la fin.
C'est très très bien !!!
Une dernière chose, j'ai tenté d'insérer des noms composés : seule la première lettre se met en majuscule. Est-il possible que tu fasse en sorte que chaque mot composé soit avec majuscule, s.v.p. ? Exemple : Jean-Pierre Lajoie. Notre ami job75 le fait mais je ne suis pas capable d'insérer le code de cette fonction.
J'ai modifié un peu la page que tu m'a envoyée. Je la joins.
Un gros gros merci !!!
 

Pièces jointes

  • IdxFusBelga (Dernière modification).xlsm
    27.8 KB · Affichages: 12

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin