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

4 réponses

  1. kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   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
  2. Utilisateur anonyme
     
    C'est en VBA, je voudrais boucler sur chaque colonne.
    0
  3. 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
    1. 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
    2. Polux31 Messages postés 7219 Statut Membre 1 204
       
      Oui mais là, c'est du VBA et pas du Pascal
      0
  4. 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
    1. 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
    2. 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
    3. 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