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