Comment avoir le bon résultat avec ce code

Bonjour

Je n'arrive pas a avoir le bon résultat

Merci pour votre aide

Sub AjouterValeur()
Range("K6") = 0
    If Range("K6").Value > 0 Then
        Range("K9").Value = Range("K9").Value + Range("K6").Value
    End If
End Sub

bonjour Joco7915, avec K6=0, la macro n fera jamais la ligne entre If ... End If

Bonjour BsAlv

J'ai modifier et j'ai un beug sur la ligne

Range("K9").Value = Range("K9").Value + Range("K6").Value

J'ajoute le code qui me permet d'afficher logiquement un résultat en cellule K6

mais ne fonctionne pas rien ne s'affiche en K6

Si tu as une idée du problème

Sub CalculerValeur()
    Dim A As Integer
    Dim B As Integer
    Dim C As Integer
    Dim resultat As Variant

    ' Récupérer les valeurs des cellules A8, B8 et C8
    A = Range("A8").Value
    B = Range("B8").Value
    C = Range("C8").Value

    ' Appliquer la logique de la formule
    If A8 = 10 And B8 = 10 And C8 = 10 Then
        resultat = 1500
    ElseIf A8 = 1 And B8 = 1 And C8 = 1 Then
        resultat = 1250
    ElseIf A8 = 2 And B8 = 2 And C8 = 2 Then
        resultat = 250
    ElseIf A8 = 4 And B8 = 4 And C8 = 4 Then
        resultat = 100
    ElseIf A8 = 3 And B8 = 3 And C8 = 3 Then
        resultat = 1000
    ElseIf A8 = 5 And B8 = 5 And C8 = 5 Then
        resultat = 50
    ElseIf A8 = 11 And B8 = 11 And C8 = 11 Then
        resultat = 750
    ElseIf A8 = 12 And B8 = 12 And C8 = 12 Then
        resultat = 500
    ElseIf A8 = 7 And B8 = 7 And C8 = 7 Then
        resultat = 150
    ElseIf A8 = 6 And B8 = 6 And C8 = 6 Then
        resultat = 100
    ElseIf A8 = 8 And B8 = 8 And C8 = 8 Then
        resultat = 75
    ElseIf A8 = 9 And B8 = 9 And C8 = 9 Then
        resultat = 50
    ElseIf A8 = 10 Or B8 = 10 Or C8 = 10 Then
        resultat = 20
    Else
        resultat = " "
    End If

    ' Afficher le résultat dans la cellule K6
    Range("K6").Value = resultat
End Sub

Hello,

À quel moment ceci fait référence à des cellules ?

If A8 = 10 And B8 = 10 And C8 = 10 Then

Bonjour

Merci pour votre aide

Il faut cliquer sur un bouton activx

Bonsoir,

Sub CalculerResultat()
    Dim A8 As Integer, B8 As Integer, C8 As Integer, I As Integer
    Dim LaValeur As Integer, Tablo
    ' tableau des gains
    '          rien,    1,   2,    3,   4,  5,   6,   7,  8,  9,   10,  11,  12
    Tablo = Array(0, 1250, 250, 1000, 100, 50, 100, 150, 75, 50, 1500, 750, 500)
    ' Récupérer les valeurs des cellules A8, B8 et C8
    A8 = Range("A8").Value: B8 = Range("B8").Value: C8 = Range("C8").Value
    'on vérifie si A8 <> B8
    If A8 <> B8 Then
        If A8 = 10 Or B8 = 10 Or C8 = 10 Then LaValeur = 20
    ' on a donc A8 = B8
    Else
        For I = 1 To 12
            If A8 = I And C8 = I Then LaValeur = Tablo(I): Exit For
        Next I
    End If
    Range("K6").Value = LaValeur
    If LaValeur > 0 Then Range("K9").Value = Range("K9").Value + LaValeur
End Sub

@ bientôt

LouReeD

Bonjour LouReeD,

Merci pour ton aide

Ton code fonctionne très bien .

J'ai fait une modif pour ajouter des conditions le If A8=10 vient de ton code

Le If A8=11 c'est moi qui l'ai ajouté

le problème c'est que les 2 ne se cumule pas dans les points gagnés il n'y en a qu'un à chaque fois =11 pour 4 points jamais le =10

Est il possible de faire quelque chose?

 If A8 = 10 Or B8 = 10 Or C8 = 10 Then LaValeur = 5

        If A8 = 11 Or B8 = 11 Or C8 = 11 Then LaValeur = 4

Bonsoir,

je ne sais si j'ai bien compris :

Sub CalculerResultat()
    Dim A8 As Integer, B8 As Integer, C8 As Integer, I As Integer
    Dim LaValeur As Integer, Tablo
    ' tableau des gains
    '          rien,    1,   2,    3,   4,  5,   6,   7,  8,  9,   10,  11,  12
    Tablo = Array(0, 1250, 250, 1000, 100, 50, 100, 150, 75, 50, 1500, 750, 500)
    ' Récupérer les valeurs des cellules A8, B8 et C8
    A8 = Range("A8").Value: B8 = Range("B8").Value: C8 = Range("C8").Value
    'on vérifie si A8 <> B8
    If A8 <> B8 Then
        If A8 = 10 Or B8 = 10 Or C8 = 10 Then LaValeur = 20
        If A8 = 11 Or B8 = 11 Or C8 = 11 Then LaValeur = LaValeur + 10
        ' et s'il y avait une autre condition d'ajout de point pour une image unique
        If A8 = 12 Or B8 = 12 Or C8 = 12 Then LaValeur = LaValeur + 5
    ' on a donc A8 = B8
    Else
        ' on boucle sur les 12 valeur possibles
        For I = 1 To 12
            ' si A8 = C8 donc on a aussi = B8 alors LaValeur est égal à l'index I du tableau Tablo et on sort prématurément de la boucle
            If A8 = I And C8 = I Then LaValeur = Tablo(I): Exit For
        Next I
    End If
    ' on inscrit en K6 le montant du gain, soit obtenu par trois images identiques soit un cumul de gain suivant les images uniques
    Range("K6").Value = LaValeur
    ' si la valeur du gain est différente de 0 alors on incrémente la valeur du "compte" de cette dernière
    If LaValeur > 0 Then Range("K9").Value = Range("K9").Value + LaValeur
End Sub

Ou bien une fonction "NB.SI (A8:C8;12) > 0 Then LaValeur = LaValeur +10" Le NB.SI en VBA c'est :
If Application.CountIf("A8:C8"),"="&10) Then LaValeur = LaValeur + 10
enfin je crois...

@ bientôt

LouReeD

Bonsoir LouReeD

Merci pour ton aide

Exactement ce qu'il fallait

Crdlt

Rechercher des sujets similaires à "comment bon resultat code"