Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Il n'y a rien au début à part l'en-tête de début de macro.
Et après c'est un "Select Case ... / End Select" où j'utilise les variables Ligne_CEx_début / Ligne_Cex_fin (où x est remplacé par 1, 2, ..., 10).
Mais quoiqu'il en soit, je sais que ce bout de code code ne fonctionne pas correctement puisqu'il me crée une variable nommée Ligne_CEx_début et une autre Ligne_CEx_fin (au lieu de me faire Ligne_CE1_début, Ligne_CE2_début, ...)
(j'ai fait la vérification avec une MsgBox)
Il n'y a rien au début à part l'en-tête de début de macro.
Et après c'est un "Select Case ... / End Select" où j'utilise les variables Ligne_CEx_début / Ligne_Cex_fin (où x est remplacé par 1, 2, ..., 10).
Mais quoiqu'il en soit, je sais que ce bout de code code ne fonctionne pas correctement puisqu'il me crée une variable nommée Ligne_CEx_début et une autre Ligne_CEx_fin (au lieu de me faire Ligne_CE1_début, Ligne_CE2_début, ...)
(j'ai fait la vérification avec une MsgBox)
Oui, c'est cà que je veux le code du début à la fin pour que je puisse le reproduire et voir où ça coince. Pour ton info utilise la touche # quand tu post, elle se trouve à droite des police en gras et tu as ceci
perso comprends pas trop l'intérêt d'une boucle dans ce cas, puisqu'a priori, tu ne te sers que de la dernière valeur calculée.... A noter au passage qu'il est tout de même préférable de déclarer et typer les variables :
Je ne comprends pas ta remarque... pourquoi je ne me servirai que de la dernière variable calculée ?
Le "case" fait intervenir 18 variables : de Ligne_CE2_début à Ligne_CE10_début et de Ligne_CE2_début à Ligne_CE2_fin... je n'ai pas envie de paramétrer ces 18 variables ligne par ligne si je peux l'automatiser !
Et avec une boucle, c'est d'autant plus facile à modifier si je modifie ma feuille Excel. C'est bien pour ça que je souhaite utiliser des variables plutôt que directement les numéros de ligne...
euh, il me semble que ta boucle n'a d'incidence uniquement que sur la valorisation de tes variables... puisqu'à l'intérieur de cette même boucle tu ne fais pas autre chose.... Ou bien quelque chose m'échappe... fort possible du reste....
euh, il me semble que ta boucle n'a d'incidence uniquement que sur la valorisation de tes variables... puisqu'à l'intérieur de cette même boucle tu ne fais pas autre chose.... Ou bien quelque chose m'échappe... fort possible du reste....
Oui, c'est exactement cela. La boucle a pour seul but de me créer 20 variables :
Ligne_CE1_début
Ligne_CE1_fin
Ligne_CE2_début
...
Ligne_CE10_fin
(les variables utilisées dans le "Select Case" après)
Sauf que dans l'état actuel, elle ne me crée que deux variables : Ligne_CEx_début et Ligne_CEx_fin
D'où mon problème ! J'aimerai pouvoir inclure dans le nom de mes variables la valeur du compteur de la boucle (c'était ma tentative avec le "CEx"), sauf que je ne sais pas comment faire... =/
EDIT pour pierrejean : il est vrai que tel quel, on peut ne pas comprendre ce que je veux faire avec cet macro. En version résumée :
J'ai sur ma feuille excel une cellule possédant une liste déroulante de choix (avec les valeurs de 1 à 10). C'est la cellule nommée "NB_REA". Selon la valeur que prend cette cellule, je souhaite masquer un certain nombre de lignes situées en-dessous. C'est là l'utilité du "Select Case".
Au départ, je l'avais fait simplement de la forme :
Code:
Select Case Range("NB_REA").Value
Case 1
Rows("18:26").EntireRow.Hidden = True
Rows("159:210").EntireRow.Hidden = True
etc.
D'un point de vue pratique, il s'agit de faire apparaitre des sortes de "fiche utilisateur" selon le nombre d'utilisateurs entré dans "NB_REA". S'il n'y a qu'un seul utilisateur, on ne fait apparaitre qu'une fiche, etc.
Sauf qu'il peut arriver que j'aie besoin de rajouter des paramètres dans une fiche utilisateur (donc rajouter une ligne). Du coup, cette fiche devient plus longue (en nb de lignes), et si j'ai rentré à la main mes numéros de ligne, tout est à refaire ! Comme chaque fiche débute par un genre de case de titre, j'ai donné un nom à ces cases : CE1_début, CE2_début, etc.
Je souhaiterai donc automatiser la création des variables indiquant les lignes correspondant au début et à chaque fin de fiche. Et avec une boucle, c'est encore plus simple ! En effet, l'espacement entre Ligne_CEx_début et Ligne_CEx_fin étant régulier, à supposer que je rajoute une ligne de paramètre à chaque fiche, dans ma boucle for actuelle, au lieu de faire "+10" pour obtenir la fin, je fais "+11" et le tour est joué. Qu'une seule chose à changer au lieu de modifier toutes les variables...
Euh non, si le Next I est en fin de macro, ça marche encore moins bien...
Supposons que la valeur de la cellule "NB_REA" soit de 4.
Lorsque la macro se lance, la boucle débute, des variables nommées Ligne_CEI_début et Ligne_CEI_fin sont créées. On entre dans le "Select Case", choix 4, et là pouf! problème, Excel ne connait ni "Ligne_CE2_début", ni "Ligne_CE4_fin", ni "Ligne_CE5_début", ni enfin "Ligne_CE10_fin", puisque ces variables n'ont pas été définies.
alors là, je suis largué.... fais peut être un tout petit fichier, représentant bien le problème posé, ce sera peut être plus facile pour t'aider, car là, je crais que l'on tourne en rond longtemps...
dans cas , ce qu'il y a lieu de creer c'est 2 tableaux style
dim Ligne_CEI_début(1 to 10)
dim Ligne_CEI_fin (1 to 10)
For I = 1 To 10
Ligne_CEI_début(I) = Range("CE" & I & "_début").Row
Ligne_CEI_fin(I) = Ligne_CEI_début + 10
Next I
et utiliser ensuite
Ligne_CEI_début(1)
Ligne_CEI_fin(1)
L'edit de mon message précédent (où j'essaye d'expliquer ce que je veux faire) n'est pas clair ? =/
Mais sinon, indépendamment de mon problème particulier, la question est la suivante :
comment, dans une boucle, pouvoir intégrer la valeur du compteur au nom d'une variable créée ?
Cas pratique : je veux créer une boucle pour définir 5 variables nommées "variable1", "variable2", "variable3", "variable4", "variable5" ayant pour valeurs respectives 1,2,3,4,5. Comment faire ?
EDIT : ah oui, merci pierrejean, c'est une solution !
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous garder connecté si vous vous enregistrez.
En continuant à utiliser ce site, vous consentez à notre utilisation de cookies.