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

créé une suite qui se répète

5 réponses
Avatar
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
--
Marc

5 réponses

Avatar
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

Avatar
Marc
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




Avatar
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






Avatar
Marc
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










Avatar
FxM
C'était avec plaisir dirait Bisounours ;o)

@+
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