Boucle For

Utilisateur anonyme -  
Michael_Ange Messages postés 231 Statut Membre -
Bonjour,

J'aurais aimé faire ceci mais il semblerait que cela ne soit pas possible.

For i = "I" To "O" Step 1

Auriez vous une idée de comment faire ?

merci
A voir également:

4 réponses

kij_82 Messages postés 4260 Statut Contributeur 857
 
Bonjour,

Peux-tu apporter plus d'information, dans quel langage programmes-tu par exemple ?
Pourquoi vouloir boucler sur des lettres ? Ne peux-tu pas utiliser des chiffres (chiffres position des lettres dans l'alphabet par exemple)
0
Utilisateur anonyme
 
C'est en VBA, je voudrais boucler sur chaque colonne.
0
Polux31 Messages postés 7219 Statut Membre 1 204
 
C'est effectivement impossible d'incrémenter une boucle sur des lettres.

"I" = colonne 9
"O" = colonne 15

Ce qui donne : For i = 9 To 15

Step 1 est implicite dans un For... Next, on le précise si l'on veut un pas différent,
de 2 en 2 = Step 2, de 3 en 3 = Step 3 etc ...

;o)
0
Michael_Ange Messages postés 231 Statut Membre 19
 
J'ai jamais essayé en VBA, mais en Pascal, il était tout a fait possible de boucler sur des lettres.... J'essaie et je te fait signe...
0
Polux31 Messages postés 7219 Statut Membre 1 204
 
Oui mais là, c'est du VBA et pas du Pascal
0
Utilisateur anonyme
 
Tu vois, j'ai besoin de faire

Set plage = Worksheets(1).Range(i & "9:" & i & "14")

avec i le nom de la colonne
0
Polux31 Messages postés 7219 Statut Membre 1 204
 
Là tu boucles sur les lignes et pas sur les colonnes !!!

Puisque tu as une plage, pourquoi ne pas faire un For Each .. Next ?

Dim cl

Set plage = Worksheets(1).Range(i & "9:" & i & "14")

For Each cl In plage
     ' blablabla ...
Next cl

Set plage = Nothing
0
Michael_Ange Messages postés 231 Statut Membre 19
 
Essaie de faire un truc de ce genre

Dim colonne As String
Dim tab_colonne() As String

colonne = "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z"
tab_colonne = Split(colonne)


Ainsi, si j'adapte ça a ton exemple un peu plus haut, tu pourras avoir un truc de ce genre :
....
Set plage = Worksheets(1).Range(tab_colonne(i-1) & "9:" & tab_colonne(i-1) & "14")
0
Michael_Ange Messages postés 231 Statut Membre 19
 
Le (i-1), c'est parce que l'index de départ du tableau que tu auras obtenu sera "0" et non "1"
0