Boucle dans plusieurs onglets
Salut,
Quelqu'un peut m'aider à comprendre pourquoi ma boucle ne fonctionne pas dans les 6 onglets? Elle semble fonctionner seulement sur la feuille active..
Sub couleur_finale()
Dim vert&, rouge&, bleu&, bleu2&, blanc&, noir&, jaune&, ncouleur, txtCouleur, tcouleur
Dim ln&, k&, derln&
Dim Arr_Sheets(6) As String
Dim Ob_Sheet As Worksheet
vert = RGB(146, 208, 80)
rouge = RGB(128, 0, 0)
bleu = RGB(0, 51, 102)
bleu2 = RGB(51, 51, 255)
noir = RGB(0, 0, 0)
jaune = RGB(255, 255, 0)
blanc = RGB(255, 255, 255)
Arr_Sheets(0) = "PEM"
Arr_Sheets(1) = "SPOT"
Arr_Sheets(2) = "TIME SAVER"
Arr_Sheets(3) = "SOUDURE"
Arr_Sheets(4) = "FINITION"
Arr_Sheets(5) = "ASSEMBLAGE"
Arr_Sheets(6) = "PLIAGE"
For s = 0 To 6
Val_sh = Arr_Sheets(s)
Set Ob_Sheet = ThisWorkbook.Worksheets(Val_sh)
For ln = 2 To Ob_Sheet.Range("AP" & Rows.Count).End(xlUp).Row
If Range("AP" & ln) <> "" Then
For k = 1 To 2
ncouleur = Choose(k, vert, rouge, bleu, noir)
txtCouleur = Choose(k, "VERT", "ROUGE", "BLEU", "NOIR")
tcouleur = Choose(k, noir, noir, noir, noir)
If UCase(Ob_Sheet.Range("AP" & ln)) = txtCouleur Then
derln = Ob_Sheet.Range("D" & ln - 1).End(xlDown).Row
Ob_Sheet.Range("D" & ln & ":AA" & derln).Interior.Color = ncouleur
Ob_Sheet.Range("D" & ln & ":AA" & derln).Font.Color = tcouleur
End If
Next k
End If
Next ln
Next s
End Sub
je ne suis pas un pro en VBA, mais essaie ceci:
If Val_sh.Range("AP" & ln) <> "" Then
.
.
.
c'est courant en changeant de feuille qu'il faille déclarer le nom de la feuille.
il me semble que tu l'as fait correctement ailleurs
Yves