Mettre le resultat d'un message box dans des cellules

Stagiaiire -  
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
pour une compréhension, j'ai un programme qui calcule le nombre d'occurrence d'un mot. Je stock les résultats dans un message box,
cependant j'aimerais qu'il affiche pour chaque ligne mon résultat, qu'il fasse un tableau avec par exemple :
C D
satisfait 5
Très Satisfait 10
...

Voici mon code :
Sub Nb_valeur()

Set tableau = Application.InputBox(Prompt:="Selectionner le tableau de valeur", Type:=8)
nb = tableau.Rows.Count
Dim t() As String
Dim variable As String

For i = 1 To nb 'Pour chaque ligne sélectionnée
variable = tableau(i) 'On récupère la valeur de la cellule
ReDim Preserve t(i) 'On redimensionne le tableau contenant les valeurs uniques

If Not IsInArray(variable, t) Then 'Si la valeur n'a pas déjà été trouvée
t(i) = variable 'On conserve la valeur unique
indice = 0
For j = 1 To nb
If tableau(j) = variable Then
indice = indice + 1 'On compte le nb de fois que la valeur a été trouvée dans la sélection
End If
Next
MsgBox (t(i) & ":" & indice) 'On affiche le résultat

End If
Next

End Sub


Function IsInArray(stringToBeFound As String, arr As Variant) As Boolean
If stringToBeFound <> "" Then 'Optionnel (à voir)
IsInArray = (UBound(Filter(arr, stringToBeFound)) > -1)
End If

End Function
A voir également:

2 réponses

ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bonjour

Tu n'as pas vraiment besoin de vba (voir colonne nb sans vba)
Si tu y tiens vraiment, une proposition avec l'objet dictionary plus performant
http://www.cjoint.com/c/GCDl0r5R5Kp

Cdlmnt
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Et tu as beaucoup plus simple
http://www.cjoint.com/c/GCDqd3cbQop

Cdlmnt
0