Comment définir un range de façon dynamique sur VBA pour Excel?

Résolu
SophieCCM Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
SophieCCM Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

EDIT - j'ai trouvé... c'était une erreur de syntaxe dans le "For i = etc."

J'essaye de définir un range de façon dynamique. J'ai essayé plusieurs options :
--> Set rngLigne = Columns("D:T").Rows(i)
--> Set rngLigne = Range("D" & i & ":T" & i)
--> Set rngLigne = Range(Cells(i,4),Cells(i,20))

mais aucune ne fonctionne comme je voudrais. Quand j'exécute la macro pas à pas, le rngLigne reste "Nothing".

Qui peut m'aider?

Merci,
Sophie

PS ci-dessous le code complet. En bref je voudrais qu'il me compte autmatiquement le nombre de cases rouges, oranges et vertes dans une ligne donnée et qu'il m'inscrive ce total en fin de ligne


Sub Compte()

Dim i As Integer, counterRouge As Integer, counterOrange As Integer, counterVert As Integer
Dim rngLigne As Range
Dim Rouge As Long, Orange As Long, Vert As Long
Dim c As Variant

Rouge = RGB(255, 0, 0)
Orange = RGB(255, 204, 0)
Vert = RGB(0, 255, 0)

counterRouge = 0
counterOrange = 0
counterVert = 0

For i = 2 To i = 188
Set rngLigne = Columns("D:T").Rows(i)

    For Each c In rngLigne.Cells
    
       Select Case c.Interior.Color
            Case Rouge
            counterRouge = counterRouge + 1
            Case Orange
            counterOrange = counterOrange + 1
            Case Vert
            counterVert = counterVert + 1
        End Select

    Next

Range("V" & i) = counterRouge
Range("W" & i) = counterOrange
Range("X" & i) = counterVert

Next

End Sub


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

1 réponse

NHenry Messages postés 15219 Date d'inscription   Statut Modérateur Dernière intervention   365
 
De mémoire :
Set rngLigne = Range("D" & i & ":T" & i)
si le nombre est positif, ça met un espace devant.
Regardes la valeur obtenu par la concaténation avec un espion.
0
SophieCCM Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup. Entre temps j'ai édité, car j'ai trouvé l'erreur de syntaxe qui se trouvait juste au-dessus.
Mais merci :-)
sophie
0