Complément code VBA [Résolu]

Signaler
-
 Saajo -
Bonsoir,

Je souhaiterais sélectionner une plage de cellule A10:F59, seulement je ne sais pas comment le remplacer à la place d'une sélection de ligne ci-dessous:


' Si la ligne entière n'est pas vide :
If WorksheetFunction.CountA(ActiveSheet.Rows(l)) > 0 Then




Ci-dessous code complet de la macro:




Sub CheckEntries()
Dim valCel As Range
Dim message As String
message = "Veuillez corriger les cellules suivantes :"

'boucle sur les lignes 10 à 59
For l = 10 To 59


' Si la ligne entière n'est pas vide :
If WorksheetFunction.CountA(ActiveSheet.Rows(l)) > 0 Then

'condition si colonne B et E contient un nombre alors aller à la boucle colonnes
If IsNumeric(Cells(l, 2)) And IsNumeric(Cells(l, 5)) Then


    'boucle sur les colonnes 1 à 6 ( A à F )
  For c = 1 To 6
        Set valCel = Cells(l, c)
        If IsEmpty(valCel) Or valCel.Value = "" Then
            message = message & vbCrLf & valCel.Address(RowAbsolute:=False, ColumnAbsolute:=False)
        End If
        
        'si ensemble cellule vide alors surbrillance rouge
        If IsEmpty(valCel) Or valCel.Value = "" Then
            valCel.Interior.Color = RGB(255, 0, 0)
        Else
            valCel.Interior.Color = RGB(255, 255, 255)
        End If
       
    Next

End If

End If

Next

'On affiche la messagebox qu'une fois les boucles terminées

MsgBox message

For l = 10 To 59
    'boucle sur les colonnes 1 à 6 ( A à F )
    For c = 1 To 6
        Set valCel = Cells(l, c)
                'si ensemble cellule vide alors surbrillance rouge
        If valCel.Interior.Color = RGB(255, 0, 0) Then
            valCel.Interior.Color = RGB(255, 255, 255)
        End If
    Next
Next

End Sub



Merci d'avance pour votre aide.

Bien à vous,
Saajo

2 réponses

Messages postés
31087
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 janvier 2021
3 192
Et bien, au lieu de cibler la ligne entière, tu dois pouvoir spécifier la plage de cellule à traiter
https://docs.microsoft.com/fr-fr/office/vba/api/excel.range.cells

Donc, remplacer
ActiveSheet.Rows(l)

par un truc du genre
ActiveSheet.Range(cells(l,1),cells(l,6))

Merci Jordane45
bien à toi
Saajo