Définir une plage de cellules

Bonjour, je travaille sur plusieurs macro notamment avec des tests (plusieurs boucles if) et j'aimerais définirsur quelle plage de cellules ces tests vont s'effectuer.

Ma plage de cellule serait de la ligne 2 à la première ligne non vide de la colonne I, à partir de là je pourrais à l'intérieur d'une boucle For tester mes conditions. J'ai essayé cela mais je n'ai pas l'impression que cela marche :

Sub FinalCheck()

Dim Ligdeb, Ligfin As Integer
Dim sFund As Integer

'initialisation constantes
sFund = Range("I")
Ligdeb = 2
Ligfin = Val(Range("I" & CStr(Ligdedb)).End(xlDown).Row) 'première cellule  vide

Par exemple, j'aimerai que sur une telle plage, si les cellules des colonnes M, S, et U sont vides alors la cellule correspondant à la même ligne dans la colonne I devienne noire...(je ne sais pas si c'est très clair). J'ai essayé ça sans réussite :

Sub FinalCheck()

Dim Ligdeb, Ligfin As Integer
Dim sFund As Integer

'initialisation constantes
sFund = Range("I")
Ligdeb = 2
Ligfin = Val(Range(sFund & CStr(Ligdedb)).End(xlDown).Row) 'première cellule vide

For i = Ligdeb To Ligfin
If Not IsEmpty(Range("S" & CStr(i))) & Not IsEmpty(Range("M" & CStr(i))) & Not IsEmpty(Range("U" & CStr(i))) Then
Range(sFund & CStr(i)).Font.ColorIndex = 1

End If

Next i

End Sub

Si vous avez des idées...merci d'avance.

Bonjour,

Essaie ceci :

Public Sub FinalCheck()
Dim lCol As Long, lRow As Long, lastRow As Long, I As Long
Dim xlCount As Double
    lCol = 9: lRow = 2
    lastRow = Cells(lRow, lCol).End(xlDown).Row  
    For I = lRow To lastRow
        xlCount = WorksheetFunction.CountA(Cells(I, 13), Cells(I, 19), Cells(I, 21))
        If xlCount = 0 Then Cells(I, lCol).Font.ColorIndex = 1
    Next
End Sub

Bonjour, merci beaucoup ça marche super bien ! je ne comprend pas tout dans le code je vais m'y pencher plus sérieusement, surtout que je me suis trompé dans la condition ce n'est pas "si toutes les cellules sont vides " mais si "toutes les cellules osnt pleines" je vais mettre un not ça ira.

Merci pour la rapidité, bonne soirée.

Re,

Une nouvelle proposition.

Public Sub FinalCheck()
Dim lCol As Long, lRow As Long, lastRow As Long, I As Long
Dim xlCount As Double
    '9 = I
    lCol = 9: lRow = 2
    lastRow = Cells(lRow, lCol).End(xlDown).Row
    For I = lRow To lastRow
        '13 = M, 19 = S, 21 = S
        xlCount = WorksheetFunction.CountA(Cells(I, 13), Cells(I, 19), Cells(I, 21))
        If xlCount = 3 Then Cells(I, lCol).Font.ColorIndex = 1
    Next
End Sub
Rechercher des sujets similaires à "definir plage"