Comment définir un range de façon dynamique sur VBA pour Excel?
Résolu
SophieCCM
Messages postés
2
Statut
Membre
-
SophieCCM Messages postés 2 Statut Membre -
SophieCCM Messages postés 2 Statut Membre -
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
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. |
A voir également:
- Range dynamique vba
- Tableau croisé dynamique - Guide
- Exemple tableau croisé dynamique télécharger - Télécharger - Tableur
- Vba range avec variable ✓ - Forum VB / VBA
- Liste déroulante dynamique excel - Guide
- Range avec une Variable ✓ - Forum VB / VBA
Mais merci :-)
sophie