macro : compter le nombre de valeur

roidurif

XLDnaute Occasionnel
Bonjour,

J'aimerai savoir comment on compte le nombre de valeur dans différente colonne puis aprés affecter ce nombre dans un texte!

Code:
Sub cell_text_vert()
Dim plage As Range
Dim cel As Range
Dim n As Long


Set plage = Sheets("CONTROLE").Range("B12:G" & [G61000].End(xlDown).Row)
Set F = Sheets("CONTROLE").Range("F12:F" & [F1000].End(xlDown).Row)
Set G = Sheets("CONTROLE").Range("G12:G" & [G1000].End(xlDown).Row)
Set H = Sheets("CONTROLE").Range("H12:H" & [H1000].End(xlDown).Row)
Set i = Sheets("CONTROLE").Range("I12:I" & [I1000].End(xlDown).Row)
Set j = Sheets("CONTROLE").Range("J12:J" & [J1000].End(xlDown).Row)
Set K = Sheets("CONTROLE").Range("K12:K" & [K1000].End(xlDown).Row)
Set L = Sheets("CONTROLE").Range("L12:L" & [L1000].End(xlDown).Row)
Set M = Sheets("CONTROLE").Range("M12:M" & [M1000].End(xlDown).Row)
Set NN = Sheets("CONTROLE").Range("N12:N" & [N1000].End(xlDown).Row)
Set O = Sheets("CONTROLE").Range("O12:O" & [O1000].End(xlDown).Row)
Set P = Sheets("CONTROLE").Range("P12:P" & [P1000].End(xlDown).Row)
Set Q = Sheets("CONTROLE").Range("Q12:Q" & [Q1000].End(xlDown).Row)
Set R = Sheets("CONTROLE").Range("R12:R" & [R1000].End(xlDown).Row)
Set S = Sheets("CONTROLE").Range("S12:S" & [S1000].End(xlDown).Row)
n = 0
For Each cel In plage
If cel <> 0 Then
n = n + 1 'compteur
End If
Next
With Sheets("CONTROLE")
.Range("A1") = "Il y a " & n & " cellules"
End With

n = 0
For Each cel In plage
If cel <> 0 Then
n = n + 1 'compteur
End If
Next
With Sheets("CONTROLE")
.Range("A2") = "Il y a " & n & " cellules"
End With

n = 0
For Each cel In F
If cel <> 0 Then
n = n + 1 'compteur
End If
Next
With Sheets("CONTROLE")
.Range("A3") = "Il y a " & n & " cellules"
End With

n = 0
For Each cel In G
If cel <> 0 Then
n = n + 1 'compteur
End If
Next
With Sheets("CONTROLE")
.Range("A4") = "Il y a " & n & " cellules"
End With
end sub
 

skoobi

XLDnaute Barbatruc
Re : macro : compter le nombre de valeur

Bonsoir roidurif,

La fonction Excel NBVAL est tout indiqué pour faire cela.
Si tu tiens absolument à le faire par macro, l'équivalent VBA de cette fonction est CountA.
Pour la variable plage, ça donne:

Code:
With Sheets("CONTROLE")
n = WorksheetFunction.CountA(plage)
.Range("A1") = "Il y a " & n & " cellules"
End With

Comme tu peux le voir, point besoin de boucler sur plage ;).
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Re : macro : compter le nombre de valeur

Bonjour

une petite feuille exemple est toujours la bienvenue, voici un code simple qui t'affichera un message sur le nombre de cellules non vides dans la plage B12 à fin de colonne G
Code:
Sub Compte_Valeurs()
MsgBox "Il y a " & Application.WorksheetFunction.CountA(Sheets("CONTROLE").Range("B12:G" & Sheets("CONTROLE").Range("G65536").End(xlUp).Row)) & " cellule(s)"
End Sub
le même avec la colonne B entière
Code:
Sub Compte_Valeurs_B()
MsgBox "Il y a " & Application.WorksheetFunction.CountA(Sheets("CONTROLE").Range("B:B")) & " cellule(s)"
End Sub

Cordialement, @+
 

roidurif

XLDnaute Occasionnel
Re : macro : compter le nombre de valeur

Bonjour et Merci à tous,

Je sais pas si c'est possible de dire lorsqu'il y' a le nombre de valeur est à 0, le texte reste noir et si le nombre de valeur est > 0 alors le texte ce mets rouge.

Merci
 

skoobi

XLDnaute Barbatruc
Re : macro : compter le nombre de valeur

Bonsoir le fil,

en bleu l'ajout:

Code:
With Sheets("CONTROLE")
n = WorksheetFunction.CountA(plage)
.Range("A1") = "Il y a " & n & " cellules"
[COLOR=Blue][B].Range("A1").Font.Color = IIf(n = 0, 0, vbRed)[/B][/COLOR]
End With
 

Statistiques des forums

Discussions
312 786
Messages
2 092 101
Membres
105 201
dernier inscrit
SEB17700