Mettre le resultat d'un message box dans des cellules

Fermé
Stagiaiire - 29 mars 2017 à 11:21
ccm81 Messages postés 10899 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 25 octobre 2024 - 29 mars 2017 à 18:04
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 10899 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 25 octobre 2024 2 422
Modifié le 29 mars 2017 à 13:54
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 10899 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 25 octobre 2024 2 422
29 mars 2017 à 18:04
Et tu as beaucoup plus simple
http://www.cjoint.com/c/GCDqd3cbQop

Cdlmnt
0