OVH Cloud OVH Cloud

Nom d'onglets

16 réponses
Avatar
David T.
Re bonjour à tous

Est'il possible, après clic sur un bouton, de créé une feuille à la suite
des autres et que cette nouvelle feuille est comme nom une suite logique des
autres. (Attention aux accents). Ceci sans définir une liste dans une
feuille.

Feuilles existantes : NOVEMBRE 2003, DÉCEMBRE 2003, JANVIER 2004
Clic sur le bouton, création de la feuille : FÉVRIER 2004

Déjà vu quelque part, mais ou ?

Merci de cette information.

Saluation à tous
--
direction-ternoise@(supprimerceci)wanadoo.fr

10 réponses

1 2
Avatar
Alain CROS
Bonjour.

Private Sub CommandButton1_Click()
Dim Ws As Worksheet
Set Ws = Worksheets.Add(, Worksheets(Worksheets.Count))
Ws.Name = UCase(Format(CDate(Worksheets(Ws.Index - 1&).Name) + 31&, "mmmm yyyy"))
End Sub

Alain CROS.

"David T." <direction-ternoise@(enlever)wanadoo.fr> a écrit dans le message de news: uLgApRt$
Re bonjour à tous

Est'il possible, après clic sur un bouton, de créé une feuille à la suite
des autres et que cette nouvelle feuille est comme nom une suite logique des
autres. (Attention aux accents). Ceci sans définir une liste dans une
feuille.

Feuilles existantes : NOVEMBRE 2003, DÉCEMBRE 2003, JANVIER 2004
Clic sur le bouton, création de la feuille : FÉVRIER 2004

Déjà vu quelque part, mais ou ?

Merci de cette information.

Saluation à tous
--
direction-ternoise@(supprimerceci)wanadoo.fr




Avatar
Nicolas B.
Salut,

Macro à associer à ton bouton d'ajout de feuille :

Sub Feuille()
d = CDate(Sheets(Sheets.Count).Name)
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = UCase(Format(DateSerial(Year(d), Month(d) + 1, 1), "mmmm
yyyy"))
End Sub


A+
--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


Re bonjour à tous

Est'il possible, après clic sur un bouton, de créé une feuille à la
suite des autres et que cette nouvelle feuille est comme nom une
suite logique des autres. (Attention aux accents). Ceci sans définir
une liste dans une feuille.

Feuilles existantes : NOVEMBRE 2003, DÉCEMBRE 2003, JANVIER 2004
Clic sur le bouton, création de la feuille : FÉVRIER 2004

Déjà vu quelque part, mais ou ?

Merci de cette information.

Saluation à tous
--
direction-ternoise@(supprimerceci)wanadoo.fr


Avatar
David T.
Bonjour Alain et Nicolas

Erreur pour vous deux.

Proc d'alain : Erreur 9 : L'indice n'appartient pas à la sélection. Bloque à
:
Ws.Name = UCase(Format(CDate(Worksheets(Ws.Index - 1&).Name) + 31&, "mmmm
yyyy"))


Proc de nicolas : Erreur 13 : Incompatibilité de type. Bloque à :
d = CDate(Sheets(Sheets.Count).Name)

Bonne course :-))) Que le meilleur gagne !!!

Encore merci

"David T." <direction-ternoise@(enlever)wanadoo.fr> a écrit dans le message
de news:uLgApRt$
Re bonjour à tous

Est'il possible, après clic sur un bouton, de créé une feuille à la suite
des autres et que cette nouvelle feuille est comme nom une suite logique
des

autres. (Attention aux accents). Ceci sans définir une liste dans une
feuille.

Feuilles existantes : NOVEMBRE 2003, DÉCEMBRE 2003, JANVIER 2004
Clic sur le bouton, création de la feuille : FÉVRIER 2004

Déjà vu quelque part, mais ou ?

Merci de cette information.

Saluation à tous
--
direction-ternoise@(supprimerceci)wanadoo.fr




Avatar
Nicolas B.
Avant d'exécuter la procédure pour la première fois, il faut veiller à ce
que le nom de la dernière feuille du classeur soit bien du texte de la forme
"JANVIER 2004" (un nom de mois et une année séparés par une espace).


A+
--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


Bonjour Alain et Nicolas

Erreur pour vous deux.

Proc d'alain : Erreur 9 : L'indice n'appartient pas à la sélection.
Bloque à

Ws.Name = UCase(Format(CDate(Worksheets(Ws.Index - 1&).Name) + 31&,

"mmmm yyyy"))


Proc de nicolas : Erreur 13 : Incompatibilité de type. Bloque à :
d = CDate(Sheets(Sheets.Count).Name)

Bonne course :-))) Que le meilleur gagne !!!

Encore merci

"David T." <direction-ternoise@(enlever)wanadoo.fr> a écrit dans le
message de news:uLgApRt$
Re bonjour à tous

Est'il possible, après clic sur un bouton, de créé une feuille à la
suite des autres et que cette nouvelle feuille est comme nom une
suite logique des autres. (Attention aux accents). Ceci sans définir
une liste dans une feuille.

Feuilles existantes : NOVEMBRE 2003, DÉCEMBRE 2003, JANVIER 2004
Clic sur le bouton, création de la feuille : FÉVRIER 2004

Déjà vu quelque part, mais ou ?

Merci de cette information.

Saluation à tous
--
direction-ternoise@(supprimerceci)wanadoo.fr




Avatar
Philippe.R
Bonsoir David,

Voici une adaptation de celle d'Alain, qui règle le problème posé par l'absence de premier onglet
conforme :

Private Sub CommandButton1_Click()
Dim Ws As Worksheet, Err As Label
On Error GoTo Err
Set Ws = Worksheets.Add(, Worksheets(Worksheets.Count))
Ws.Name = UCase(Format(CDate(Worksheets(Ws.Index - 1&).Name) + 31&, "mmmm yyyy"))
Exit Sub
Err:
Ws.Name = UCase(Format(Date, "mmmm yyyy"))
End Sub

PS : je ne fais pas la course ;o))
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"David T." <direction-ternoise@(enlever)wanadoo.fr> a écrit dans le message de
news:O9lbNpu$
Bonjour Alain et Nicolas

Erreur pour vous deux.

Proc d'alain : Erreur 9 : L'indice n'appartient pas à la sélection. Bloque à
:
Ws.Name = UCase(Format(CDate(Worksheets(Ws.Index - 1&).Name) + 31&, "mmmm
yyyy"))


Proc de nicolas : Erreur 13 : Incompatibilité de type. Bloque à :
d = CDate(Sheets(Sheets.Count).Name)

Bonne course :-))) Que le meilleur gagne !!!

Encore merci

"David T." <direction-ternoise@(enlever)wanadoo.fr> a écrit dans le message
de news:uLgApRt$
Re bonjour à tous

Est'il possible, après clic sur un bouton, de créé une feuille à la suite
des autres et que cette nouvelle feuille est comme nom une suite logique
des

autres. (Attention aux accents). Ceci sans définir une liste dans une
feuille.

Feuilles existantes : NOVEMBRE 2003, DÉCEMBRE 2003, JANVIER 2004
Clic sur le bouton, création de la feuille : FÉVRIER 2004

Déjà vu quelque part, mais ou ?

Merci de cette information.

Saluation à tous
--
direction-ternoise@(supprimerceci)wanadoo.fr








Avatar
claudy
Bonsoir à tous....
comment adapter la macro, pour recopier, avec ses formules et le reste, une
première feuille(janvier 2004)?
Merci d'avance, Claudy

"Philippe.R" a écrit dans le message de
news:%23KNU7xu$
Bonsoir David,

Voici une adaptation de celle d'Alain, qui règle le problème posé par
l'absence de premier onglet

conforme :

Private Sub CommandButton1_Click()
Dim Ws As Worksheet, Err As Label
On Error GoTo Err
Set Ws = Worksheets.Add(, Worksheets(Worksheets.Count))
Ws.Name = UCase(Format(CDate(Worksheets(Ws.Index - 1&).Name) + 31&,
"mmmm yyyy"))

Exit Sub
Err:
Ws.Name = UCase(Format(Date, "mmmm yyyy"))
End Sub

PS : je ne fais pas la course ;o))
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"David T." <direction-ternoise@(enlever)wanadoo.fr> a écrit dans le
message de

news:O9lbNpu$
Bonjour Alain et Nicolas

Erreur pour vous deux.

Proc d'alain : Erreur 9 : L'indice n'appartient pas à la sélection.
Bloque à


:
Ws.Name = UCase(Format(CDate(Worksheets(Ws.Index - 1&).Name) + 31&,
"mmmm


yyyy"))


Proc de nicolas : Erreur 13 : Incompatibilité de type. Bloque à :
d = CDate(Sheets(Sheets.Count).Name)

Bonne course :-))) Que le meilleur gagne !!!

Encore merci

"David T." <direction-ternoise@(enlever)wanadoo.fr> a écrit dans le
message


de news:uLgApRt$
Re bonjour à tous

Est'il possible, après clic sur un bouton, de créé une feuille à la
suite



des autres et que cette nouvelle feuille est comme nom une suite
logique



des
autres. (Attention aux accents). Ceci sans définir une liste dans une
feuille.

Feuilles existantes : NOVEMBRE 2003, DÉCEMBRE 2003, JANVIER 2004
Clic sur le bouton, création de la feuille : FÉVRIER 2004

Déjà vu quelque part, mais ou ?

Merci de cette information.

Saluation à tous
--
direction-ternoise@(supprimerceci)wanadoo.fr












Avatar
David T.
Mon dernier onglet est exactement sous cette forme "JANVIER 2004"

Je vais essayer la proc de Philippe, et je reviens sous son fil.

Merci de ton aide
Salutations

"Nicolas B." a écrit dans le message de
news:uX2f0wu$
Avant d'exécuter la procédure pour la première fois, il faut veiller à ce
que le nom de la dernière feuille du classeur soit bien du texte de la
forme

"JANVIER 2004" (un nom de mois et une année séparés par une espace).


A+
--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


Bonjour Alain et Nicolas

Erreur pour vous deux.

Proc d'alain : Erreur 9 : L'indice n'appartient pas à la sélection.
Bloque à

Ws.Name = UCase(Format(CDate(Worksheets(Ws.Index - 1&).Name) + 31&,

"mmmm yyyy"))


Proc de nicolas : Erreur 13 : Incompatibilité de type. Bloque à :
d = CDate(Sheets(Sheets.Count).Name)

Bonne course :-))) Que le meilleur gagne !!!

Encore merci

"David T." <direction-ternoise@(enlever)wanadoo.fr> a écrit dans le
message de news:uLgApRt$
Re bonjour à tous

Est'il possible, après clic sur un bouton, de créé une feuille à la
suite des autres et que cette nouvelle feuille est comme nom une
suite logique des autres. (Attention aux accents). Ceci sans définir
une liste dans une feuille.

Feuilles existantes : NOVEMBRE 2003, DÉCEMBRE 2003, JANVIER 2004
Clic sur le bouton, création de la feuille : FÉVRIER 2004

Déjà vu quelque part, mais ou ?

Merci de cette information.

Saluation à tous
--
direction-ternoise@(supprimerceci)wanadoo.fr








Avatar
David T.
Philippe

Merci pour ton aide mais quelque chose cloche.

Dernière feuille nomée "JANVIER 2004" je lance la proc, cela me crée bien la
feuille "FÉVRIER 2004"

Je relance la proc : "erreur d'execution1004", "Impossible de renomer une
feuille comme une autre feuille, une bibliothèque d'objet référencée ou un
classeur référencé par Visual Basic".
Cela bloque à Ws.Name = UCase(Format(Date, "mmmm yyyy"))

Je n'ai pas de feuille "FÉVRIER 2004" dans le classeur.


Si je renome la feuille en "FÉVRIER 2004" en "OCTOBRE 2004" et cela me crée
à nouveau "FÉVRIER 2004" puis bloque si j'en redemande une.

Encore merci

PS : l'info de Claudy m'interesse assez. Genre créer une copie de la feuille
"Modèle Mois" et la renomer avec ta proc.

"Philippe.R" a écrit dans le message de
news:%23KNU7xu$
Bonsoir David,

Voici une adaptation de celle d'Alain, qui règle le problème posé par
l'absence de premier onglet

conforme :

Private Sub CommandButton1_Click()
Dim Ws As Worksheet, Err As Label
On Error GoTo Err
Set Ws = Worksheets.Add(, Worksheets(Worksheets.Count))
Ws.Name = UCase(Format(CDate(Worksheets(Ws.Index - 1&).Name) + 31&,
"mmmm yyyy"))

Exit Sub
Err:
Ws.Name = UCase(Format(Date, "mmmm yyyy"))
End Sub

PS : je ne fais pas la course ;o))
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"David T." <direction-ternoise@(enlever)wanadoo.fr> a écrit dans le
message de

news:O9lbNpu$
Bonjour Alain et Nicolas

Erreur pour vous deux.

Proc d'alain : Erreur 9 : L'indice n'appartient pas à la sélection.
Bloque à


:
Ws.Name = UCase(Format(CDate(Worksheets(Ws.Index - 1&).Name) + 31&,
"mmmm


yyyy"))


Proc de nicolas : Erreur 13 : Incompatibilité de type. Bloque à :
d = CDate(Sheets(Sheets.Count).Name)

Bonne course :-))) Que le meilleur gagne !!!

Encore merci

"David T." <direction-ternoise@(enlever)wanadoo.fr> a écrit dans le
message


de news:uLgApRt$
Re bonjour à tous

Est'il possible, après clic sur un bouton, de créé une feuille à la
suite



des autres et que cette nouvelle feuille est comme nom une suite
logique



des
autres. (Attention aux accents). Ceci sans définir une liste dans une
feuille.

Feuilles existantes : NOVEMBRE 2003, DÉCEMBRE 2003, JANVIER 2004
Clic sur le bouton, création de la feuille : FÉVRIER 2004

Déjà vu quelque part, mais ou ?

Merci de cette information.

Saluation à tous
--
direction-ternoise@(supprimerceci)wanadoo.fr












Avatar
Philippe.R
Re David,
Curieux, chez moi ce code fonctionne sans souci depuis un module ordinaire.
Par ailleurs, essaies cette nouvelle version, qui en outre copie la feuille MODELE MOIS et la colle sur
la nouvelle feuille créée

Private Sub CommandButton1_Click()
'MPFE le 29/02/2004
Dim Ws As Worksheet, Err As Label
'copie les cellules de la feuille MODELE MOIS
Sheets("MODELE MOIS").Cells.Copy
On Error GoTo Err
'créé une nouvelle feuille après la dernière
Set Ws = Worksheets.Add(, Worksheets(Worksheets.Count))
'nomme la feuille créée à partir du nom de la précédente en y ajoutant un mois
Ws.Name = UCase(Format(CDate(Worksheets(Ws.Index - 1&).Name) + 31&, "mmmm yyyy"))
'colle la forme et les données de la feuille MODELE MOIS
Cells.Select
ActiveSheet.Paste
Application.CutCopyMode = False
Exit Sub
Err:
'créée une feuille JANVIER 2004 si le nom du dernier onglet
'ne se présente pas comme une date
Ws.Name = UCase(Format(DateSerial(2004, 1, 1), "mmmm yyyy"))
Cells.Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"David T." <direction-ternoise@(enlever)wanadoo.fr> a écrit dans le message de
news:OSlS1ew$
Philippe

Merci pour ton aide mais quelque chose cloche.

Dernière feuille nomée "JANVIER 2004" je lance la proc, cela me crée bien la
feuille "FÉVRIER 2004"

Je relance la proc : "erreur d'execution1004", "Impossible de renomer une
feuille comme une autre feuille, une bibliothèque d'objet référencée ou un
classeur référencé par Visual Basic".
Cela bloque à Ws.Name = UCase(Format(Date, "mmmm yyyy"))

Je n'ai pas de feuille "FÉVRIER 2004" dans le classeur.


Si je renome la feuille en "FÉVRIER 2004" en "OCTOBRE 2004" et cela me crée
à nouveau "FÉVRIER 2004" puis bloque si j'en redemande une.

Encore merci

PS : l'info de Claudy m'interesse assez. Genre créer une copie de la feuille
"Modèle Mois" et la renomer avec ta proc.

"Philippe.R" a écrit dans le message de
news:%23KNU7xu$
Bonsoir David,

Voici une adaptation de celle d'Alain, qui règle le problème posé par
l'absence de premier onglet

conforme :

Private Sub CommandButton1_Click()
Dim Ws As Worksheet, Err As Label
On Error GoTo Err
Set Ws = Worksheets.Add(, Worksheets(Worksheets.Count))
Ws.Name = UCase(Format(CDate(Worksheets(Ws.Index - 1&).Name) + 31&,
"mmmm yyyy"))

Exit Sub
Err:
Ws.Name = UCase(Format(Date, "mmmm yyyy"))
End Sub

PS : je ne fais pas la course ;o))
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"David T." <direction-ternoise@(enlever)wanadoo.fr> a écrit dans le
message de

news:O9lbNpu$
Bonjour Alain et Nicolas

Erreur pour vous deux.

Proc d'alain : Erreur 9 : L'indice n'appartient pas à la sélection.
Bloque à


:
Ws.Name = UCase(Format(CDate(Worksheets(Ws.Index - 1&).Name) + 31&,
"mmmm


yyyy"))


Proc de nicolas : Erreur 13 : Incompatibilité de type. Bloque à :
d = CDate(Sheets(Sheets.Count).Name)

Bonne course :-))) Que le meilleur gagne !!!

Encore merci

"David T." <direction-ternoise@(enlever)wanadoo.fr> a écrit dans le
message


de news:uLgApRt$
Re bonjour à tous

Est'il possible, après clic sur un bouton, de créé une feuille à la
suite



des autres et que cette nouvelle feuille est comme nom une suite
logique



des
autres. (Attention aux accents). Ceci sans définir une liste dans une
feuille.

Feuilles existantes : NOVEMBRE 2003, DÉCEMBRE 2003, JANVIER 2004
Clic sur le bouton, création de la feuille : FÉVRIER 2004

Déjà vu quelque part, mais ou ?

Merci de cette information.

Saluation à tous
--
direction-ternoise@(supprimerceci)wanadoo.fr
















Avatar
Alain CROS
Bonjour.

Ceci devrait le faire.

Private Sub CommandButton1_Click()
Dim Ws As Worksheet, Ladate As Date, TempDate As Date
On Error Resume Next
For Each Ws In Worksheets
TempDate = CDate(Ws.Name)
If TempDate > Ladate Then Ladate = TempDate
Next Ws
On Error GoTo 0
Set Ws = Worksheets.Add(, Worksheets(Worksheets.Count))
If Ladate = 0 Then Ladate = DateSerial(Year(Now), Month
(Now), 1&)
Ws.Name = UCase(Format(Ladate + 31&, "mmmm yyyy"))
End Sub

-----Message d'origine-----
Philippe

Merci pour ton aide mais quelque chose cloche.

Dernière feuille nomée "JANVIER 2004" je lance la proc,
cela me crée bien la

feuille "FÉVRIER 2004"

Je relance la proc : "erreur
d'execution1004", "Impossible de renomer une

feuille comme une autre feuille, une bibliothèque d'objet
référencée ou un

classeur référencé par Visual Basic".
Cela bloque à Ws.Name = UCase(Format(Date, "mmmm yyyy"))

Je n'ai pas de feuille "FÉVRIER 2004" dans le classeur.


Si je renome la feuille en "FÉVRIER 2004" en "OCTOBRE
2004" et cela me crée

à nouveau "FÉVRIER 2004" puis bloque si j'en redemande
une.


1 2