Décaler une boucle par une case

Bonjour ,

y' a t-il une façon de décaler cette boucle par une cellule , en ce moment j'utilise cette boucle pour traiter des cases qui sont successives, j'aimerais bien l'utiliser pour des cases qui sont alternées.

 If Sheets(2).Cells(i, 44) = "OUT" And Sheets(2).Cells(i, 1) <> "" And Sheets(2).Cells(i, 3).Text Like "?*@?*.?*" Then
For Exp = 1 To 10
Select Case Exp
Case 1 To 10

If Sheets(2).Cells(i, 23 + Exp).Value = "DNM" And Sheets(2).Cells(4, 23 + Exp) = "Educ" Then
bodymessage(Exp - 1) = bodymessage(Exp - 1) & vbNewLine & " ** " & Sheets(1).Range("B19").Text & "<br/>"
fr(Exp) = fr(Exp) & vbNewLine & " ** " & Sheets(1).Range("E19").Text & "<br/>"
End If

If Sheets(2).Cells(i, 23 + Exp).Value = "DNM" And Sheets(2).Cells(4, 23 + Exp) = "EX1" Then
bodymessage(Exp - 1) = bodymessage(Exp - 1) & vbNewLine & " ** " & Sheets(1).Range("B25").Text & "<br/>"
fr(Exp) = fr(Exp) & vbNewLine & " ** " & Sheets(1).Range("E25").Text & "<br/>"
End If
If Sheets(2).Cells(i, 23 + Exp).Value = "DNM" And Sheets(2).Cells(4, 23 + Exp) = "EX2" Then
bodymessage(Exp - 1) = bodymessage(Exp - 1) & vbNewLine & " ** " & Sheets(1).Range("B26").Text & "<br/>"
fr(Exp) = fr(Exp) & vbNewLine & " ** " & Sheets(1).Range("E26").Text & "<br/>"
End If

1 réponse

  1. Bonjour,

    Si tu veux sauter des cases, il faut préciser la règle qui permet de le faire.
    Le code fait ce que tu lui dis de faire.
    1. Bonjour ,
      j'ai essayé ce code la
       If Sheets(2).Cells(i, 23 + Exp+1).Value = "DNM" And Sheets(2).Cells(4, 23 + Exp) = "Educ" Then
      bodymessage(Exp - 1) = bodymessage(Exp - 1) & vbNewLine & " ** " & Sheets(1).Range("B19").Text & "<br/>"


      j'ai juste fais une addition de 1 , mais le probleme c'est je commence toujours de la premiere case ,
    2. Ton i, il s'incrémente bien?
    3. oui mais a un certain moment ça bloque , vu que je commence toujours de la premiere case
      y 'a t il une facon d'alterner cette boucle ?
          For Exp = 1 To 10 
    4. Qu'entends-tu par alterner?
    5. décaler de colonne en colonne **