Fonction detection des mots cles et comptage
wuhrlinanthony
Messages postés
57
Statut
Membre
-
via55 Messages postés 14730 Date d'inscription Statut Membre Dernière intervention -
via55 Messages postés 14730 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
- Touslesdrivers detection - Télécharger - Pilotes & Matériel
- Cles windows 10 - Guide
- 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