Boucle For

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

4 réponses

  1. Tu vois, j'ai besoin de faire

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

    avec i le nom de la colonne
    1. 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
    2. 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")
    3. Le (i-1), c'est parce que l'index de départ du tableau que tu auras obtenu sera "0" et non "1"
  2. 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)
    1. 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...
    2. Oui mais là, c'est du VBA et pas du Pascal
  3. C'est en VBA, je voudrais boucler sur chaque colonne.
    1. Contributeur
      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)