Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 For each .... jusqu'a la derniere non vide

Bens7

XLDnaute Impliqué
Bonjour a tous !
Voial après avoir fait plusieurs essai et bien sur Googeliser mon probleme je n;arrive pas a adapter ma macro :

Code:
Sub majcouleur()
    Dim u As Range
    For Each u In Sheets("ACTIF").Range("u2:u343")

    'retard
    If u = (Date - 7) Or u < (Date - 7) Then
    u.Interior.Color = RGB(255, 199, 206)
    u.Font.Color = RGB(156, 0, 0)
    End If
    Next u
End Sub

Tres simplement met en rouge les retard dans la collone u (Pas de mise en forme conditionel mon fichier etant tres lourd ca ralentie enormement...)
Le soucci c'est Range("u2:u343") , je voudrais sans mettre u343... mais la dernière cellule non vide de u ...

j'ai donc essayer : For Each u In Sheets("ACTIF").Range("u2").End(xldown).Row

et ca marche pas /... voila merci a tous
 

Bens7

XLDnaute Impliqué
Hoo merci !!!
Bah j'ai mis For Each jusqu'a non vide > rien
derniere cellule non vide : .End(xldown).Row
ect ect....

En fin bref juste une petite question :
Pourquoi partir du bas vers le Haut ?
et pas de U2 jusqu'a End(xldown) ?
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

Une autre façon (sans boucle)
Est-ce plus rapide sur ton vrai fichier ?
VB:
Sub majcouleur_V2()
Dim u As Range, p As Range
Application.ScreenUpdating = False
Set u = Sheets("ACTIF").Range(Cells(2, "U"), Cells(Rows.Count, "U").End(xlUp))
u.Offset(, Columns.Count - 21).Formula = "=IF(OR(U2=TODAY()-7,U2<TODAY()-7),""Staple"",1)"
Set p = u.Offset(, Columns.Count - 21).SpecialCells(-4123, 2).Offset(, -(Columns.Count - 21))
p.Interior.Color = RGB(255, 199, 206): p.Font.Color = RGB(156, 0, 0)
Columns(Columns.Count).Clear: [U2].Select
End Sub
 

Discussions similaires

Réponses
3
Affichages
555
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…