XL 2019 Fonctions Gauche - Nbval - Decaler

  • Initiateur de la discussion Initiateur de la discussion Caninge
  • 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 !

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

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

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

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

Réponses
3
Affichages
344
Réponses
7
Affichages
1 K
Retour