mistersaku
Messages postés38Date d'inscriptionsamedi 17 février 2007StatutMembreDernière intervention21 octobre 2010
-
3 avril 2007 à 16:45
mistersaku
Messages postés38Date d'inscriptionsamedi 17 février 2007StatutMembreDernière intervention21 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
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 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
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
mistersaku
Messages postés38Date d'inscriptionsamedi 17 février 2007StatutMembreDernière intervention21 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?
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 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