Forums Rue-Montgallet.com
Rue-Montgallet.comRue-Hardware.comRue-Occasion.comRue-DVD.comRue-Jeuxvideo.comRue-AudioVideo.comRue-Telephone.comForums
S'inscrire | S'identifier |
| Recherche avancée | Aide
 
 

16 utilisateurs inconnus

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

Compter dans un tableau en VBA

 
n°17597
Le POlonai​s
Profil : Jeune recrue
Posté le 28-09-2006 à 18:33:09  profilanswer
 

Comment faire pour compter dans un tableau qui démarre de CA5 à CZ30
le texte qui se trouve par exemple L, QR
 
Sans être obligé de faire 30 fois copier coller
Range("CA42" ).Select  
[CA42] = [CountIf(CA5:CA30, "L" )] + [CountIf(CA5:CA30, "QR" )]
 
 
Range("CB42" ).Select  
[CB42] = [CountIf(CB5:CB30, "L" )] + [CountIf(CB5:CB30, "QR" )]  
 
Merci
 

n°17598
galopin01
Profil : Membre
Posté le 28-09-2006 à 21:25:26  profilanswer
 

Bonjour,
Le problème c'est que je ne comprend pas bien la question : Tu veux poser des formules ou tu cherches un résultat ?
 
Ben, t'a le choix :
ou tu étends ta formule (en 'tit nèg !) :
 
Range("CA42" ).Select  
[CA42] = [CountIf(CA5:CZ30, "L" )] + [CountIf(CA5:CZ30, "QR" )]  
 
Ou tu la gardes au ligne par ligne et tu fais une recopie incrémentée à partir de la première ligne. L'enregistreur te fera ça très bien.
 
Ou tu fais une boucle (toujours à la hache...)
For each o in Range("CA5:CZ30" )
if o.value = "L" or o.value = "QF" then maVar = mavar +1
Next
 
A+
 

n°17601
Le POlonai​s
Profil : Jeune recrue
Posté le 29-09-2006 à 07:40:52  profilanswer
 

Merci Galopin
 
Ce que je voudrais c'est d'obtenir
le résultats de chaque colonne.
1° colonne de CA5 à CA30  résultat dans la cellule CA42
2° colonne de CB5 à CB30  résultat dans la cellule CB42
3° colonne de CC5 à CC30  résultat dans la cellule CC42
4° colonne de CD5 à CD30  résultat dans la cellule CD42
5° colonne de CE5 à CE30  résultat dans la cellule CE42
ET AINSI DE SUITE
Je n'arrive pas en VBA car je ne veux pas avoir de formule sur la feuille  Excel.
A+

n°17602
galopin01
Profil : Membre
Posté le 29-09-2006 à 11:19:24  profilanswer
 

bonjour,
on peut faire comme ça :

Code :
  1. Sub Test()
  2. iDeb = Range("CA1" ).Column
  3. iFin = Range("CZ1" ).Column
  4.   For i = iDeb To iFin
  5.     For Each o In Range(Cells(5, i), Cells(30, i))
  6.       If o = "L" Or o = "QF" Then mavar = mavar + 1
  7.     Next
  8.   Cells(42, i) = mavar
  9.   mavar = 0
  10.   Next
  11. End Sub


A+


Aller à :
Ajouter une réponse