Simplifier code VBA

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
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. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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? --
    0
  2. Utilisateur anonyme
     
    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
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Bonjour,
      C'est un exercice sur les IF-ElseIf? Sinon je ne vois pas l'utilité, prends ton code qui fonctionne...
      0
  3. Utilisateur anonyme
     
    C'était pour simplifier le code, ce n'est pas possible par une boucle alors ?
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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.
      0
    2. Utilisateur anonyme
       
      Ok, bon, bah j'ai repris mon code, merci de ton aide ;)
      0