Liste de mots

Bonjour, j'ai besoin de votre aide.

Dans un onglet "Donnees_lemmatisees" j'ai 2 colonne, la première colonne est une liste de mots/ phrase et la seconde est la fréquence de fois qu"'il est utilisés.

Il faudrait créer absolument une macro excel.

L'objectif est d'analyser la colonne des fréquences et de récupérer les 10 plus gros chiffres et d'y associer le mot/phrase de la 1ere colonne.

Et venir placer les résultats sous forme de liste avec le nombre de fréquences par exemple à la fin on obtient :

detriment (x15)

jeunes(x8)

banque(x5)

facteurs(x3)

Etc... jusqu'à 10

(Le résultat ira dans l'onglet resultat dans la 9e colonne à partir de la 7ème ligne

Je vous laisse un fichier pour mieux comprendre.

Merci pour ceux qui y répondront. ( si quelqu'un veut bien répondre j'aimerais bien avoir quelque lignes expliquant son code car je suis novice et j'ai envie de progresser)

9test.xlsx (14.69 Ko)

Bonjour,

Une proposition :

Sub TriTop10()

With Sheets("Donnees_lemmatisees") 'Tout objet qui commence par "." se rapporte à cette feuille
    .AutoFilter.Sort.SortFields.Clear 'Suppression des éventuels filtres existants
    .AutoFilter.Sort.SortFields.Add Key:=Range("B1"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortTextAsNumbers 'Filtre décroissant sur colonne B
    With .AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    For i = 2 To 11 'Parcourir les 10 premiers résultats
        Sheets("Resultat").Range("I" & i + 5) = .Range("A" & i) & " x" & .Range("B" & i) 'Affecter à chaque cellule correspondante en feuille "Résultat" le mot et sa fréquence concaténée
    Next i
End With

End Sub
5test.xlsm (26.16 Ko)

Super ça marche mais peut tu me donner quelques explications de comment tu as fait stp ?

Super ça marche mais peut tu me donner quelques explications de comment tu as fait stp ?

Le code est déjà commenté.

En gros, du début de la macro jusqu'à l'instruction "For", j'utilise une fonctionnalité existante sous Excel : le filtre (Données --> Filtrer), que j'ai paramétré pour faire un tri par ordre décroissant selon la fréquence (c'est une adaptation du code obtenu par l'enregistreur de macro).

L'instruction "For...Next" permet de faire une boucle qui va de 2 à 11 (pour tenir compte de la ligne d'en tête) et reporte en feuille 2 le mot correspondant en feuille 1, auquel j’accole un espace, la lettre "x" et la fréquence associée à ce mot. Le "Range("I" & i + 5)" c'est pour pour positionner le premier mot au même endroit que ton exemple (au premier tour de boucle, i = 2, donc on inscrit le résultat en "I7").

PS :

Merci

Rechercher des sujets similaires à "liste mots"