OVH Cloud OVH Cloud

Feuilles (Copier -renommer)

16 réponses
Avatar
Martin
Bonjour à tous et à toutes

Je cherche à faire une macro qui va faire ceci:
J'ai un fichier à une feuille (1ere semaine de janvier 2005)
J'aimerais pouvoir la copier 52 fois en renommant chaque feuille avec la
valeur de la cellule b4 Mais au format "jj mmm" (Ex "02 Janv")
Aussi, j'aimerais que pour chaque feuilles, la celulle B4 s'incrémente de
7jours (semaine suivante)

Je cherche depuis un moment mais je n'ai pas réussi.

Merci à l'avance pour votre aide

Bonne journée

Martin

10 réponses

1 2
Avatar
AV
Pour toi, la 1° semaine de janvier 2005 démarre quand ?
Le 1° janvier ou bien le lundi 03/01 ?

AV
Avatar
Martin
Bonjour Av

Ma première semaine débute le Dimanche 2 Janvier

Martin

"AV" a écrit dans le message de news:

Pour toi, la 1° semaine de janvier 2005 démarre quand ?
Le 1° janvier ou bien le lundi 03/01 ?

AV




Avatar
anomymousA
bonjour

Ensupposant que ta 1ere feuille porte le nom du 1er jour de la 1ere semaine
car je n'ai pas géré ça dasn la procédure, voilà un code qui marche.

For I = 1 To 51
Sheets.Add , after:=Sheets(I)
ActiveSheet.Range("B4") = Sheets(I).Range("B4") + 7
ActiveSheet.Name = Format(Range("B4").Text, "d-mmm")
Next


A+


Bonjour à tous et à toutes

Je cherche à faire une macro qui va faire ceci:
J'ai un fichier à une feuille (1ere semaine de janvier 2005)
J'aimerais pouvoir la copier 52 fois en renommant chaque feuille avec la
valeur de la cellule b4 Mais au format "jj mmm" (Ex "02 Janv")
Aussi, j'aimerais que pour chaque feuilles, la celulle B4 s'incrémente de
7jours (semaine suivante)

Je cherche depuis un moment mais je n'ai pas réussi.

Merci à l'avance pour votre aide

Bonne journée

Martin





Avatar
Gaspareau
Bonjour
Je me glisse dans la conversation car je suis intéressé
J'ai un peu le même projet sauf que moi je dois recopier la première feuille
au lieu
de simplement insérer une feuille

J'ai essayé avec Sheet.Copy, ça semble fonctionner mais c'Est d'une lenteur
.....
J'ai dû arrêter Excel car c'Est beaucoup trop long

Un truc pour accélérer ???

MErci


"anomymousA" a écrit dans le message
de news:
bonjour

Ensupposant que ta 1ere feuille porte le nom du 1er jour de la 1ere
semaine

car je n'ai pas géré ça dasn la procédure, voilà un code qui marche.

For I = 1 To 51
Sheets.Add , after:=Sheets(I)
ActiveSheet.Range("B4") = Sheets(I).Range("B4") + 7
ActiveSheet.Name = Format(Range("B4").Text, "d-mmm")
Next


A+


Bonjour à tous et à toutes

Je cherche à faire une macro qui va faire ceci:
J'ai un fichier à une feuille (1ere semaine de janvier 2005)
J'aimerais pouvoir la copier 52 fois en renommant chaque feuille avec la
valeur de la cellule b4 Mais au format "jj mmm" (Ex "02 Janv")
Aussi, j'aimerais que pour chaque feuilles, la celulle B4 s'incrémente
de


7jours (semaine suivante)

Je cherche depuis un moment mais je n'ai pas réussi.

Merci à l'avance pour votre aide

Bonne journée

Martin







Avatar
Martin
J'ai fait la même erreur car j'avais le même besoin
J'ai mis Sheet(I).Copy, je me trouve donc à copier la copie mais ca
fonctionne a merveille

Mais j'ai un autre problème, si je commence ma copie a partir de la feuille
2 (For I = 2 to 51)
Je veux que si j'avais une référence du style ='Feuil1'!B10, qu'elle
s'incrémente aussi qu'elle devienne 'Feuil2'!B10
Cette cellule est en B10

Merci à Anonymous pour son aide :)

Martin

"Gaspareau" a écrit dans le message de news:
#Od#
Bonjour
Je me glisse dans la conversation car je suis intéressé
J'ai un peu le même projet sauf que moi je dois recopier la première
feuille

au lieu
de simplement insérer une feuille

J'ai essayé avec Sheet.Copy, ça semble fonctionner mais c'Est d'une
lenteur

.....
J'ai dû arrêter Excel car c'Est beaucoup trop long

Un truc pour accélérer ???

MErci


"anomymousA" a écrit dans le
message

de news:
bonjour

Ensupposant que ta 1ere feuille porte le nom du 1er jour de la 1ere
semaine

car je n'ai pas géré ça dasn la procédure, voilà un code qui marche.

For I = 1 To 51
Sheets.Add , after:=Sheets(I)
ActiveSheet.Range("B4") = Sheets(I).Range("B4") + 7
ActiveSheet.Name = Format(Range("B4").Text, "d-mmm")
Next


A+


Bonjour à tous et à toutes

Je cherche à faire une macro qui va faire ceci:
J'ai un fichier à une feuille (1ere semaine de janvier 2005)
J'aimerais pouvoir la copier 52 fois en renommant chaque feuille avec
la



valeur de la cellule b4 Mais au format "jj mmm" (Ex "02 Janv")
Aussi, j'aimerais que pour chaque feuilles, la celulle B4 s'incrémente
de


7jours (semaine suivante)

Je cherche depuis un moment mais je n'ai pas réussi.

Merci à l'avance pour votre aide

Bonne journée

Martin











Avatar
anomymousA
bonjour,

je ne suis pas sur d'avoir bien compris, mais je te conseille plutot
sheets(I).cells.copy sheets(I+1).range("A1")

c'est très rapide et sans douleur

A+


Bonjour
Je me glisse dans la conversation car je suis intéressé
J'ai un peu le même projet sauf que moi je dois recopier la première feuille
au lieu
de simplement insérer une feuille

J'ai essayé avec Sheet.Copy, ça semble fonctionner mais c'Est d'une lenteur
......
J'ai dû arrêter Excel car c'Est beaucoup trop long

Un truc pour accélérer ???

MErci


"anomymousA" a écrit dans le message
de news:
bonjour

Ensupposant que ta 1ere feuille porte le nom du 1er jour de la 1ere
semaine

car je n'ai pas géré ça dasn la procédure, voilà un code qui marche.

For I = 1 To 51
Sheets.Add , after:=Sheets(I)
ActiveSheet.Range("B4") = Sheets(I).Range("B4") + 7
ActiveSheet.Name = Format(Range("B4").Text, "d-mmm")
Next


A+


Bonjour à tous et à toutes

Je cherche à faire une macro qui va faire ceci:
J'ai un fichier à une feuille (1ere semaine de janvier 2005)
J'aimerais pouvoir la copier 52 fois en renommant chaque feuille avec la
valeur de la cellule b4 Mais au format "jj mmm" (Ex "02 Janv")
Aussi, j'aimerais que pour chaque feuilles, la celulle B4 s'incrémente
de


7jours (semaine suivante)

Je cherche depuis un moment mais je n'ai pas réussi.

Merci à l'avance pour votre aide

Bonne journée

Martin












Avatar
PMO
Bonjour,

Un code qui copie la 1ère feuille servant de modèle tout
en transmettant sa mise en page et sa mise en forme.

'****************
Option Explicit
Sub CopierSemaine()
Dim S As Worksheet
Dim myDate As Date
Dim i&
If Not IsDate([b4]) Then
MsgBox "La cellule B4 ne contient pas de date."
Exit Sub
End If
[b4].NumberFormat = "dd mmm"
myDate = [b4]
Set S = ActiveSheet
For i& = 1 To 51
S.Copy After:=Sheets(Sheets.Count)
[b4] = myDate + 7 * (i&)
ActiveSheet.Name = [b4].Text
Next
End Sub
'****************

Cordialement.

PMO
Patrick Morange



Bonjour à tous et à toutes

Je cherche à faire une macro qui va faire ceci:
J'ai un fichier à une feuille (1ere semaine de janvier 2005)
J'aimerais pouvoir la copier 52 fois en renommant chaque feuille avec la
valeur de la cellule b4 Mais au format "jj mmm" (Ex "02 Janv")
Aussi, j'aimerais que pour chaque feuilles, la celulle B4 s'incrémente de
7jours (semaine suivante)

Je cherche depuis un moment mais je n'ai pas réussi.

Merci à l'avance pour votre aide

Bonne journée

Martin





Avatar
AV
Ma première semaine débute le Dimanche 2 Janvier


Bizarre ce début de semaine..de même que tu veuilles t'arrêter à 52
semaines...mais bon
Avec une seule feuille dans le classeur nommée "02 janv" comportant en B4
02/01/05

Sub zzz()
For i = 1 To 51
Sheets.Add after:=Sheets(i)
With ActiveSheet
.Name = Format(Sheets(i).[B4] + 7, "dd mmm")
.[B4] = Sheets(i).[B4] + 7
End With
Next
End Sub

AV

Avatar
Gaspareau
Re bonjour

C'est que j'ai une feuille rapport du travail fait durant la semaine
et j'ai besoin d'une feuille par semaine.

Jusqu'à maintenant, j'avais un modèle avec ses 52 feuilles toute faites et
une macro ne faisait que renommer en fonction d'une cellule soit la date du
dimanche de la semaine courrante.

Le problème c'Est que quelques fois je dois modifier un format ou ajouter
quelque chose, enfin bref modifier, je dois le faire sur les 52 pages alors
en voyant la question ce matin, j'ai pensé que si je me fait qu'une page
modèle et la recopie 52 fois ça serait mieux.

Mais quand j'exécute la macro, c'est très très lent et ça plante.


Remarque, je peux très bien continuer à fonctionner comme avant mais ne
serait-ce que pour mon savoir, y a-t-il un autre moyen plus rapide.

C'est plus clair ????


Merci beaucoup


"anomymousA" a écrit dans le message
de news:
bonjour,

je ne suis pas sur d'avoir bien compris, mais je te conseille plutot
sheets(I).cells.copy sheets(I+1).range("A1")

c'est très rapide et sans douleur

A+


Bonjour
Je me glisse dans la conversation car je suis intéressé
J'ai un peu le même projet sauf que moi je dois recopier la première
feuille


au lieu
de simplement insérer une feuille

J'ai essayé avec Sheet.Copy, ça semble fonctionner mais c'Est d'une
lenteur


......
J'ai dû arrêter Excel car c'Est beaucoup trop long

Un truc pour accélérer ???

MErci


"anomymousA" a écrit dans le
message


de news:
bonjour

Ensupposant que ta 1ere feuille porte le nom du 1er jour de la 1ere
semaine

car je n'ai pas géré ça dasn la procédure, voilà un code qui marche.

For I = 1 To 51
Sheets.Add , after:=Sheets(I)
ActiveSheet.Range("B4") = Sheets(I).Range("B4") + 7
ActiveSheet.Name = Format(Range("B4").Text, "d-mmm")
Next


A+


Bonjour à tous et à toutes

Je cherche à faire une macro qui va faire ceci:
J'ai un fichier à une feuille (1ere semaine de janvier 2005)
J'aimerais pouvoir la copier 52 fois en renommant chaque feuille
avec la




valeur de la cellule b4 Mais au format "jj mmm" (Ex "02 Janv")
Aussi, j'aimerais que pour chaque feuilles, la celulle B4
s'incrémente




de
7jours (semaine suivante)

Je cherche depuis un moment mais je n'ai pas réussi.

Merci à l'avance pour votre aide

Bonne journée

Martin














Avatar
anomymousA
re,

p.e en supposant que tu veuilles qu'en D3 la formule soit D3£+2, comme ça
tu auras toujours une formule référencée correctement

Sheets(I).Cells.Copy Sheets(I + 1).Range("A1")
Sheets(I + 1).Range("D3").FormulaR1C1 = "=RC[-3]+2"


J'ai fait la même erreur car j'avais le même besoin
J'ai mis Sheet(I).Copy, je me trouve donc à copier la copie mais ca
fonctionne a merveille

Mais j'ai un autre problème, si je commence ma copie a partir de la feuille
2 (For I = 2 to 51)
Je veux que si j'avais une référence du style ='Feuil1'!B10, qu'elle
s'incrémente aussi qu'elle devienne 'Feuil2'!B10
Cette cellule est en B10

Merci à Anonymous pour son aide :)

Martin

"Gaspareau" a écrit dans le message de news:
#Od#
Bonjour
Je me glisse dans la conversation car je suis intéressé
J'ai un peu le même projet sauf que moi je dois recopier la première
feuille

au lieu
de simplement insérer une feuille

J'ai essayé avec Sheet.Copy, ça semble fonctionner mais c'Est d'une
lenteur

.....
J'ai dû arrêter Excel car c'Est beaucoup trop long

Un truc pour accélérer ???

MErci


"anomymousA" a écrit dans le
message

de news:
bonjour

Ensupposant que ta 1ere feuille porte le nom du 1er jour de la 1ere
semaine

car je n'ai pas géré ça dasn la procédure, voilà un code qui marche.

For I = 1 To 51
Sheets.Add , after:=Sheets(I)
ActiveSheet.Range("B4") = Sheets(I).Range("B4") + 7
ActiveSheet.Name = Format(Range("B4").Text, "d-mmm")
Next


A+


Bonjour à tous et à toutes

Je cherche à faire une macro qui va faire ceci:
J'ai un fichier à une feuille (1ere semaine de janvier 2005)
J'aimerais pouvoir la copier 52 fois en renommant chaque feuille avec
la



valeur de la cellule b4 Mais au format "jj mmm" (Ex "02 Janv")
Aussi, j'aimerais que pour chaque feuilles, la celulle B4 s'incrémente
de


7jours (semaine suivante)

Je cherche depuis un moment mais je n'ai pas réussi.

Merci à l'avance pour votre aide

Bonne journée

Martin
















1 2