Boucle for
Résolu
Bonjour,
existe-t-il une syntaxe de boucle for pour des valeurs discontinues?
exemple:
"For i= 1 / 3 / 6/ 13"
cells(1,i).select
next
Merci d'avance pour votre aide
existe-t-il une syntaxe de boucle for pour des valeurs discontinues?
exemple:
"For i= 1 / 3 / 6/ 13"
cells(1,i).select
next
Merci d'avance pour votre aide
4 réponses
-
Merci à tous pour votre aide et votre réactivité.
Megatron -
Salam megatron.....
Je ne pense pas qu'on puisse le faire directement avec FOR mais en combinant la boucle FOR avec l'instruction SELECT CASE on peut restreindre l'exécution du code aux seules valeurs indiquées par CASE.
Voici un exemple où parmis les nombres de 1 à 10, seuls 1;5;8 sont traités (affichage d'un msgbox):
For i = 1 To 10 Select Case i Case 1, 5, 8: MsgBox i End Select Next i
J'espère que cela t'aidera. :) -
Bonjour
Une possibilité : mettre les valeurs dans un tableau
A(1)=1; A(3)=6;A(3)=6.A(4)=13
et
for i=1 to 4
cells(1,A(i)).select
next-
-
C'est à toi de les définir dans le code en fonction de tes besoins
Tout dépend à quoi correspondent les valeurs
sont elles arbitraires ? il faut les rentrer en ligne de code A(1)=1 : A(2)=6: etc
dépendent elles de résultat d'un calcul ? d'une valeur d'une cellule ? tu peux y faire référence dans le code A(1) = cells((1,1).value : A(2)=cells(1,2).value etc
Ne pas oublier en debut de module de dimensionner le tableau
Dim A(20) par ex pour 20 valeurs
-
-
Bonjour,
Je n'en connais pas, mais je peux te proposer:
For i= 1 to 13 cells(1,i).select If i = 1 then i = 2 else if i = 3 then i = 5 else if i = 6 then i = 12 else end if end if end if next i
si tu a peu de test a faire, et toujours les mêmes, cela pourra résoudre ton problème
Remarque, il est également possible de le faire avec des i qui changent si ils sont renseignés par l'utilisateurs en utilisant des variables, mais il faut que le nombre de "cas" a traiter soit toujours le même