Compter certains elements dans une colonne

  • Initiateur de la discussion Jessica2
  • Date de début
J

Jessica2

Guest
Bonjour a tous,
j'ai une colonne de donnees, je souhaite compter et afficher le nombre total de certains elements redondants dans la colonne E. Le nomre de chaque element est affiche dans la colonne F.
J'ai cree une boucle for pour le balayge de la colonne E. Si le pointeur detecte Les elements FR, alors il incremente dans une variable fr11 le nombres existants de FR, le nombre de FR est situe dans la colonne F.
Mon probleme est qu'il ne detecte pas les elements FR ??? donc il m'affiche 0 FR.
Je ne comprend pas.
Quelqu'un peut il m'aider svp ?

merci d'avance [file name=test1_20060606180849.zip size=25554]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/test1_20060606180849.zip[/file]
 

Pièces jointes

  • test1_20060606180849.zip
    25 KB · Affichages: 42

CBernardT

XLDnaute Barbatruc
Bonsoir Jessica, Dan et le forum,

Essayes ce code :

Option Explicit
Sub CumulFr()
Dim Fr11 As Long, i As Integer
Sheets('AC1').Select
Fr11 = 0
For i = 2 To Range('E2').End(xlDown).Row
If Trim(Cells(i, 5)) = 'FR' Then
Fr11 = Fr11 + Range('F' & i)
End If
Next i
MsgBox 'Nombre Total d'elements FR dans la colonne E: ' & Fr11
End Sub

Cordialement

Bernard
 

Dan

XLDnaute Barbatruc
Re,

excellent Bernard ! Je l'avais oubliée tiens cete fonction TRIM.

Attention tout de même avec Range('E2').End(xlDown).Row car il ne faut pas de cellule vide entre E2 et la dernière cellule remplie de cette colonne.

Bonne soirée

;)
 

Dan

XLDnaute Barbatruc
Re,

En fait je comprenais pas bien pourquoi ta macro tournait pas.
Alors m'est venu l'idée de vérifier en cliquant dans la barre de formule juste après le R et avant le F. Là il y avait un espace.

Si pb n'hésite pas

;)

Message édité par: Dan, à: 06/06/2006 22:27
 

Bricofire

XLDnaute Impliqué
Bonsoir Jessica2, Dan, CBernardT :)

Une autre piste pour le fun qui se fiche de savoir s'il y a des espaces avant, après ou les deux, et qui ne prend pas compte de la casse non plus. Elle devrait s'avérer théoriquement bien plus rapide dans le cas d'un grande colonne, faisant appel à des fonctions natives...

Sub BricoFind()
Dim Plage As Range
Dim Cible As Range
Dim Reponse As Integer

Set Plage = Range(Range('E65536').End(xlUp), Range('E1'))
Plage.AutoFilter Field:=1, Criteria1:='FR'
Set Cible = Columns(5).SpecialCells(xlCellTypeConstants)
Set Cible = Cible.SpecialCells(xlCellTypeVisible)
Reponse = Cible.Cells.Count - 1
MsgBox Reponse
Selection.AutoFilter


On affiche la variable réponse où l'on veut ensuite.

Bonne nuit,

Brico
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 915
Membres
101 837
dernier inscrit
Ugo