Simplifier code VBA

Résolu
Bonjour,

je cherche à simplifier ce morceau de code, auriez vous une idée ?

Merci

    If ([b7] = "") Then
        Cells(7, 2).Select
        Selection.Interior.ColorIndex = 6
        [b7] = "J"
    ElseIf ([b6] = "") Then
        Cells(6, 2).Select
        Selection.Interior.ColorIndex = 6
        [b6] = "J"
    ElseIf ([b5] = "") Then
        Cells(5, 2).Select
        Selection.Interior.ColorIndex = 6
        [b5] = "J"
    ElseIf ([b4] = "") Then
        Cells(4, 2).Select
        Selection.Interior.ColorIndex = 6
        [b4] = "J"
    ElseIf ([b3] = "") Then
        Cells(3, 2).Select
        Selection.Interior.ColorIndex = 6
        [b3] = "J"
    ElseIf ([b2] = "") Then
        Cells(2, 2).Select
        Selection.Interior.ColorIndex = 6
        [b2] = "J"
    End If

3 réponses

  1. Modérateur
    Salut,
    Tu peux le faire par une boucle :

    Dim i As Integer 
    For i = 7 to 2 Step -1 
    If Cells(i, 2) = "" Then 
            Cells(i, 2).Interior.ColorIndex = 6 
            Cells(i, 2) = "J" 
    End If 
    Next i 


    Cordialement,
    -- Tout problème à sa solution. S'il n'y a pas de solution, ou est le problème? --
    1. Merci de ta réponse ;)

      Elle est presque Ok pour moi sauf que dans mon code, j'avais mis des else if
      Est ce possible de modifier pour obtenir le résultat escompté ?

      Merci beaucoup
      1. Modérateur
        Bonjour,
        C'est un exercice sur les IF-ElseIf? Sinon je ne vois pas l'utilité, prends ton code qui fonctionne...
    2. C'était pour simplifier le code, ce n'est pas possible par une boucle alors ?
      1. Modérateur
        bien sur que oui.
        Voir mon post 1.
        If
        ElseIf
        ElseIf
        ElseIf
        Nous fait une "pseudo-boucle". ElseIf n'a absolument plus aucun intérêt dans mon code.
      2. Ok, bon, bah j'ai repris mon code, merci de ton aide ;)