Boucle selon une condition

Résolu
Bonjour,

Je souhaite incrémenter des valeurs +1 si une condition est remplie :

Dans la colonne A, j'ai des valeurs
Dans la colonne B, j'inscris un petit "x"

Je souhaiterai faire une boucle, et dans cette boucle je rajoute un +1 sur les colonnes C et D.

2 réponses

  1. Contributeur
    Bonjour,

    démarrage en ligne 1 et "petite croix" avec x minuscule
    à adapter à ton classeur: spécifications manquantes dans ta demande
    Option Explicit
    '----------
    Sub incrementer_CD()
    Dim Derlig As Integer, Lig As Integer

    Application.ScreenUpdating = False
    Derlig = Columns("A").Find("*", , , , , xlPrevious).Row
    For Lig = 1 To Derlig
    Cells(Lig, "C") = Cells(Lig, "C") + ((Cells(Lig, "A") <> "") * (Cells(Lig, "B") = "x"))
    Cells(Lig, "D") = Cells(Lig, "D") + ((Cells(Lig, "A") <> "") * (Cells(Lig, "B") = "x"))
    Next
    End Sub

    Michel
    0
    1. Merci pour ton aide

      J'ai un peu cherché et j'ai aussi trouvé ça, si ça peut t'intéresser.
      Les deux fonctionnes :

      Sub selection()

      Dim selection As Long

      For selection = 1 To 30
      If Cells(selection, 7) = "x" Then
      Cells(selection, 5) = Cells(selection, 5) + 1
      Cells(selection, 6) = Cells(selection, 6) + 1

      End If

      Next

      End Sub
      0
      1. Contributeur
        Non, ça marche mais c'est lourd
        0
      2. La seconde solution ?
        0
      3. Contributeur
        Oui, car elle oblige à mettre un If... avec une redondance (+1)
        alors qu'un test logique (booléen) renvoie 1 ou 0 directement ( au format vrai ou faux sans le ET ou le OU car ET-->* et OU ''> +)

        au passage:
        "selection" est un terme VBA réservé ce qui créé une ambiguité

        Bon WE :o)
        0
      4. Le +1 est une valeur cumulée, il peut y avoir deja une valeur présente.
        0
      5. Contributeur
        Cells(Lig, "C") + ((Cells(Lig, "A") <> "") * (Cells(Lig, "B") = "x"))

        tétu ?

        mais tu fais ce que tu veux... pourquoi alors demander de l'aide sur les forums ???

        A tout hasard, je te signale que je teste toujours mes propositions
        0