Associer le numéro de la ligne au nom d'une variable

  • Initiateur de la discussion Initiateur de la discussion Fab117
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Fab117

XLDnaute Impliqué
Salut, est-il possible d'associer le nom d'une variable à une autre ?
Je m'explique, j'ai une boucle (For i = 1 To 200).

Dans cette boucle, il va scanner toutes les cellules d'une colonne. Je souhaiterais mettre le contenu de chaque cellule dans une variable.

J'ai donc essayé :

Dim ContenuCellule
Dim i
For i = 1 To 200
ContenuCellule & i = Range("C" & i)
Next i

Mais ça ne lui a pas plus

Quelqu'un a-t-il une solution ?
Merci d'avance.

Fab
 
Re : Associer le numéro de la ligne au nom d'une variable

Merci Robert,
Mais il bloque sur la ligne :

For x = 0 To UBound(tbl, 1) 'boucle 2 : sur tous les élément du tableau de variables tbl

Il met le message :
Run-time error '9'
Subscript out of range

Fab
 
Re : Associer le numéro de la ligne au nom d'une variable

Robert,
Je n'avais pas vu ton commentaire à la fin de ton dernier message concernant le code en rouge.
Je ne comprend absolument pas pourquoi, mais avec ton alternative, les premiers essais ont l'air de fonctionner parfaitement.

Merci.

Fab
 
Re : Associer le numéro de la ligne au nom d'une variable

Bonsoir le fil, bonsoir le forum,

Une petite explication...

On lance une boucle dans un fichier F1 onglet O1 à l'intérieur de laquelle on active un fichier F2 onglet O2 pour déterminer un palge de celui-ci. On oublie de réactiver le fichier F1 et son onglet O1 et on veut revenir à la boucle.... Plantage !

En fait les Select ou Activate sont à éviter au maximum. Cela ralentit considérablement l'exécution du code. Il n'est pas nécessaire d'activer un classeur et un onglet précis pour modifier/éditer une valeur mais cela implique d'indiquer le chemin précis. On aura le même résultat sera le même avec :

Code:
Windows("Worksheet in Basis (1)").Activate
Sheets("Sheet1").Select
range("A1").Value = "toto"

qu'avec :

Code:
Windows("Worksheet in Basis (1)").Sheets("Sheet1").range("A1").Value = "toto"

Mais la seconde ligne est beaucoup plus rapide...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
237
Réponses
7
Affichages
365
Réponses
4
Affichages
188
Réponses
3
Affichages
676
Retour