Code VBA : comment expliquer le 2, 3 (voir question) ? [RESOLU]

anthoYS

XLDnaute Barbatruc
Bonjour,


Dans ce tableau (voir capture), la Sub est sensé ajouter 3 points en B si résultat en C est égal à 1, sinon (0), 1 point.

VB:
Sub Résultat_Match()
    If Cells (2, 3) = 1 Then
    Cells (2, 3) = Cells (2 , 3) + 3
    End If
End Sub
Voici ma question : comment expliquer qu'en seconde ligne soit affichée 2, 3 et non 2, 2 car nous visons la colonne 2 ?

C'est-à-dire, la ligne suivante du code :
VB:
Cells (2, 3) = Cells (2 , 3) + 3
(car pour la première ligne je comprends)​


Merci
à+
 

Fichiers joints

phlaurent55

XLDnaute Barbatruc
Bonjour anthoys,

essaie ceci:
Code:
Sub Résultat_Match()    
If Cells (2, 3) = 1 Then    
Cells (2, 2) = Cells (2 , 2) + 3
   Else
   Cells (2, 3) = Cells (2 , 2) + 1   
End If
End Sub
à+
Philippe
 

Yurperqod

XLDnaute Occasionnel
Suite du message 2
(bonjour phlaurent55)

VB:
Sub macroTest()
Dim i As Long
For i = Cells(Rows.Count, "C").End(xlUp).Row To 2 Step -1
If Cells(i, "C") = 1 Then
Cells(i, "B") = Cells(i, "B") + 3
End If
Next
End Sub
 

Si...

XLDnaute Barbatruc
Bon_soir

Une autre proposition évènementielle basée sur True=-1 et False=0 :
VB:
Private Sub Worksheet_Change(ByVal R As Range)
  If Not Intersect(R, Range("C2", [C666].End(xlUp))) Is Nothing Then  R(1, 0) = R(1, 0) - (R = 1) * 3
End Sub
 

anthoYS

XLDnaute Barbatruc
Bonsoir @Si...

Bien bien bien. (ça reste hors de portée pour moi tout ça. Merci, ce sera pour plus tard, déchiffrer ça)
Je bloque toujours sur mon précédent message.
 

anthoYS

XLDnaute Barbatruc
Re,


Bon eh bien écoutez, j'ai trouvé par moi-même bien que vos code m'aient éclairés finalement, donc merci de m'avoir laissé pataugé malgré mes sollicitations...​


bonne fin de journée, à toute à l'heure peut être ;)
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas