bonjour et bonne année à tous
J'ai créé un classeur comportant 53 onglets (en fait 53 semaines de l'année)
et je voudrait en C1 obtenir un n° de cycle qui va de 1 à 12. cela donnerait
ceci: cycle 1/12 ect... en pouvant choisir qquand commence mon premier n° de
cycle.
j'espère que j'ai été suffisament clair (les bulles du jour d el'an !!!)
Merci d'avance
bonjour et bonne année à tous
J'ai créé un classeur comportant 53 onglets (en fait 53 semaines de l'année)
et je voudrait en C1 obtenir un n° de cycle qui va de 1 à 12. cela donnerait
ceci: cycle 1/12 ect... en pouvant choisir qquand commence mon premier n° de
cycle.
j'espère que j'ai été suffisament clair (les bulles du jour d el'an !!!)
Merci d'avance
bonjour et bonne année à tous
J'ai créé un classeur comportant 53 onglets (en fait 53 semaines de l'année)
et je voudrait en C1 obtenir un n° de cycle qui va de 1 à 12. cela donnerait
ceci: cycle 1/12 ect... en pouvant choisir qquand commence mon premier n° de
cycle.
j'espère que j'ai été suffisament clair (les bulles du jour d el'an !!!)
Merci d'avance
bonjour et bonne année à tous
J'ai créé un classeur comportant 53 onglets (en fait 53 semaines de l'année)
et je voudrait en C1 obtenir un n° de cycle qui va de 1 à 12. cela donnerait
ceci: cycle 1/12 ect... en pouvant choisir qquand commence mon premier n° de
cycle.
j'espère que j'ai été suffisament clair (les bulles du jour d el'an !!!)
Merci d'avance
Bonsoir,
A défaut d'infos précises, j'ai fait des suppositions honteuses : les
feuilles sont numérotées et le nom contient le numéro de semaine (ex:
feuil1 pour la semaine 1).
Cela m'amène à une solution sous forme d'une fonction perso (une parmi
d'autres). alt-F11, insertion | module, recopie ce qui suit :
'--- de là ... ---
Public Function cycle(depart)
'FxM MPFE 20050103
Application.Volatile
Dim feu As String, a As Integer, b As String
Dim maxi As Integer
'nombre maxi du cycle
maxi = 12
If depart > maxi Then cycle = "# erreur #": Exit Function
feu = Application.Caller.Worksheet.Name
For a = 1 To Len(feu)
b = ""
Select Case Asc(Mid(feu, a, 1))
Case 48 To 57
b = b & Mid(feu, a, 1)
End Select
Next a
cycle = "cycle " & ((CSng(b) + depart) Mod 12) - 1 & "/" & maxi
End Function
'--- jusque là ---
Usage :
=cycle(Feuil1!$b$2)
si la cellule B2 de la feuil1 contient le numéro du premier cycle en
feuille "feuil1" (voir suppositions).
Voili, voilà.
@+
FxM
bonjour et bonne année à tous
J'ai créé un classeur comportant 53 onglets (en fait 53 semaines de l'année)
et je voudrait en C1 obtenir un n° de cycle qui va de 1 à 12. cela donnerait
ceci: cycle 1/12 ect... en pouvant choisir qquand commence mon premier n° de
cycle.
j'espère que j'ai été suffisament clair (les bulles du jour d el'an !!!)
Merci d'avance
Bonsoir,
A défaut d'infos précises, j'ai fait des suppositions honteuses : les
feuilles sont numérotées et le nom contient le numéro de semaine (ex:
feuil1 pour la semaine 1).
Cela m'amène à une solution sous forme d'une fonction perso (une parmi
d'autres). alt-F11, insertion | module, recopie ce qui suit :
'--- de là ... ---
Public Function cycle(depart)
'FxM MPFE 20050103
Application.Volatile
Dim feu As String, a As Integer, b As String
Dim maxi As Integer
'nombre maxi du cycle
maxi = 12
If depart > maxi Then cycle = "# erreur #": Exit Function
feu = Application.Caller.Worksheet.Name
For a = 1 To Len(feu)
b = ""
Select Case Asc(Mid(feu, a, 1))
Case 48 To 57
b = b & Mid(feu, a, 1)
End Select
Next a
cycle = "cycle " & ((CSng(b) + depart) Mod 12) - 1 & "/" & maxi
End Function
'--- jusque là ---
Usage :
=cycle(Feuil1!$b$2)
si la cellule B2 de la feuil1 contient le numéro du premier cycle en
feuille "feuil1" (voir suppositions).
Voili, voilà.
@+
FxM
bonjour et bonne année à tous
J'ai créé un classeur comportant 53 onglets (en fait 53 semaines de l'année)
et je voudrait en C1 obtenir un n° de cycle qui va de 1 à 12. cela donnerait
ceci: cycle 1/12 ect... en pouvant choisir qquand commence mon premier n° de
cycle.
j'espère que j'ai été suffisament clair (les bulles du jour d el'an !!!)
Merci d'avance
Bonsoir,
A défaut d'infos précises, j'ai fait des suppositions honteuses : les
feuilles sont numérotées et le nom contient le numéro de semaine (ex:
feuil1 pour la semaine 1).
Cela m'amène à une solution sous forme d'une fonction perso (une parmi
d'autres). alt-F11, insertion | module, recopie ce qui suit :
'--- de là ... ---
Public Function cycle(depart)
'FxM MPFE 20050103
Application.Volatile
Dim feu As String, a As Integer, b As String
Dim maxi As Integer
'nombre maxi du cycle
maxi = 12
If depart > maxi Then cycle = "# erreur #": Exit Function
feu = Application.Caller.Worksheet.Name
For a = 1 To Len(feu)
b = ""
Select Case Asc(Mid(feu, a, 1))
Case 48 To 57
b = b & Mid(feu, a, 1)
End Select
Next a
cycle = "cycle " & ((CSng(b) + depart) Mod 12) - 1 & "/" & maxi
End Function
'--- jusque là ---
Usage :
=cycle(Feuil1!$b$2)
si la cellule B2 de la feuil1 contient le numéro du premier cycle en
feuille "feuil1" (voir suppositions).
Voili, voilà.
@+
FxM
Public Function cycle(depart)
'FxM MPFE 20050104 Rév 1
Application.Volatile
Dim feu As String, a As Integer, b As String
Dim maxi As Integer
'nombre maxi du cycle
maxi = 12
If depart > maxi Then cycle = "# erreur #": Exit Function
feu = Application.Caller.Worksheet.Name
b=""
For a = 1 To Len(feu)
Select Case Asc(Mid(feu, a, 1))
Case 48 To 57
b = b & Mid(feu, a, 1)
End Select
Next a
cycle = "cycle " & ((Cint(b) + depart-2) Mod 12) + 1 & "/" & maxi
End Function
'--- jusque là ---
Bjr,
merci pour ta réponse mais comme je suis un néophyte, je n'arrive pas à
faire fonctionner ta macro et j'ai sans doute mal posé le pb ... je vais
essayé d'être plus clair: J'ai 53 onglets nommés semaine 1, semaine 2, ... Je
voudrai faire apparaitre en C1 sur chacun des onglets un n° de cycle allant
de 1 à 12 mais cycle 1 ne commençant pas nécessairement avec l'onglet de la
semaine 1. J'espère avoir été plus clair !!! merci en tout cas pour les
réponses
Marcbonjour et bonne année à tous
J'ai créé un classeur comportant 53 onglets (en fait 53 semaines de l'année)
et je voudrait en C1 obtenir un n° de cycle qui va de 1 à 12. cela donnerait
ceci: cycle 1/12 ect... en pouvant choisir qquand commence mon premier n° de
cycle.
j'espère que j'ai été suffisament clair (les bulles du jour d el'an !!!)
Merci d'avance
Bonsoir,
A défaut d'infos précises, j'ai fait des suppositions honteuses : les
feuilles sont numérotées et le nom contient le numéro de semaine (ex:
feuil1 pour la semaine 1).
Cela m'amène à une solution sous forme d'une fonction perso (une parmi
d'autres). alt-F11, insertion | module, recopie ce qui suit :
'--- de là ... ---
Public Function cycle(depart)
'FxM MPFE 20050103
Application.Volatile
Dim feu As String, a As Integer, b As String
Dim maxi As Integer
'nombre maxi du cycle
maxi = 12
If depart > maxi Then cycle = "# erreur #": Exit Function
feu = Application.Caller.Worksheet.Name
For a = 1 To Len(feu)
b = ""
Select Case Asc(Mid(feu, a, 1))
Case 48 To 57
b = b & Mid(feu, a, 1)
End Select
Next a
cycle = "cycle " & ((CSng(b) + depart) Mod 12) - 1 & "/" & maxi
End Function
'--- jusque là ---
Usage :
=cycle(Feuil1!$b$2)
si la cellule B2 de la feuil1 contient le numéro du premier cycle en
feuille "feuil1" (voir suppositions).
Voili, voilà.
@+
FxM
Public Function cycle(depart)
'FxM MPFE 20050104 Rév 1
Application.Volatile
Dim feu As String, a As Integer, b As String
Dim maxi As Integer
'nombre maxi du cycle
maxi = 12
If depart > maxi Then cycle = "# erreur #": Exit Function
feu = Application.Caller.Worksheet.Name
b=""
For a = 1 To Len(feu)
Select Case Asc(Mid(feu, a, 1))
Case 48 To 57
b = b & Mid(feu, a, 1)
End Select
Next a
cycle = "cycle " & ((Cint(b) + depart-2) Mod 12) + 1 & "/" & maxi
End Function
'--- jusque là ---
Bjr,
merci pour ta réponse mais comme je suis un néophyte, je n'arrive pas à
faire fonctionner ta macro et j'ai sans doute mal posé le pb ... je vais
essayé d'être plus clair: J'ai 53 onglets nommés semaine 1, semaine 2, ... Je
voudrai faire apparaitre en C1 sur chacun des onglets un n° de cycle allant
de 1 à 12 mais cycle 1 ne commençant pas nécessairement avec l'onglet de la
semaine 1. J'espère avoir été plus clair !!! merci en tout cas pour les
réponses
Marc
bonjour et bonne année à tous
J'ai créé un classeur comportant 53 onglets (en fait 53 semaines de l'année)
et je voudrait en C1 obtenir un n° de cycle qui va de 1 à 12. cela donnerait
ceci: cycle 1/12 ect... en pouvant choisir qquand commence mon premier n° de
cycle.
j'espère que j'ai été suffisament clair (les bulles du jour d el'an !!!)
Merci d'avance
Bonsoir,
A défaut d'infos précises, j'ai fait des suppositions honteuses : les
feuilles sont numérotées et le nom contient le numéro de semaine (ex:
feuil1 pour la semaine 1).
Cela m'amène à une solution sous forme d'une fonction perso (une parmi
d'autres). alt-F11, insertion | module, recopie ce qui suit :
'--- de là ... ---
Public Function cycle(depart)
'FxM MPFE 20050103
Application.Volatile
Dim feu As String, a As Integer, b As String
Dim maxi As Integer
'nombre maxi du cycle
maxi = 12
If depart > maxi Then cycle = "# erreur #": Exit Function
feu = Application.Caller.Worksheet.Name
For a = 1 To Len(feu)
b = ""
Select Case Asc(Mid(feu, a, 1))
Case 48 To 57
b = b & Mid(feu, a, 1)
End Select
Next a
cycle = "cycle " & ((CSng(b) + depart) Mod 12) - 1 & "/" & maxi
End Function
'--- jusque là ---
Usage :
=cycle(Feuil1!$b$2)
si la cellule B2 de la feuil1 contient le numéro du premier cycle en
feuille "feuil1" (voir suppositions).
Voili, voilà.
@+
FxM
Public Function cycle(depart)
'FxM MPFE 20050104 Rév 1
Application.Volatile
Dim feu As String, a As Integer, b As String
Dim maxi As Integer
'nombre maxi du cycle
maxi = 12
If depart > maxi Then cycle = "# erreur #": Exit Function
feu = Application.Caller.Worksheet.Name
b=""
For a = 1 To Len(feu)
Select Case Asc(Mid(feu, a, 1))
Case 48 To 57
b = b & Mid(feu, a, 1)
End Select
Next a
cycle = "cycle " & ((Cint(b) + depart-2) Mod 12) + 1 & "/" & maxi
End Function
'--- jusque là ---
Bjr,
merci pour ta réponse mais comme je suis un néophyte, je n'arrive pas à
faire fonctionner ta macro et j'ai sans doute mal posé le pb ... je vais
essayé d'être plus clair: J'ai 53 onglets nommés semaine 1, semaine 2, ... Je
voudrai faire apparaitre en C1 sur chacun des onglets un n° de cycle allant
de 1 à 12 mais cycle 1 ne commençant pas nécessairement avec l'onglet de la
semaine 1. J'espère avoir été plus clair !!! merci en tout cas pour les
réponses
Marcbonjour et bonne année à tous
J'ai créé un classeur comportant 53 onglets (en fait 53 semaines de l'année)
et je voudrait en C1 obtenir un n° de cycle qui va de 1 à 12. cela donnerait
ceci: cycle 1/12 ect... en pouvant choisir qquand commence mon premier n° de
cycle.
j'espère que j'ai été suffisament clair (les bulles du jour d el'an !!!)
Merci d'avance
Bonsoir,
A défaut d'infos précises, j'ai fait des suppositions honteuses : les
feuilles sont numérotées et le nom contient le numéro de semaine (ex:
feuil1 pour la semaine 1).
Cela m'amène à une solution sous forme d'une fonction perso (une parmi
d'autres). alt-F11, insertion | module, recopie ce qui suit :
'--- de là ... ---
Public Function cycle(depart)
'FxM MPFE 20050103
Application.Volatile
Dim feu As String, a As Integer, b As String
Dim maxi As Integer
'nombre maxi du cycle
maxi = 12
If depart > maxi Then cycle = "# erreur #": Exit Function
feu = Application.Caller.Worksheet.Name
For a = 1 To Len(feu)
b = ""
Select Case Asc(Mid(feu, a, 1))
Case 48 To 57
b = b & Mid(feu, a, 1)
End Select
Next a
cycle = "cycle " & ((CSng(b) + depart) Mod 12) - 1 & "/" & maxi
End Function
'--- jusque là ---
Usage :
=cycle(Feuil1!$b$2)
si la cellule B2 de la feuil1 contient le numéro du premier cycle en
feuille "feuil1" (voir suppositions).
Voili, voilà.
@+
FxM
Bonjour,
Un exemple là :
http://cjoint.com/?bej1QbVEBk
incluant deux corrections
- la formule final (mod...)
- la position de b=""
@+
FxMPublic Function cycle(depart)
'FxM MPFE 20050104 Rév 1
Application.Volatile
Dim feu As String, a As Integer, b As String
Dim maxi As Integer
'nombre maxi du cycle
maxi = 12
If depart > maxi Then cycle = "# erreur #": Exit Function
feu = Application.Caller.Worksheet.Name
b=""
For a = 1 To Len(feu)
Select Case Asc(Mid(feu, a, 1))
Case 48 To 57
b = b & Mid(feu, a, 1)
End Select
Next a
cycle = "cycle " & ((Cint(b) + depart-2) Mod 12) + 1 & "/" & maxi
End Function
'--- jusque là ---Bjr,
merci pour ta réponse mais comme je suis un néophyte, je n'arrive pas à
faire fonctionner ta macro et j'ai sans doute mal posé le pb ... je vais
essayé d'être plus clair: J'ai 53 onglets nommés semaine 1, semaine 2, ... Je
voudrai faire apparaitre en C1 sur chacun des onglets un n° de cycle allant
de 1 à 12 mais cycle 1 ne commençant pas nécessairement avec l'onglet de la
semaine 1. J'espère avoir été plus clair !!! merci en tout cas pour les
réponses
Marcbonjour et bonne année à tous
J'ai créé un classeur comportant 53 onglets (en fait 53 semaines de l'année)
et je voudrait en C1 obtenir un n° de cycle qui va de 1 à 12. cela donnerait
ceci: cycle 1/12 ect... en pouvant choisir qquand commence mon premier n° de
cycle.
j'espère que j'ai été suffisament clair (les bulles du jour d el'an !!!)
Merci d'avance
Bonsoir,
A défaut d'infos précises, j'ai fait des suppositions honteuses : les
feuilles sont numérotées et le nom contient le numéro de semaine (ex:
feuil1 pour la semaine 1).
Cela m'amène à une solution sous forme d'une fonction perso (une parmi
d'autres). alt-F11, insertion | module, recopie ce qui suit :
'--- de là ... ---
Public Function cycle(depart)
'FxM MPFE 20050103
Application.Volatile
Dim feu As String, a As Integer, b As String
Dim maxi As Integer
'nombre maxi du cycle
maxi = 12
If depart > maxi Then cycle = "# erreur #": Exit Function
feu = Application.Caller.Worksheet.Name
For a = 1 To Len(feu)
b = ""
Select Case Asc(Mid(feu, a, 1))
Case 48 To 57
b = b & Mid(feu, a, 1)
End Select
Next a
cycle = "cycle " & ((CSng(b) + depart) Mod 12) - 1 & "/" & maxi
End Function
'--- jusque là ---
Usage :
=cycle(Feuil1!$b$2)
si la cellule B2 de la feuil1 contient le numéro du premier cycle en
feuille "feuil1" (voir suppositions).
Voili, voilà.
@+
FxM
Bonjour,
Un exemple là :
http://cjoint.com/?bej1QbVEBk
incluant deux corrections
- la formule final (mod...)
- la position de b=""
@+
FxM
Public Function cycle(depart)
'FxM MPFE 20050104 Rév 1
Application.Volatile
Dim feu As String, a As Integer, b As String
Dim maxi As Integer
'nombre maxi du cycle
maxi = 12
If depart > maxi Then cycle = "# erreur #": Exit Function
feu = Application.Caller.Worksheet.Name
b=""
For a = 1 To Len(feu)
Select Case Asc(Mid(feu, a, 1))
Case 48 To 57
b = b & Mid(feu, a, 1)
End Select
Next a
cycle = "cycle " & ((Cint(b) + depart-2) Mod 12) + 1 & "/" & maxi
End Function
'--- jusque là ---
Bjr,
merci pour ta réponse mais comme je suis un néophyte, je n'arrive pas à
faire fonctionner ta macro et j'ai sans doute mal posé le pb ... je vais
essayé d'être plus clair: J'ai 53 onglets nommés semaine 1, semaine 2, ... Je
voudrai faire apparaitre en C1 sur chacun des onglets un n° de cycle allant
de 1 à 12 mais cycle 1 ne commençant pas nécessairement avec l'onglet de la
semaine 1. J'espère avoir été plus clair !!! merci en tout cas pour les
réponses
Marc
bonjour et bonne année à tous
J'ai créé un classeur comportant 53 onglets (en fait 53 semaines de l'année)
et je voudrait en C1 obtenir un n° de cycle qui va de 1 à 12. cela donnerait
ceci: cycle 1/12 ect... en pouvant choisir qquand commence mon premier n° de
cycle.
j'espère que j'ai été suffisament clair (les bulles du jour d el'an !!!)
Merci d'avance
Bonsoir,
A défaut d'infos précises, j'ai fait des suppositions honteuses : les
feuilles sont numérotées et le nom contient le numéro de semaine (ex:
feuil1 pour la semaine 1).
Cela m'amène à une solution sous forme d'une fonction perso (une parmi
d'autres). alt-F11, insertion | module, recopie ce qui suit :
'--- de là ... ---
Public Function cycle(depart)
'FxM MPFE 20050103
Application.Volatile
Dim feu As String, a As Integer, b As String
Dim maxi As Integer
'nombre maxi du cycle
maxi = 12
If depart > maxi Then cycle = "# erreur #": Exit Function
feu = Application.Caller.Worksheet.Name
For a = 1 To Len(feu)
b = ""
Select Case Asc(Mid(feu, a, 1))
Case 48 To 57
b = b & Mid(feu, a, 1)
End Select
Next a
cycle = "cycle " & ((CSng(b) + depart) Mod 12) - 1 & "/" & maxi
End Function
'--- jusque là ---
Usage :
=cycle(Feuil1!$b$2)
si la cellule B2 de la feuil1 contient le numéro du premier cycle en
feuille "feuil1" (voir suppositions).
Voili, voilà.
@+
FxM
Bonjour,
Un exemple là :
http://cjoint.com/?bej1QbVEBk
incluant deux corrections
- la formule final (mod...)
- la position de b=""
@+
FxMPublic Function cycle(depart)
'FxM MPFE 20050104 Rév 1
Application.Volatile
Dim feu As String, a As Integer, b As String
Dim maxi As Integer
'nombre maxi du cycle
maxi = 12
If depart > maxi Then cycle = "# erreur #": Exit Function
feu = Application.Caller.Worksheet.Name
b=""
For a = 1 To Len(feu)
Select Case Asc(Mid(feu, a, 1))
Case 48 To 57
b = b & Mid(feu, a, 1)
End Select
Next a
cycle = "cycle " & ((Cint(b) + depart-2) Mod 12) + 1 & "/" & maxi
End Function
'--- jusque là ---Bjr,
merci pour ta réponse mais comme je suis un néophyte, je n'arrive pas à
faire fonctionner ta macro et j'ai sans doute mal posé le pb ... je vais
essayé d'être plus clair: J'ai 53 onglets nommés semaine 1, semaine 2, ... Je
voudrai faire apparaitre en C1 sur chacun des onglets un n° de cycle allant
de 1 à 12 mais cycle 1 ne commençant pas nécessairement avec l'onglet de la
semaine 1. J'espère avoir été plus clair !!! merci en tout cas pour les
réponses
Marcbonjour et bonne année à tous
J'ai créé un classeur comportant 53 onglets (en fait 53 semaines de l'année)
et je voudrait en C1 obtenir un n° de cycle qui va de 1 à 12. cela donnerait
ceci: cycle 1/12 ect... en pouvant choisir qquand commence mon premier n° de
cycle.
j'espère que j'ai été suffisament clair (les bulles du jour d el'an !!!)
Merci d'avance
Bonsoir,
A défaut d'infos précises, j'ai fait des suppositions honteuses : les
feuilles sont numérotées et le nom contient le numéro de semaine (ex:
feuil1 pour la semaine 1).
Cela m'amène à une solution sous forme d'une fonction perso (une parmi
d'autres). alt-F11, insertion | module, recopie ce qui suit :
'--- de là ... ---
Public Function cycle(depart)
'FxM MPFE 20050103
Application.Volatile
Dim feu As String, a As Integer, b As String
Dim maxi As Integer
'nombre maxi du cycle
maxi = 12
If depart > maxi Then cycle = "# erreur #": Exit Function
feu = Application.Caller.Worksheet.Name
For a = 1 To Len(feu)
b = ""
Select Case Asc(Mid(feu, a, 1))
Case 48 To 57
b = b & Mid(feu, a, 1)
End Select
Next a
cycle = "cycle " & ((CSng(b) + depart) Mod 12) - 1 & "/" & maxi
End Function
'--- jusque là ---
Usage :
=cycle(Feuil1!$b$2)
si la cellule B2 de la feuil1 contient le numéro du premier cycle en
feuille "feuil1" (voir suppositions).
Voili, voilà.
@+
FxM
C génial merci bcp et bonne année
MarcBonjour,
Un exemple là :
http://cjoint.com/?bej1QbVEBk
incluant deux corrections
- la formule final (mod...)
- la position de b=""
@+
FxMPublic Function cycle(depart)
'FxM MPFE 20050104 Rév 1
Application.Volatile
Dim feu As String, a As Integer, b As String
Dim maxi As Integer
'nombre maxi du cycle
maxi = 12
If depart > maxi Then cycle = "# erreur #": Exit Function
feu = Application.Caller.Worksheet.Name
b=""
For a = 1 To Len(feu)
Select Case Asc(Mid(feu, a, 1))
Case 48 To 57
b = b & Mid(feu, a, 1)
End Select
Next a
cycle = "cycle " & ((Cint(b) + depart-2) Mod 12) + 1 & "/" & maxi
End Function
'--- jusque là ---Bjr,
merci pour ta réponse mais comme je suis un néophyte, je n'arrive pas à
faire fonctionner ta macro et j'ai sans doute mal posé le pb ... je vais
essayé d'être plus clair: J'ai 53 onglets nommés semaine 1, semaine 2, ... Je
voudrai faire apparaitre en C1 sur chacun des onglets un n° de cycle allant
de 1 à 12 mais cycle 1 ne commençant pas nécessairement avec l'onglet de la
semaine 1. J'espère avoir été plus clair !!! merci en tout cas pour les
réponses
Marcbonjour et bonne année à tous
J'ai créé un classeur comportant 53 onglets (en fait 53 semaines de l'année)
et je voudrait en C1 obtenir un n° de cycle qui va de 1 à 12. cela donnerait
ceci: cycle 1/12 ect... en pouvant choisir qquand commence mon premier n° de
cycle.
j'espère que j'ai été suffisament clair (les bulles du jour d el'an !!!)
Merci d'avance
Bonsoir,
A défaut d'infos précises, j'ai fait des suppositions honteuses : les
feuilles sont numérotées et le nom contient le numéro de semaine (ex:
feuil1 pour la semaine 1).
Cela m'amène à une solution sous forme d'une fonction perso (une parmi
d'autres). alt-F11, insertion | module, recopie ce qui suit :
'--- de là ... ---
Public Function cycle(depart)
'FxM MPFE 20050103
Application.Volatile
Dim feu As String, a As Integer, b As String
Dim maxi As Integer
'nombre maxi du cycle
maxi = 12
If depart > maxi Then cycle = "# erreur #": Exit Function
feu = Application.Caller.Worksheet.Name
For a = 1 To Len(feu)
b = ""
Select Case Asc(Mid(feu, a, 1))
Case 48 To 57
b = b & Mid(feu, a, 1)
End Select
Next a
cycle = "cycle " & ((CSng(b) + depart) Mod 12) - 1 & "/" & maxi
End Function
'--- jusque là ---
Usage :
=cycle(Feuil1!$b$2)
si la cellule B2 de la feuil1 contient le numéro du premier cycle en
feuille "feuil1" (voir suppositions).
Voili, voilà.
@+
FxM
C génial merci bcp et bonne année
Marc
Bonjour,
Un exemple là :
http://cjoint.com/?bej1QbVEBk
incluant deux corrections
- la formule final (mod...)
- la position de b=""
@+
FxM
Public Function cycle(depart)
'FxM MPFE 20050104 Rév 1
Application.Volatile
Dim feu As String, a As Integer, b As String
Dim maxi As Integer
'nombre maxi du cycle
maxi = 12
If depart > maxi Then cycle = "# erreur #": Exit Function
feu = Application.Caller.Worksheet.Name
b=""
For a = 1 To Len(feu)
Select Case Asc(Mid(feu, a, 1))
Case 48 To 57
b = b & Mid(feu, a, 1)
End Select
Next a
cycle = "cycle " & ((Cint(b) + depart-2) Mod 12) + 1 & "/" & maxi
End Function
'--- jusque là ---
Bjr,
merci pour ta réponse mais comme je suis un néophyte, je n'arrive pas à
faire fonctionner ta macro et j'ai sans doute mal posé le pb ... je vais
essayé d'être plus clair: J'ai 53 onglets nommés semaine 1, semaine 2, ... Je
voudrai faire apparaitre en C1 sur chacun des onglets un n° de cycle allant
de 1 à 12 mais cycle 1 ne commençant pas nécessairement avec l'onglet de la
semaine 1. J'espère avoir été plus clair !!! merci en tout cas pour les
réponses
Marc
bonjour et bonne année à tous
J'ai créé un classeur comportant 53 onglets (en fait 53 semaines de l'année)
et je voudrait en C1 obtenir un n° de cycle qui va de 1 à 12. cela donnerait
ceci: cycle 1/12 ect... en pouvant choisir qquand commence mon premier n° de
cycle.
j'espère que j'ai été suffisament clair (les bulles du jour d el'an !!!)
Merci d'avance
Bonsoir,
A défaut d'infos précises, j'ai fait des suppositions honteuses : les
feuilles sont numérotées et le nom contient le numéro de semaine (ex:
feuil1 pour la semaine 1).
Cela m'amène à une solution sous forme d'une fonction perso (une parmi
d'autres). alt-F11, insertion | module, recopie ce qui suit :
'--- de là ... ---
Public Function cycle(depart)
'FxM MPFE 20050103
Application.Volatile
Dim feu As String, a As Integer, b As String
Dim maxi As Integer
'nombre maxi du cycle
maxi = 12
If depart > maxi Then cycle = "# erreur #": Exit Function
feu = Application.Caller.Worksheet.Name
For a = 1 To Len(feu)
b = ""
Select Case Asc(Mid(feu, a, 1))
Case 48 To 57
b = b & Mid(feu, a, 1)
End Select
Next a
cycle = "cycle " & ((CSng(b) + depart) Mod 12) - 1 & "/" & maxi
End Function
'--- jusque là ---
Usage :
=cycle(Feuil1!$b$2)
si la cellule B2 de la feuil1 contient le numéro du premier cycle en
feuille "feuil1" (voir suppositions).
Voili, voilà.
@+
FxM
C génial merci bcp et bonne année
MarcBonjour,
Un exemple là :
http://cjoint.com/?bej1QbVEBk
incluant deux corrections
- la formule final (mod...)
- la position de b=""
@+
FxMPublic Function cycle(depart)
'FxM MPFE 20050104 Rév 1
Application.Volatile
Dim feu As String, a As Integer, b As String
Dim maxi As Integer
'nombre maxi du cycle
maxi = 12
If depart > maxi Then cycle = "# erreur #": Exit Function
feu = Application.Caller.Worksheet.Name
b=""
For a = 1 To Len(feu)
Select Case Asc(Mid(feu, a, 1))
Case 48 To 57
b = b & Mid(feu, a, 1)
End Select
Next a
cycle = "cycle " & ((Cint(b) + depart-2) Mod 12) + 1 & "/" & maxi
End Function
'--- jusque là ---Bjr,
merci pour ta réponse mais comme je suis un néophyte, je n'arrive pas à
faire fonctionner ta macro et j'ai sans doute mal posé le pb ... je vais
essayé d'être plus clair: J'ai 53 onglets nommés semaine 1, semaine 2, ... Je
voudrai faire apparaitre en C1 sur chacun des onglets un n° de cycle allant
de 1 à 12 mais cycle 1 ne commençant pas nécessairement avec l'onglet de la
semaine 1. J'espère avoir été plus clair !!! merci en tout cas pour les
réponses
Marcbonjour et bonne année à tous
J'ai créé un classeur comportant 53 onglets (en fait 53 semaines de l'année)
et je voudrait en C1 obtenir un n° de cycle qui va de 1 à 12. cela donnerait
ceci: cycle 1/12 ect... en pouvant choisir qquand commence mon premier n° de
cycle.
j'espère que j'ai été suffisament clair (les bulles du jour d el'an !!!)
Merci d'avance
Bonsoir,
A défaut d'infos précises, j'ai fait des suppositions honteuses : les
feuilles sont numérotées et le nom contient le numéro de semaine (ex:
feuil1 pour la semaine 1).
Cela m'amène à une solution sous forme d'une fonction perso (une parmi
d'autres). alt-F11, insertion | module, recopie ce qui suit :
'--- de là ... ---
Public Function cycle(depart)
'FxM MPFE 20050103
Application.Volatile
Dim feu As String, a As Integer, b As String
Dim maxi As Integer
'nombre maxi du cycle
maxi = 12
If depart > maxi Then cycle = "# erreur #": Exit Function
feu = Application.Caller.Worksheet.Name
For a = 1 To Len(feu)
b = ""
Select Case Asc(Mid(feu, a, 1))
Case 48 To 57
b = b & Mid(feu, a, 1)
End Select
Next a
cycle = "cycle " & ((CSng(b) + depart) Mod 12) - 1 & "/" & maxi
End Function
'--- jusque là ---
Usage :
=cycle(Feuil1!$b$2)
si la cellule B2 de la feuil1 contient le numéro du premier cycle en
feuille "feuil1" (voir suppositions).
Voili, voilà.
@+
FxM