VBA Compter des cellules

Résolu
earvin -  
 earvin -
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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
earvin
 
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