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 -
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
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
- Liste déroulante dynamique excel - Guide
- Vba range avec variable ✓ - Forum VB / VBA
- Le nom du champ de tableau croisé dynamique n'est pas valide ✓ - Forum Excel
Mais merci :-)
sophie