Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

For Each Gosub

6 réponses
Avatar
JPMonnier
Bonjour,
J'ai un soucis avec mon For Each !!

For Each N In clad.[m4:m100]
On N GoSub 1, 7, 13, 19, 25, 31, 37, 43, 49, 55, 61, 67, 73, 79, 85,
91, 97, 103, 109, 115, 127, 127, 133, 139
End If
Next
1:
action : Return
7:
action : Return
'tous les 6 jusqu'à
139:
action : Return

Cette Sub ne fonctionne que pour les valeurs 1, 7, 13, 19,

Comment faire le rapprochement avec la value de N et les branchements ?
Je remarque que les branchements fonctionnent avec des chiffres inférieurs à
24 (nombre d'étiquettes)
mais ne correspondent pas à la vraie valeur
Soit : si N = 7, il branche sur l'étiquette en position 7 (Qui correspond en
réalité au chiffre 37)
Ca plane sérieux !!
Merci d'avance pour vos lumières
JP

--
Cordialement
jpmonnier-no-spam@neuf.fr

6 réponses

Avatar
MichDenis
A ) Il serait plus facile d'expliquer ce que tu tentes de faire...
il y a probablement une meilleure façon de coder ça !

B ) voici un exemple :

'-----------------------
Sub test()

'Pour chaque valeur de la plage
For Each N In clad.[m4:m100]
'Selon la valeur N, il choisit l'étiquette dans la ligne suivante
'Exemple si N =3 , il se rend à l'étiquette sub13 parce qu'il
'est le troisième élément de la liste des sub1, sub7, sub13
'Si la valeur N est plus grande que le nombre d'éléments de la liste
' rien ne passe, il continue sa boucle sur la cellue suivante

On N GoSub sub1, sub7, sub13
Next
sub1:
Return
sub7:
Return
sub13:
Return

End Sub
'-----------------------

J'aurais pu écrire la même chose comme ceci :

Sub fsdf1()
For Each N In Feuil1.[A4:A100]
'La valeur N sert à déterminer laquelle des étiquettes
'la procédure choisira .... c'est tout.
On N GoSub sub1, toto, tata
Next
sub1:
Return
toto:
Return
'tous les 6 jusqu'à
tata:
Return

End Sub







"JPMonnier" a écrit dans le message de news:
e$
Bonjour,
J'ai un soucis avec mon For Each !!

For Each N In clad.[m4:m100]
On N GoSub 1, 7, 13, 19, 25, 31, 37, 43, 49, 55, 61, 67, 73, 79, 85,
91, 97, 103, 109, 115, 127, 127, 133, 139
End If
Next
1:
action : Return
7:
action : Return
'tous les 6 jusqu'à
139:
action : Return

Cette Sub ne fonctionne que pour les valeurs 1, 7, 13, 19,

Comment faire le rapprochement avec la value de N et les branchements ?
Je remarque que les branchements fonctionnent avec des chiffres inférieurs à
24 (nombre d'étiquettes)
mais ne correspondent pas à la vraie valeur
Soit : si N = 7, il branche sur l'étiquette en position 7 (Qui correspond en
réalité au chiffre 37)
Ca plane sérieux !!
Merci d'avance pour vos lumières
JP

--
Cordialement

Avatar
JPMonnier
Merci pour ta réponse
Ce que je souhaite réaliser est la coloration de cellules comportant des
chiftres de 1 à 139 ( incrémentés de 6) soit 24 possibilités

Ex : Si la valeur de la cellule est 133, N.interior.colorindex = xx

Je pourrais faire 24 IF mais je pensais résoudre le pb avc For Each Gosub
If n= 1 then ...
If n = 19 then ...
etc...
Merci encore
--
Cordialement


Merci encore
"MichDenis" a écrit dans le message de
news:%
A ) Il serait plus facile d'expliquer ce que tu tentes de faire...
il y a probablement une meilleure façon de coder ça !

B ) voici un exemple :

'-----------------------
Sub test()

'Pour chaque valeur de la plage
For Each N In clad.[m4:m100]
'Selon la valeur N, il choisit l'étiquette dans la ligne suivante
'Exemple si N =3 , il se rend à l'étiquette sub13 parce qu'il
'est le troisième élément de la liste des sub1, sub7, sub13
'Si la valeur N est plus grande que le nombre d'éléments de la liste
' rien ne passe, il continue sa boucle sur la cellue suivante

On N GoSub sub1, sub7, sub13
Next
sub1:
Return
sub7:
Return
sub13:
Return

End Sub
'-----------------------

J'aurais pu écrire la même chose comme ceci :

Sub fsdf1()
For Each N In Feuil1.[A4:A100]
'La valeur N sert à déterminer laquelle des étiquettes
'la procédure choisira .... c'est tout.
On N GoSub sub1, toto, tata
Next
sub1:
Return
toto:
Return
'tous les 6 jusqu'à
tata:
Return

End Sub







"JPMonnier" a écrit dans le message de news:
e$
Bonjour,
J'ai un soucis avec mon For Each !!

For Each N In clad.[m4:m100]
On N GoSub 1, 7, 13, 19, 25, 31, 37, 43, 49, 55, 61, 67, 73, 79,
85,
91, 97, 103, 109, 115, 127, 127, 133, 139
End If
Next
1:
action : Return
7:
action : Return
'tous les 6 jusqu'à
139:
action : Return

Cette Sub ne fonctionne que pour les valeurs 1, 7, 13, 19,

Comment faire le rapprochement avec la value de N et les branchements ?
Je remarque que les branchements fonctionnent avec des chiffres inférieurs
à
24 (nombre d'étiquettes)
mais ne correspondent pas à la vraie valeur
Soit : si N = 7, il branche sur l'étiquette en position 7 (Qui correspond
en
réalité au chiffre 37)
Ca plane sérieux !!
Merci d'avance pour vos lumières
JP

--
Cordialement





Avatar
MichDenis
Tu voudrais quelque chose comme :
pour moi, ton explication n'est pas claire !

Si je n'ai pas compris, d'autres se chargeront de t'aider !

Selon la valeur de chacune des cellules, si elles appartiennet
à un sous-groupe, elle prend la couleur associée.

'----------------------------
Sub test()
Dim C As Range
For Each C In clad.Range("m4:m100")
Select Case C.Value
Case 1 To 6
C.Interior.ColorIndex = 3
Case 7 To 12
C.Interior.ColorIndex = 6
Case 13 To 18
C.Interior.ColorIndex = 12
Case 19 To 24
C.Interior.ColorIndex = 35
End Select
Next
End Sub
'----------------------------


"JPMonnier" a écrit dans le message de news:
%
Merci pour ta réponse
Ce que je souhaite réaliser est la coloration de cellules comportant des
chiftres de 1 à 139 ( incrémentés de 6) soit 24 possibilités

Ex : Si la valeur de la cellule est 133, N.interior.colorindex = xx

Je pourrais faire 24 IF mais je pensais résoudre le pb avc For Each Gosub
If n= 1 then ...
If n = 19 then ...
etc...
Merci encore
--
Cordialement


Merci encore
"MichDenis" a écrit dans le message de
news:%
A ) Il serait plus facile d'expliquer ce que tu tentes de faire...
il y a probablement une meilleure façon de coder ça !

B ) voici un exemple :

'-----------------------
Sub test()

'Pour chaque valeur de la plage
For Each N In clad.[m4:m100]
'Selon la valeur N, il choisit l'étiquette dans la ligne suivante
'Exemple si N =3 , il se rend à l'étiquette sub13 parce qu'il
'est le troisième élément de la liste des sub1, sub7, sub13
'Si la valeur N est plus grande que le nombre d'éléments de la liste
' rien ne passe, il continue sa boucle sur la cellue suivante

On N GoSub sub1, sub7, sub13
Next
sub1:
Return
sub7:
Return
sub13:
Return

End Sub
'-----------------------

J'aurais pu écrire la même chose comme ceci :

Sub fsdf1()
For Each N In Feuil1.[A4:A100]
'La valeur N sert à déterminer laquelle des étiquettes
'la procédure choisira .... c'est tout.
On N GoSub sub1, toto, tata
Next
sub1:
Return
toto:
Return
'tous les 6 jusqu'à
tata:
Return

End Sub







"JPMonnier" a écrit dans le message de news:
e$
Bonjour,
J'ai un soucis avec mon For Each !!

For Each N In clad.[m4:m100]
On N GoSub 1, 7, 13, 19, 25, 31, 37, 43, 49, 55, 61, 67, 73, 79,
85,
91, 97, 103, 109, 115, 127, 127, 133, 139
End If
Next
1:
action : Return
7:
action : Return
'tous les 6 jusqu'à
139:
action : Return

Cette Sub ne fonctionne que pour les valeurs 1, 7, 13, 19,

Comment faire le rapprochement avec la value de N et les branchements ?
Je remarque que les branchements fonctionnent avec des chiffres inférieurs
à
24 (nombre d'étiquettes)
mais ne correspondent pas à la vraie valeur
Soit : si N = 7, il branche sur l'étiquette en position 7 (Qui correspond
en
réalité au chiffre 37)
Ca plane sérieux !!
Merci d'avance pour vos lumières
JP

--
Cordialement





Avatar
Modeste
Bonsour® JPMonnier avec ferveur ;o))) vous nous disiez :

Merci pour ta réponse
Ce que je souhaite réaliser est la coloration de cellules comportant
des chiftres de 1 à 139 ( incrémentés de 6) soit 24 possibilités

Ex : Si la valeur de la cellule est 133, N.interior.colorindex = xx


Dim N As Range
For Each N In clad.[m4:m100]
N.Interior.ColorIndex= 1+int(N/6)
next

--
@+
;o)))

Avatar
JPMonnier
je voulais dire seules les valeurs
1,7,13,19,25,31,37,43,49,55,61,67,73,79,85,91,97,103,109,115,121,127,133,139
sont possibles Le select case me convient

Merci encore

--
Cordialement


"MichDenis" a écrit dans le message de
news:
Tu voudrais quelque chose comme :
pour moi, ton explication n'est pas claire !

Si je n'ai pas compris, d'autres se chargeront de t'aider !

Selon la valeur de chacune des cellules, si elles appartiennet
à un sous-groupe, elle prend la couleur associée.

'----------------------------
Sub test()
Dim C As Range
For Each C In clad.Range("m4:m100")
Select Case C.Value
Case 1 To 6
C.Interior.ColorIndex = 3
Case 7 To 12
C.Interior.ColorIndex = 6
Case 13 To 18
C.Interior.ColorIndex = 12
Case 19 To 24
C.Interior.ColorIndex = 35
End Select
Next
End Sub
'----------------------------


"JPMonnier" a écrit dans le message de news:
%
Merci pour ta réponse
Ce que je souhaite réaliser est la coloration de cellules comportant des
chiftres de 1 à 139 ( incrémentés de 6) soit 24 possibilités

Ex : Si la valeur de la cellule est 133, N.interior.colorindex = xx

Je pourrais faire 24 IF mais je pensais résoudre le pb avc For Each Gosub
If n= 1 then ...
If n = 19 then ...
etc...
Merci encore
--
Cordialement


Merci encore
"MichDenis" a écrit dans le message de
news:%
A ) Il serait plus facile d'expliquer ce que tu tentes de faire...
il y a probablement une meilleure façon de coder ça !

B ) voici un exemple :

'-----------------------
Sub test()

'Pour chaque valeur de la plage
For Each N In clad.[m4:m100]
'Selon la valeur N, il choisit l'étiquette dans la ligne suivante
'Exemple si N =3 , il se rend à l'étiquette sub13 parce qu'il
'est le troisième élément de la liste des sub1, sub7, sub13
'Si la valeur N est plus grande que le nombre d'éléments de la liste
' rien ne passe, il continue sa boucle sur la cellue suivante

On N GoSub sub1, sub7, sub13
Next
sub1:
Return
sub7:
Return
sub13:
Return

End Sub
'-----------------------

J'aurais pu écrire la même chose comme ceci :

Sub fsdf1()
For Each N In Feuil1.[A4:A100]
'La valeur N sert à déterminer laquelle des étiquettes
'la procédure choisira .... c'est tout.
On N GoSub sub1, toto, tata
Next
sub1:
Return
toto:
Return
'tous les 6 jusqu'à
tata:
Return

End Sub







"JPMonnier" a écrit dans le message de news:
e$
Bonjour,
J'ai un soucis avec mon For Each !!

For Each N In clad.[m4:m100]
On N GoSub 1, 7, 13, 19, 25, 31, 37, 43, 49, 55, 61, 67, 73, 79,
85,
91, 97, 103, 109, 115, 127, 127, 133, 139
End If
Next
1:
action : Return
7:
action : Return
'tous les 6 jusqu'à
139:
action : Return

Cette Sub ne fonctionne que pour les valeurs 1, 7, 13, 19,

Comment faire le rapprochement avec la value de N et les branchements ?
Je remarque que les branchements fonctionnent avec des chiffres
inférieurs
à
24 (nombre d'étiquettes)
mais ne correspondent pas à la vraie valeur
Soit : si N = 7, il branche sur l'étiquette en position 7 (Qui correspond
en
réalité au chiffre 37)
Ca plane sérieux !!
Merci d'avance pour vos lumières
JP

--
Cordialement









Avatar
JPMonnier
Merci beaucoup Modeste
Je crois qu'il n'y a pas mieux
merci aussi à MichelDenis

--
Cordialement

"Modeste" a écrit dans le message de
news:
Bonsour® JPMonnier avec ferveur ;o))) vous nous disiez :

Merci pour ta réponse
Ce que je souhaite réaliser est la coloration de cellules comportant
des chiftres de 1 à 139 ( incrémentés de 6) soit 24 possibilités

Ex : Si la valeur de la cellule est 133, N.interior.colorindex = xx


Dim N As Range
For Each N In clad.[m4:m100]
N.Interior.ColorIndex= 1+int(N/6)
next

--
@+
;o)))