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

(pour Frédéric Sigonneau) Nommer des feuillets en fonction de dates choisies avec un calendrier

4 réponses
Avatar
C15
Bonjour Fréderic,

La procédure suivante que j'ai adaptée en fonction de ta réponse et de celle
de Loulou, fait en sorte que j'ai bien de nouveaux onglets numérotés par
exemple de 20 à 25, mais aussi une nouvelle série d'onglets appelés "Semaine
1(1)", Semaine 1(2)"... ces feuillets étant effectivement les copies du
feuillet "Semaine1" de mon modèle.
Comment corriger cette procédure pour ne faire la création et la copie des
onglets qu'en une seule manip ?


>>>>>
Public Sub NouvellesFeuilles()
Dim iDebut, iFin As Integer
iDebut = Range(" 'Liste des codes'!F25")
iFin = Range(" 'Liste des codes'!H25")


For i = iDebut To iFin

'tu ajoutes une nouvelle feuille
ActiveWorkbook.Sheets.Add ,
ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)

' la virgule après le Add est important car on insère après la feuille
ref
'on renomme la feuille qu'on vient de créer (la dernière dans l'index)
'on lui donne le numéro de la semaine
ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count).Name = i

Sheets.Add Type:=Application.TemplatesPath & "Maquette OGM2.xlt"

Next i

End Sub


>>>>>

Merci de ton aide

A+

C15

"Frédéric Sigonneau" <frederic.sigonneau@ouanadou.fr> a écrit dans le
message de news:uWtWs7YTEHA.2128@TK2MSFTNGP11.phx.gbl...
> Bonsoir,
>
> En supposant que le modèle voulu s'appelle MonModèle.xlt et qu'il ait été
> enregistré dans le dossier par défaut des modèles d'Excel, cette ligne de
code
> ajoute au classeur une feuille basée sur ce modèle :
>
> Sheets.Add Type:=Application.TemplatesPath & "MonModèle.xlt"
>
> (Excel 2002/2003, et sans doute 2000).
>
> FS
> ---
> Frédéric Sigonneau [MVP Excel - né un sans-culottide]
> Gestions de temps, VBA pour Excel :
> http://perso.wanadoo.fr/frederic.sigonneau
> Si votre question sur Excel est urgente, évitez ma bal !
>
> C15 a écrit :
> > Bonsoir Loulou Fox
> >
> > Merci de ta réponse qui marche bien
> > Question consécutive à cela comment faire pour que ces nouveaux
feuillets
> > soient d'un modèle prédéfini ?
> >
> > Merci de ton aide
> >
> > A+
> >
> > C15
> >
> >
> > "Loulou Fox" <loulou_at_hotmail.com> a écrit dans le message de
> > news:Ol38ZkKTEHA.2716@tk2msftngp13.phx.gbl...
> >
> >>C'est pas compliqué, on va faire un exemple :
> >>
> >>Tu fais une feuille "ref"
> >>tu met en A1 le n° de semaine de début
> >>tu met en A2 le n° de semaine de fin
> >>
> >>Tu crées ensuite la macro suivante
> >>
> >>Public Sub NouvellesFeuilles ()
> >> Dim iDebut, iFin as Integer
> >> iDebut=Rane("ref!A1")
> >> iFin=Rane("ref!A2")
> >>
> >> For i = iDebut to IFin
> >>
> >> 'tu ajoutes une nouvelle feuille
> >> ActiveWorkbook.Sheets.Add ,
> >>ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
> >> ' la virgule après le Add est important car on insère après la
feuille
> >>ref
> >> 'on renomme la feuille qu'on vient de créer (la dernière dans
l'index)
> >> 'on lui donne le numéro de la semaine
> >> ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count).Name = i
> >> Next i
> >>End Sub
> >>
> >>Tu fais un bouton sur la feuille associé avec la macro que tu viens de
> >
> > créer
> >
> >>et le tour est joué !!
> >>
> >>
> >>Loulou
> >>
> >>
> >>
> >>"C15" <MéfiezVousDesSpams@club-internet.fr> a écrit dans le message de
> >>news:40c3f722$0$306$7a628cd7@news.club-internet.fr...
> >>
> >>>Bonjour à tous et toutes,
> >>>
> >>>Après avoir insérer un calendrier dans une feuille, je voudrais
> >>> sélectionner le 1er jour des semaines d'un même mois,
> >>> récupérer les N° des semaines et les coller dans différentes
> >
> > cellules
> >
> >>>(fonction NO.semaine)
> >>> nommer mes feuillets "semaine 21", "semaine 23"...
> >>> ou mieux dénommer directement les feuillets avec les N° de
semaines.
> >>>
> >>>Merci de votre aide
> >>>
> >>>A+
> >>>
> >>>C15
> >>>
> >>>
> >>
> >>
> >
> >

4 réponses

Avatar
Frédéric Sigonneau
Bonsoir,

Ta question, pour moi, n'est pas claire.
Ta procédure fait, pour ce que j'en comprends, ce qui suit à chaque tour de boucle :

- ajout d'une feuille basé sur le modèle par défaut d'Excel
- cette feuille est renommée avec l'indice de la boucle
- ajout d'une deuxième feuille basée sur ton modèle "Maquette OGM2.xlt"

Cette deuxième feuille n'est pas renommée, ce qui explique tes Semaine 1(1) etc.
qui correspondent à la manière de faire habituelle d'Excel dans ce cas.

Que veux-tu faire ?

- ajouter une feuille et non deux ?
-> supprime l'instruction Add dont tu n'as pas besoin

- garder tes 2 feuilles et renommer la deuxième ?
-> ajoute une instruction après la création de la deuxième feuille comme :
ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count).Name = "Semaine " & i

- garder tes 2 feuilles mais les créer et le nommer en une seule instruction ?
-> modifie ton code comme ceci (non testé) :

'============ Public Sub NouvellesFeuilles()
Dim iDebut, iFin As Integer

iDebut = Range(" 'Liste des codes'!F25")
iFin = Range(" 'Liste des codes'!H25")

With ActiveWorkbook
For i = iDebut To iFin
'tu ajoutes une nouvelle feuille (modèle Excel)
.Sheets.Add(after:=.Sheets(.Sheets.Count)).Name = i
'(ton modèle)
.Sheets.Add(after:=.Sheets(.Sheets.Count), _
Type:=Application.TemplatesPath & "Maquette OGM2.xlt") _
.Name = "Semaine " & i
Next i
End With
End Sub
'=============
FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !

Bonjour Fréderic,

La procédure suivante que j'ai adaptée en fonction de ta réponse et de celle
de Loulou, fait en sorte que j'ai bien de nouveaux onglets numérotés par
exemple de 20 à 25, mais aussi une nouvelle série d'onglets appelés "Semaine
1(1)", Semaine 1(2)"... ces feuillets étant effectivement les copies du
feuillet "Semaine1" de mon modèle.
Comment corriger cette procédure pour ne faire la création et la copie des
onglets qu'en une seule manip ?



Public Sub NouvellesFeuilles()
Dim iDebut, iFin As Integer
iDebut = Range(" 'Liste des codes'!F25")
iFin = Range(" 'Liste des codes'!H25")


For i = iDebut To iFin

'tu ajoutes une nouvelle feuille
ActiveWorkbook.Sheets.Add ,
ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)

' la virgule après le Add est important car on insère après la feuille
ref
'on renomme la feuille qu'on vient de créer (la dernière dans l'index)
'on lui donne le numéro de la semaine
ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count).Name = i

Sheets.Add Type:=Application.TemplatesPath & "Maquette OGM2.xlt"

Next i

End Sub




Merci de ton aide

A+

C15

"Frédéric Sigonneau" a écrit dans le
message de news:

Bonsoir,

En supposant que le modèle voulu s'appelle MonModèle.xlt et qu'il ait été
enregistré dans le dossier par défaut des modèles d'Excel, cette ligne de


code

ajoute au classeur une feuille basée sur ce modèle :

Sheets.Add Type:=Application.TemplatesPath & "MonModèle.xlt"

(Excel 2002/2003, et sans doute 2000).

FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonsoir Loulou Fox

Merci de ta réponse qui marche bien
Question consécutive à cela comment faire pour que ces nouveaux



feuillets

soient d'un modèle prédéfini ?

Merci de ton aide

A+

C15


"Loulou Fox" <loulou_at_hotmail.com> a écrit dans le message de
news:


C'est pas compliqué, on va faire un exemple :

Tu fais une feuille "ref"
tu met en A1 le n° de semaine de début
tu met en A2 le n° de semaine de fin

Tu crées ensuite la macro suivante

Public Sub NouvellesFeuilles ()
Dim iDebut, iFin as Integer
iDebut=Rane("ref!A1")
iFin=Rane("ref!A2")

For i = iDebut to IFin

'tu ajoutes une nouvelle feuille
ActiveWorkbook.Sheets.Add ,
ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
' la virgule après le Add est important car on insère après la




feuille

ref
'on renomme la feuille qu'on vient de créer (la dernière dans




l'index)

'on lui donne le numéro de la semaine
ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count).Name = i
Next i
End Sub

Tu fais un bouton sur la feuille associé avec la macro que tu viens de


créer


et le tour est joué !!


Loulou



"C15" <Mé a écrit dans le message de
news:40c3f722$0$306$


Bonjour à tous et toutes,

Après avoir insérer un calendrier dans une feuille, je voudrais
sélectionner le 1er jour des semaines d'un même mois,
récupérer les N° des semaines et les coller dans différentes



cellules


(fonction NO.semaine)
nommer mes feuillets "semaine 21", "semaine 23"...
ou mieux dénommer directement les feuillets avec les N° de





semaines.

Merci de votre aide

A+

C15


















Avatar
Clément Marcotte
Bonjour,

À première vue et non testé.

Public Sub NouvellesFeuilles()
Dim iDebut, iFin As Integer
iDebut = Range(" 'Liste des codes'!F25")
iFin = Range(" 'Liste des codes'!H25")
For i = iDebut To iFin
Sheets.Add Type:=Application.TemplatesPath & "Maquette OGM2.xlt"
ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count).Name = i
Next i
End Sub




"C15" <Mé a écrit dans le message de
news:40cc9b70$0$307$
Bonjour Fréderic,

La procédure suivante que j'ai adaptée en fonction de ta réponse et
de celle

de Loulou, fait en sorte que j'ai bien de nouveaux onglets numérotés
par

exemple de 20 à 25, mais aussi une nouvelle série d'onglets appelés
"Semaine

1(1)", Semaine 1(2)"... ces feuillets étant effectivement les copies
du

feuillet "Semaine1" de mon modèle.
Comment corriger cette procédure pour ne faire la création et la
copie des

onglets qu'en une seule manip ?

















Merci de ton aide

A+

C15

"Frédéric Sigonneau" a écrit dans
le

message de news:
Bonsoir,

En supposant que le modèle voulu s'appelle MonModèle.xlt et qu'il
ait été


enregistré dans le dossier par défaut des modèles d'Excel, cette
ligne de


code
ajoute au classeur une feuille basée sur ce modèle :

Sheets.Add Type:=Application.TemplatesPath & "MonModèle.xlt"

(Excel 2002/2003, et sans doute 2000).

FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !

Bonsoir Loulou Fox

Merci de ta réponse qui marche bien
Question consécutive à cela comment faire pour que ces nouveaux
feuillets


soient d'un modèle prédéfini ?

Merci de ton aide

A+

C15


"Loulou Fox" <loulou_at_hotmail.com> a écrit dans le message de
news:

C'est pas compliqué, on va faire un exemple :

Tu fais une feuille "ref"
tu met en A1 le n° de semaine de début
tu met en A2 le n° de semaine de fin

Tu crées ensuite la macro suivante

Public Sub NouvellesFeuilles ()
Dim iDebut, iFin as Integer
iDebut=Rane("ref!A1")
iFin=Rane("ref!A2")

For i = iDebut to IFin

'tu ajoutes une nouvelle feuille
ActiveWorkbook.Sheets.Add ,
ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
' la virgule après le Add est important car on insère après
la




feuille
ref
'on renomme la feuille qu'on vient de créer (la dernière
dans




l'index)
'on lui donne le numéro de la semaine
ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count).Name = i
Next i
End Sub

Tu fais un bouton sur la feuille associé avec la macro que tu
viens de





créer

et le tour est joué !!


Loulou



"C15" <Mé a écrit dans le
message de




news:40c3f722$0$306$

Bonjour à tous et toutes,

Après avoir insérer un calendrier dans une feuille, je voudrais
sélectionner le 1er jour des semaines d'un même mois,
récupérer les N° des semaines et les coller dans
différentes






cellules

(fonction NO.semaine)
nommer mes feuillets "semaine 21", "semaine 23"...
ou mieux dénommer directement les feuillets avec les N° de
semaines.





Merci de votre aide

A+

C15




















Avatar
C15
Bonjour Frederic,

Excuses moi de n'avoir pas été assez clair.

Ce que je veux c'est créer autant de feuillets que de semaines prévues,
faits sur le modèle "Maquette OGM2.xlt" et dont le nom correspond au N° de
la semaine.

Voilà ce que j'ai fait en m'inspirant de vos réponses à tous :


Public Sub NouvellesFeuilles()












Dim iDebut, iFin As Integer
iDebut = Range(" 'Liste des codes'!F25")
iFin = Range(" 'Liste des codes'!H25")

With ActiveWorkbook
For i = iDebut To iFin

.Sheets.Add(after:=.Sheets(.Sheets.Count),
Type:=Application.TemplatesPath & "Maquette OGM2.xlt").Name = "Semaine " & i
Next i
End With

End Sub













Et cela marche !

Dans Excel aussi, il y a des Zidane ;-)))

Bonne journée

A+

C15

"Frédéric Sigonneau" a écrit dans le
message de news:%23$%
Bonsoir,

Ta question, pour moi, n'est pas claire.
Ta procédure fait, pour ce que j'en comprends, ce qui suit à chaque tour
de boucle :


- ajout d'une feuille basé sur le modèle par défaut d'Excel
- cette feuille est renommée avec l'indice de la boucle
- ajout d'une deuxième feuille basée sur ton modèle "Maquette OGM2.xlt"

Cette deuxième feuille n'est pas renommée, ce qui explique tes Semaine
1(1) etc.

qui correspondent à la manière de faire habituelle d'Excel dans ce cas.

Que veux-tu faire ?

- ajouter une feuille et non deux ?
-> supprime l'instruction Add dont tu n'as pas besoin

- garder tes 2 feuilles et renommer la deuxième ?
-> ajoute une instruction après la création de la deuxième feuille
comme :

ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count).Name = "Semaine " &
i


- garder tes 2 feuilles mais les créer et le nommer en une seule
instruction ?

-> modifie ton code comme ceci (non testé) :

'============ > Public Sub NouvellesFeuilles()
Dim iDebut, iFin As Integer

iDebut = Range(" 'Liste des codes'!F25")
iFin = Range(" 'Liste des codes'!H25")

With ActiveWorkbook
For i = iDebut To iFin
'tu ajoutes une nouvelle feuille (modèle Excel)
.Sheets.Add(after:=.Sheets(.Sheets.Count)).Name = i
'(ton modèle)
.Sheets.Add(after:=.Sheets(.Sheets.Count), _
Type:=Application.TemplatesPath & "Maquette OGM2.xlt") _
.Name = "Semaine " & i
Next i
End With
End Sub
'============= >
FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !

Bonjour Fréderic,

La procédure suivante que j'ai adaptée en fonction de ta réponse et de
celle


de Loulou, fait en sorte que j'ai bien de nouveaux onglets numérotés par
exemple de 20 à 25, mais aussi une nouvelle série d'onglets appelés
"Semaine


1(1)", Semaine 1(2)"... ces feuillets étant effectivement les copies du
feuillet "Semaine1" de mon modèle.
Comment corriger cette procédure pour ne faire la création et la copie
des


onglets qu'en une seule manip ?



Public Sub NouvellesFeuilles()
Dim iDebut, iFin As Integer
iDebut = Range(" 'Liste des codes'!F25")
iFin = Range(" 'Liste des codes'!H25")


For i = iDebut To iFin

'tu ajoutes une nouvelle feuille
ActiveWorkbook.Sheets.Add ,
ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)

' la virgule après le Add est important car on insère après la
feuille


ref
'on renomme la feuille qu'on vient de créer (la dernière dans
l'index)


'on lui donne le numéro de la semaine
ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count).Name = i

Sheets.Add Type:=Application.TemplatesPath & "Maquette OGM2.xlt"

Next i

End Sub




Merci de ton aide

A+

C15

"Frédéric Sigonneau" a écrit dans le
message de news:

Bonsoir,

En supposant que le modèle voulu s'appelle MonModèle.xlt et qu'il ait
été



enregistré dans le dossier par défaut des modèles d'Excel, cette ligne
de




code

ajoute au classeur une feuille basée sur ce modèle :

Sheets.Add Type:=Application.TemplatesPath & "MonModèle.xlt"

(Excel 2002/2003, et sans doute 2000).

FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonsoir Loulou Fox

Merci de ta réponse qui marche bien
Question consécutive à cela comment faire pour que ces nouveaux



feuillets

soient d'un modèle prédéfini ?

Merci de ton aide

A+

C15


"Loulou Fox" <loulou_at_hotmail.com> a écrit dans le message de
news:


C'est pas compliqué, on va faire un exemple :

Tu fais une feuille "ref"
tu met en A1 le n° de semaine de début
tu met en A2 le n° de semaine de fin

Tu crées ensuite la macro suivante

Public Sub NouvellesFeuilles ()
Dim iDebut, iFin as Integer
iDebut=Rane("ref!A1")
iFin=Rane("ref!A2")

For i = iDebut to IFin

'tu ajoutes une nouvelle feuille
ActiveWorkbook.Sheets.Add ,
ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
' la virgule après le Add est important car on insère après la




feuille

ref
'on renomme la feuille qu'on vient de créer (la dernière dans




l'index)

'on lui donne le numéro de la semaine
ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count).Name = i
Next i
End Sub

Tu fais un bouton sur la feuille associé avec la macro que tu viens de


créer


et le tour est joué !!


Loulou



"C15" <Mé a écrit dans le message de
news:40c3f722$0$306$


Bonjour à tous et toutes,

Après avoir insérer un calendrier dans une feuille, je voudrais
sélectionner le 1er jour des semaines d'un même mois,
récupérer les N° des semaines et les coller dans différentes



cellules


(fonction NO.semaine)
nommer mes feuillets "semaine 21", "semaine 23"...
ou mieux dénommer directement les feuillets avec les N° de





semaines.

Merci de votre aide

A+

C15


























Avatar
C15
Bonjour Clément,


Merci de ta réponse, mais elle ne correspond pas tout à fait à ce que je
cherchais (mal exprimé comme dit à juste raison par Frédéric).

A+

C15


"Clément Marcotte" a écrit dans le message
de news:
Bonjour,

À première vue et non testé.

Public Sub NouvellesFeuilles()
Dim iDebut, iFin As Integer
iDebut = Range(" 'Liste des codes'!F25")
iFin = Range(" 'Liste des codes'!H25")
For i = iDebut To iFin
Sheets.Add Type:=Application.TemplatesPath & "Maquette OGM2.xlt"
ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count).Name = i
Next i
End Sub




"C15" <Mé a écrit dans le message de
news:40cc9b70$0$307$
Bonjour Fréderic,

La procédure suivante que j'ai adaptée en fonction de ta réponse et
de celle

de Loulou, fait en sorte que j'ai bien de nouveaux onglets numérotés
par

exemple de 20 à 25, mais aussi une nouvelle série d'onglets appelés
"Semaine

1(1)", Semaine 1(2)"... ces feuillets étant effectivement les copies
du

feuillet "Semaine1" de mon modèle.
Comment corriger cette procédure pour ne faire la création et la
copie des

onglets qu'en une seule manip ?

















Merci de ton aide

A+

C15

"Frédéric Sigonneau" a écrit dans
le

message de news:
Bonsoir,

En supposant que le modèle voulu s'appelle MonModèle.xlt et qu'il
ait été


enregistré dans le dossier par défaut des modèles d'Excel, cette
ligne de


code
ajoute au classeur une feuille basée sur ce modèle :

Sheets.Add Type:=Application.TemplatesPath & "MonModèle.xlt"

(Excel 2002/2003, et sans doute 2000).

FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !

Bonsoir Loulou Fox

Merci de ta réponse qui marche bien
Question consécutive à cela comment faire pour que ces nouveaux
feuillets


soient d'un modèle prédéfini ?

Merci de ton aide

A+

C15


"Loulou Fox" <loulou_at_hotmail.com> a écrit dans le message de
news:

C'est pas compliqué, on va faire un exemple :

Tu fais une feuille "ref"
tu met en A1 le n° de semaine de début
tu met en A2 le n° de semaine de fin

Tu crées ensuite la macro suivante

Public Sub NouvellesFeuilles ()
Dim iDebut, iFin as Integer
iDebut=Rane("ref!A1")
iFin=Rane("ref!A2")

For i = iDebut to IFin

'tu ajoutes une nouvelle feuille
ActiveWorkbook.Sheets.Add ,
ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
' la virgule après le Add est important car on insère après
la




feuille
ref
'on renomme la feuille qu'on vient de créer (la dernière
dans




l'index)
'on lui donne le numéro de la semaine
ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count).Name = i
Next i
End Sub

Tu fais un bouton sur la feuille associé avec la macro que tu
viens de





créer

et le tour est joué !!


Loulou



"C15" <Mé a écrit dans le
message de




news:40c3f722$0$306$

Bonjour à tous et toutes,

Après avoir insérer un calendrier dans une feuille, je voudrais
sélectionner le 1er jour des semaines d'un même mois,
récupérer les N° des semaines et les coller dans
différentes






cellules

(fonction NO.semaine)
nommer mes feuillets "semaine 21", "semaine 23"...
ou mieux dénommer directement les feuillets avec les N° de
semaines.





Merci de votre aide

A+

C15