Fonction detection des mots cles et comptage
wuhrlinanthony
Messages postés
52
Date d'inscription
Statut
Membre
Dernière intervention
-
via55 Messages postés 14512 Date d'inscription Statut Membre Dernière intervention -
via55 Messages postés 14512 Date d'inscription Statut Membre Dernière intervention -
Bonjour ,
Etant un débutant en VBA, je viens demander votre aide. Je voudrais créer une fonction qui permettrait de lire les mots qui sont dans une cellule et de me copier (dans des cellules séparer) le top 3 des mots les plus utilisés dans la cellule sélectionner et le nombre de fois ils ont été écris dans la cellule.
Je ne vois pas du tout comment commencer...
Merci d'avance pour votre aide.
Etant un débutant en VBA, je viens demander votre aide. Je voudrais créer une fonction qui permettrait de lire les mots qui sont dans une cellule et de me copier (dans des cellules séparer) le top 3 des mots les plus utilisés dans la cellule sélectionner et le nombre de fois ils ont été écris dans la cellule.
Je ne vois pas du tout comment commencer...
Merci d'avance pour votre aide.
A voir également:
- Fonction detection des mots cles et comptage
- Fonction si et - Guide
- Cles windows 8 - Guide
- Touslesdrivers detection - Télécharger - Pilotes & Matériel
- Identifiant et mot de passe - Guide
- Mots de passe et trousseau icloud - Guide
1 réponse
Bonjour
Exemple de fonction pour compter les 3 mots les plus fréquents
A mettre dans un Module (ALT+F11 pour ouvrir l'éditeur puis Insertion - Module - Copier-colelr la macro dans la page - Fermer l'éditeur
La fonction s'utilise comme n'importe qu'elle fonction Excel, syntaxe =mots(adresse cellule)
Ainsi = mots(A2) comptabilisera les mots de la chaine présente enA2
Cdlmnt
Via
Exemple de fonction pour compter les 3 mots les plus fréquents
A mettre dans un Module (ALT+F11 pour ouvrir l'éditeur puis Insertion - Module - Copier-colelr la macro dans la page - Fermer l'éditeur
La fonction s'utilise comme n'importe qu'elle fonction Excel, syntaxe =mots(adresse cellule)
Ainsi = mots(A2) comptabilisera les mots de la chaine présente enA2
Function mots(machaine As String) Dim Tableau() As String Dim i As Integer 'découpe la chaine en fonction des espaces " " 'le résultat de la fonction Split est stocké dans un tableau Tableau = Split(machaine, " ") max1 = 0 max2 = 0 max3 = 0 'boucle sur le tableau For i = 0 To UBound(Tableau) - 1 n = 1 existe = 0 ' boucle sur les items précédents du tableau For k = 0 To i - 1 ' si le mot existe déjà (comparaison de mots en majuscules) existe passe à 1 If UCase(Tableau(k)) = UCase(Tableau(i)) Then existe = 1 Next k ' si existe=0 (pour en pas compter 2 fosi un mot précédemment comptabilisé) If existe = 0 Then ' boucle sur les items suivants du tableau For j = i + 1 To UBound(Tableau) - 1 ' si identique (comparaison majucules)alors incrémentation de n If UCase(Tableau(j)) = UCase(Tableau(i)) Then n = n + 1 Next j ' si n> max 1, 2 ou 3 on remplace le max par n et on releve la valeur dans tableau If n > max1 Then max1 = n: mot1 = i Else If n > max2 Then max2 = n: mot2 = i Else If n > max3 Then max3 = n: mot3 = i End If Next i ' nombre de fois et mots à retourner mots = max1 & " " & Tableau(mot1) & " - " & max2 & " " & Tableau(mot2) & " - " & max3 & " " & Tableau(mot3) End Function
Cdlmnt
Via