VBA Compter des cellules

Résolu/Fermé
earvin - 9 mars 2010 à 12:07
 earvin - 9 mars 2010 à 13:14
Bonjour,

Débutant en VBA, j'essaye de m'exercer sur le cas suivant:
Dans la colonne A et B, j'ai rentré des valeurs:
Colonne A
A
A
A
A
A

Colonne B

1
1
1

Je n'ai pas le même nombre de A et de 1.
Le but est de compter le nombre de A où je trouve un 1 dans la même ligne et de noter le résultat en C1

Voilà ce que j'ai fais pour le moment:
Sub Macro1()
Thisbook = ActiveWorkbook.Name

i = 1

While Workbooks(Thisbook).Sheets("Feuil1").Range("A" & i).Value <> ""
valeur_cellule = Workbooks(Thisbook).Sheets("Feuil1").Range("A" & i).Value
valeur_1 = Workbooks(Thisbook).Sheets("Feuil1").Range("B" & i).Value = 1
total_a_1 =

i = i + 1

Wend
Workbooks(Thisbook).Sheets("Feuil1").Range("C" & 1).Value = total_a_1
End Sub

C'est face à total_a_1 que j'ai un problème.
J'ai essayé avec countA, countIf mais impossible d'avoir le bon résultat.

J'ai effectué des recherches sur le Net et je n'ai pas trouvé mon bonheur.
Avez-vous une idée ?

Par avance merci

2 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 306
9 mars 2010 à 12:27
Bonjour

essaies ceci
Option Explicit

Sub compter_a1()
Dim derlig As Long, nbre As Long
Dim cellule As Range

'donne la dernière ligne utilisée en col A
derlig = Range("A65536").End(xlUp).Row

'on boucle sur les cellules de la colonne A jusqu'à derlig
For Each cellule In Range("A1:A" & derlig)
    'si la cellule est égale à A et la cellule sur la m^lig et une colonne à droite =1 alors
    If cellule = "A" And cellule.Offset(0, 1) = 1 Then
        'on additionne de 1le nombre de cas
        nbre = nbre + 1
    End If
Next

Range("C1") = nbre
End Sub


pour t'initier à VBA site très pédago et cool
http://www.info-3000.com/

edit à 12:42h
ci joint maquette
https://www.cjoint.com/?djmPpmdVpL
0
Je me suis inspiré de ton code et j'ai fais ceci:
Sub Macro1()
Thisbook = ActiveWorkbook.Name

i = 1
total_a_1 = 0

While Workbooks(Thisbook).Sheets("Feuil1").Range("A" & i).Value <> ""
valeur_cellule = Workbooks(Thisbook).Sheets("Feuil1").Range("A" & i).Value
valeur_1 = Workbooks(Thisbook).Sheets("Feuil1").Range("B" & i).Value

If valeur_1 = 1 And valeur_cellule <> "" Then
total_a_1 = total_a_1 + 1
End If

i = i + 1

Wend
Workbooks(Thisbook).Sheets("Feuil1").Range("C" & 1).Value = total_a_1
End Sub

Et ca marche !

Merci
0