Compter les lettres

Résolu
mistersaku Messages postés 38 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 21 octobre 2010 - 3 avril 2007 à 16:45
mistersaku Messages postés 38 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 21 octobre 2010 - 4 avril 2007 à 08:25
Bonjour a tous,

Ce sujet a deja ete traite (lien) mais j'ai encore qq problemes. Je re-explique la situation.Je dois compter le nombre de lettre identique que j'ai dans une colonne. On m'a donne un programme qui fontionne tres bien:
 
Set wk = ActiveSheet
Dim i As Integer
Dim j As Integer
 
  For i = 1 To wk.Cells.SpecialCells(xlCellTypeLastCell).Row '(ca bloque ici)
   For j = 1 To Len(wk.Cells(i, 1).Value)
      If Mid(wk.Cells(i, 1).Value, j, 1) = "S" Then
         nbS = nbS + 1
      End If
   Next j
Next i
 
wk.Range("A2").FormulaR1C1 = nbS
 
Mais en realite je dois reproduire cette operation sur 3 lignes avec 3 lettres differentes et sur 100 colonnes et la je suis perdu. Pour etre plus clair voici ce que je souhaite faire


<colgroup>
<col style=\"WIDTH: 137pt; mso-width-source: userset; mso-width-alt: 5824\" width=\"182\" />
<col style=\"WIDTH: 54pt\" span=\"3\" width=\"72\" />
</colgroup>

----

Nombre de i
,

3
,

5
,

2
,

----

Nombre de e
,

2
,

1
,

2
,

----

Nombre de s
,

2
,

1
,

3
,

----

 ,
i,
i,
e,

----

 ,
e,
i,
i,

----

 ,
i,
i,
i,

----

 ,
i,
i,
s,

----

 ,
s,
i,
s,

----

 ,
e,
e,
s,

----

 ,
s,
s,
e


Merci pour votre aide.

7 réponses

Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
3 avril 2007 à 19:10
Pour faire ce que tu cherches à obtenir ? Si tu es bien comme je le crois dans un fichier Excel, aucun intérêt (autre qu'apprendre comment le faire en code ^^).

Dans ta cellule Excel, tape juste =NB.SI( ... Et ouvre l'assistant de formule (clique sur le signe = ou Fx suivant ta version), tu n'as plus qu'à sélectionner les plages. Honnêtement, je ne vois pas ce qui peut poser pb, à moins que tu ne nous aies pas donné tous les éléments.

Molenn
3
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
3 avril 2007 à 16:51
Salut, crée une fonction qui compte avec comme paramètre d'entrée la lettre à compter et la colonne!

a = compte ("e",colonne1")
b = compte ("e",colonne2")
c = compte ("e",colonne3")

NbLettreE = a + b +c

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
mistersaku Messages postés 38 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 21 octobre 2010
3 avril 2007 à 17:05
Je ne suis pas sur de comprendre
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
3 avril 2007 à 17:10
Heu ... Si je comprends ton code, tu lis une colonne Excel et tu affiches le résultat dans une cellule Excel.
Qu'est-ce que tu t'embêtes à mettre du code ?
Tu utilises la formule NB.SI et hop, tu as le nb de lettres voulu.
Je reprends ton exemple, en admettant que ça soit les colonnes A, B et C :
 , i, i, e, ----
 , e, i, i, ----
 , i, i, i, ----
 , i, i, s, ----
 , s, i, s, ----
 , e, e, s, ----
 , s, s, e
Et bien, tu mets dans une cellule, E1 par ex la formule suivante :
=NB.Si(A:C;"e") et hop, tu as ton nb de lettres "e" dans les 3 colonnes.

Rien de plus simple ^^

Molenn
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mistersaku Messages postés 38 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 21 octobre 2010
3 avril 2007 à 17:27
J'ai mis exactement ce que tu m'as dit mais ca ne marche pas. J'ai ecris =NB.SI(A:C;"e") dans la cellule E1 mai sj'ai un message d'erreur du style la fomule entree contient une erreur. D'apres toi je ne dois pas aller dans les macros?
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
4 avril 2007 à 00:08
Si tu as une erreur avec la formule de Molenn, c'est possiblement que ton séparateur est la virgule et non le point-virgule... (?)

Et si tu as des problèmes avec ta boucle sur le I dans
For i = 1 To wk.Cells.SpecialCells(xlCellTypeLastCell).Row '(ca bloque ici)
Déclare I As Long plutôt que As Integer.
Lorsqu'on déclare une variable qui va lire des lignes, il est toujours préférable d'utiliser un Long puisque le nombre de lignes d'une feuille dépasse la capacité d'un Integer

MPi
0
mistersaku Messages postés 38 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 21 octobre 2010
4 avril 2007 à 08:25
Merci, ce que j'ai oublie de dire c'est que je travail sur une version anglaise alors je dois utiliser countif a la place de nb.if.
0
Rejoignez-nous