Comment compter répétition ?
Fermé
seyf63
Messages postés
5
Date d'inscription
mercredi 30 mai 2018
Statut
Membre
Dernière intervention
1 novembre 2022
-
Modifié le 15 juin 2018 à 13:43
rEVOLV3r Messages postés 223 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 21 septembre 2022 - 16 juin 2018 à 16:14
rEVOLV3r Messages postés 223 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 21 septembre 2022 - 16 juin 2018 à 16:14
A voir également:
- Comment compter répétition ?
- Comment savoir qui regarde mon compte facebook - Guide
- Comment créer un compte gmail - Guide
- Comment créer un compte google - Guide
- Comment récupérer un compte facebook piraté - Guide
- Excel compter cellule couleur sans vba - Guide
2 réponses
rEVOLV3r
Messages postés
223
Date d'inscription
jeudi 12 août 2010
Statut
Membre
Dernière intervention
21 septembre 2022
28
15 juin 2018 à 14:57
15 juin 2018 à 14:57
Bonjour,
Voici la macro :
La feuille DATA est la feuille contenant vos cellules avec du texte
La feuille RESULTATS aura le tableau final de comptabilisation des mots
J'utilise la fonction usedrange pour chercher toutes les cellules qui ne sont pas vide dans la feuille DATA, à adapter selon votre besoin si vous voulez la recherche dans une seule colonne ou plage de données.
___________________
Public Sub Comptage_mots()
Dim wb As Workbook
Set wb = ThisWorkbook
Dim sh As Worksheet
Set sh = wb.Sheets("DATA")
Dim sh_results As Worksheet
Set sh_results = wb.Sheets("RESULTATS")
Dim v_results() As Variant
For Each c In sh.UsedRange.Cells
vtemp = Split(c.Value, " ", -1, vbTextCompare)
For i = 0 To UBound(vtemp)
If (Not v_results) = -1 Then
ReDim v_results(0 To 1, 0 To 0)
v_results(0, 0) = vtemp(0)
v_results(1, 0) = 1
Else
b = False
For j = 0 To UBound(v_results, 2)
If v_results(0, j) = vtemp(i) Then
v_results(1, j) = v_results(1, j) + 1
b = True
Exit For
End If
Next j
If b = False Then
ReDim Preserve v_results(0 To 1, 0 To UBound(v_results, 2) + 1)
v_results(0, UBound(v_results, 2)) = vtemp(i)
v_results(1, UBound(v_results, 2)) = 1
End If
End If
Next i
Next c
For i = 0 To UBound(v_results, 2)
sh_results.Range("A1").Offset(i, 0).Value = v_results(0, i)
sh_results.Range("A1").Offset(i, 1).Value = v_results(1, i)
Next i
End Sub
________________
Meilleures salutations.
Voici la macro :
La feuille DATA est la feuille contenant vos cellules avec du texte
La feuille RESULTATS aura le tableau final de comptabilisation des mots
J'utilise la fonction usedrange pour chercher toutes les cellules qui ne sont pas vide dans la feuille DATA, à adapter selon votre besoin si vous voulez la recherche dans une seule colonne ou plage de données.
___________________
Public Sub Comptage_mots()
Dim wb As Workbook
Set wb = ThisWorkbook
Dim sh As Worksheet
Set sh = wb.Sheets("DATA")
Dim sh_results As Worksheet
Set sh_results = wb.Sheets("RESULTATS")
Dim v_results() As Variant
For Each c In sh.UsedRange.Cells
vtemp = Split(c.Value, " ", -1, vbTextCompare)
For i = 0 To UBound(vtemp)
If (Not v_results) = -1 Then
ReDim v_results(0 To 1, 0 To 0)
v_results(0, 0) = vtemp(0)
v_results(1, 0) = 1
Else
b = False
For j = 0 To UBound(v_results, 2)
If v_results(0, j) = vtemp(i) Then
v_results(1, j) = v_results(1, j) + 1
b = True
Exit For
End If
Next j
If b = False Then
ReDim Preserve v_results(0 To 1, 0 To UBound(v_results, 2) + 1)
v_results(0, UBound(v_results, 2)) = vtemp(i)
v_results(1, UBound(v_results, 2)) = 1
End If
End If
Next i
Next c
For i = 0 To UBound(v_results, 2)
sh_results.Range("A1").Offset(i, 0).Value = v_results(0, i)
sh_results.Range("A1").Offset(i, 1).Value = v_results(1, i)
Next i
End Sub
________________
Meilleures salutations.
seyf63
Messages postés
5
Date d'inscription
mercredi 30 mai 2018
Statut
Membre
Dernière intervention
1 novembre 2022
16 juin 2018 à 12:56
16 juin 2018 à 12:56
Merci beaucoup, c'est parfait c'est pile ce qu'il me faut. Je l'ai testé et oui je peux enfin trier mes données !! Il me reste plus qu'a mettre les données en minuscule et de les mettre au singulier.
Merci mille fois !!
Merci mille fois !!
rEVOLV3r
Messages postés
223
Date d'inscription
jeudi 12 août 2010
Statut
Membre
Dernière intervention
21 septembre 2022
28
16 juin 2018 à 16:14
16 juin 2018 à 16:14
Pour les mettre en minuscule vous pouvez ajouter la fonction lcase() dans la macro aux bons endroits. Par contre pour ce qui est du singulier...ca va etre compliqué par voie informatique.
Bonne journee
Bonne journee