XL 2019 Fonctions Gauche - Nbval - Decaler

Caninge

XLDnaute Accro
Bonjour à tous amis excelliens

Dans une colonne il y a des noms et prénoms.
Extraire uniquement le nom je sais faire.
Compter ensuite le nombre de noms je sais faire aussi.
Mais comment trier cette liste de noms dans une autre colonne par importance. Je ne sais pas faire.
Mais plusieurs de vous connaissent la solution.
Merci de se pencher sur ma question.
Bonne journée
CANINGE
 

Pièces jointes

  • Gauche + Nbval + Decaler.xlsx
    12.6 KB · Affichages: 28

job75

XLDnaute Barbatruc
Bonjour à tous,

Une solution VBA très classique :
VB:
Private Sub worksheet_Activate()
Dim d As Object, tablo, i%, s
Set d = CreateObject("Scripting.Dictionary")
d.CompareMode = vbTextCompare 'la casse est ignorée
tablo = Sheets("Feuil1").[B3].CurrentRegion.Resize(2) 'matrice, plus rapide, au moins 2 éléments
For i = 1 To UBound(tablo, 2)
    s = Split(Trim(tablo(1, i)))
    If UBound(s) > -1 Then d(s(0)) = d(s(0)) + 1
Next
If FilterMode Then ShowAllData 'si la feuille est filtrée
With [C3] 'cellule à adapter
    If d.Count Then
        .Resize(d.Count) = Application.Transpose(d.keys)
        .Offset(, 1).Resize(d.Count) = Application.Transpose(d.items)
        .Resize(d.Count, 2).Sort .Offset(, 1), xlDescending, .Cells, , xlAscending, Header:=xlNo 'tri sur 2 colonnes
    End If
    .Offset(d.Count).Resize(Rows.Count - d.Count - .Row + 1, 2).ClearContents 'RAZ en dessous
End With
Columns.AutoFit 'ajustement largeurs
End Sub
La macro est dans la feuille "Résultat" et se déclenche quand on active la feuille.

A+
 

Pièces jointes

  • Noms_VBA(1).xlsm
    19.3 KB · Affichages: 3

Caninge

XLDnaute Accro
Bonjour, Fred0o,Chris,JHA,eriiic,Jocelyn, Job75,

Je regarde toutes vos propositions et je vous tiens au courant.
Je pars dans le ménage et le repassage. c'est moins compliqué lol mais c'est bien moins intéressant qu' EXCEL

Merci et bonne journée.
CANINGE
 

Caninge

XLDnaute Accro
Bonjour à tous,
me revoilà ! finalement j'ai pris la solution en VBA de Job75.
Je pense que c'est plus rapide, j'ai beaucoup de noms et je pense que mon ordinateur ramerait encore plus.
ma base de données s'appelle "Les Individus" et la ligne commence en B6. Petit problème la procédure reprend le contenu de la cellule A6 dans laquelle il y a écrit Nom et Prénom et Nom est reprit naturellement dans la colonne finale. je me retrouve avec un nom en trop.
Autre chose : je n'ai pas trouvé dans la procédure ma feuille de destination "Fréquences des noms" mais bon les noms se sont mis naturellement dans cette feuille. J'avais peur qu'ils se mettent dans d'autres feuilles.
Voilà Job75 si pouvez voir cela
Merci

Option Explicit
Private Sub worksheet_Activate()
Dim d As Object, tablo, i%, s
Set d = CreateObject("Scripting.Dictionary")
d.CompareMode = vbTextCompare 'la casse est ignorée
tablo = Sheets("Les Individus").[B6].CurrentRegion.Resize(2) 'matrice, plus rapide, au moins 2 éléments
For i = 1 To UBound(tablo, 2)
s = Split(Trim(tablo(1, i)))
If UBound(s) > -1 Then d(s(0)) = d(s(0)) + 1
Next
If FilterMode Then ShowAllData 'si la feuille est filtrée
With [C3] 'cellule à adapter
If d.Count Then
.Resize(d.Count) = Application.Transpose(d.keys)
.Offset(, 1).Resize(d.Count) = Application.Transpose(d.items)
.Resize(d.Count, 2).Sort .Offset(, 1), xlDescending, .Cells, , xlAscending, Header:=xlNo 'tri sur 2 colonnes
End If
.Offset(d.Count).Resize(Rows.Count - d.Count - .Row + 1, 2).ClearContents 'RAZ en dessous
End With
Columns.AutoFit 'ajustement largeurs
End Sub
 

job75

XLDnaute Barbatruc
Puisque A6 n'est pas vide il suffit de commencer l'analyse du tableau à la 2ème colonne :
Code:
tablo = Sheets("Les individus").[A6].CurrentRegion.Resize(2) 'matrice, plus rapide, au moins 2 éléments
For i = 2 To UBound(tablo, 2)
'---'
Si la feuille des résultats s'appelle "Fréquences des noms" mettez la macro dans cette feuille, fichier (2).
 

Pièces jointes

  • Noms_VBA(2).xlsm
    19.8 KB · Affichages: 6

Caninge

XLDnaute Accro
Bonjour à tous
Bonjour Job 75,

Effectivement la macro fonctionne dans la page dans laquelle elle est installée.
Maintenant ça fonctionne très bien ! On peut vraiment tout avec EXCEL.
Merci Job75 et bon weekend à tous.

CANINGE
 

Discussions similaires

Réponses
7
Affichages
548

Membres actuellement en ligne

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal