Macro pour copier feuille avec date différente

  • Initiateur de la discussion Initiateur de la discussion Micheline
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

Micheline

Guest
Bonjour au forum,

J'ai un petit aria, je recherche une macro qui pourrait copier ma feuille principale en la renommant sous une date différente, je suis après faire un fichier de compilations quotidienne qui débute en juin et se termine en décembre, mon fichier doit avoir une feuille par jour... long à copier et renommer chaque fois.

Dans le forum j'ai trouvé une macro proposée par un membre mais j'ai de la difficulté à la modifier:


Sub CopierFeuille()
Dim strNom As String
Dim intMois As Integer
Dim intAnnee As Integer

' se positionner sur la feuille la plus "récente"
intMois = Left(ActiveSheet.Name, 2)
intAnnee = Right(ActiveSheet.Name, 2)

intMois = intMois + 1
If intMois = 13 Then
intMois = 1
intAnnee = intAnnee + 1
End If
strNom = Format(intMois, "00") & Format(intAnnee, "00")

ActiveSheet.Copy After:=Sheets(ActiveWorkbook.Sheets.Count)
ActiveSheet.Name = strNom
End Sub


Est-ce qu'il y aurait quelqu'un qui pourrait m'aider ? Je vous remercie

Micheline
 
Re : Macro pour copier feuille avec date différente

Re Micheline, le Forum,
Pour t'aider à comprendre code, je le reprends avec des explications et exemple:

Débutons par ta feuille principale que l'on nomme 0607 où 06 représente le mois (juin) et 07 l'année (2007).
intMois = Left(ActiveSheet.Name, 2)
Ce bout de code identifie le mois qui se trouve dans le nom de ta feuille principale. Left = on débute par la gauche, ...Name = le nom de la feuille et le 2 représente le nombre de caractères que tu désires utiliser donc avec ton nom 0607, on sélectionne 06, les deux caractères à la gauche de ton nom.

intAnnee = Right(ActiveSheet.Name, 2)
Même logique pour l'année sauf qu'on débute par la droite donc on sélectionne 07 dans notre exemple.

intMois = intMois + 1
On donne la valeur 7 à intMois (06 + 1)

If intMois = 13 Then
intMois = 1
intAnnee = intAnnee + 1
End If

Ce bout de code est pour passer de décembre (12) à janvier (01) au lieu de passer de 12 à 13 (qui n'est pas un mois) et si on passe de décembre à janvier, on doit ajouter 1 à intAnnee (07 deviendra alors 08)

strNom = Format(intMois, "00") & Format(intAnnee, "00")
On définie le nouveau nom de la nouvelle feuille.Dans notre exemple, on a débuter avec 0607, on a ajouté 1 à 06 donc le nouveau mois sera 07 et on a identifié 07 comme année
strNom = Format(7,"00")&Format(07,"00")

Les "00" nous assure que le résultat sera 0707 et non 707

ActiveSheet.Copy After:=Sheets(ActiveWorkbook.Sheets.Count)
Recopie ta feuille (créé une nouvelle feuille)

ActiveSheet.Name = strNom
Renomme ta nouvelle feuille 0707

Voilà

Je me sentais un peu "prof" aujourd'hui...

Espérant que tu pourras adapter cette logique à ton fichier.

PS: Si tu désires utiliser le format suivant 01062007, 01 = jour, 06 = mois et 2007 = année, il te faudra extraire le mois avec la fonction mid(...,3,2) ou le 3 représente le début de la sélection et le 2 représente le nombre de caractères à sélectionner.

Bonne chance
Xtian_Québec
 
Re : Macro pour copier feuille avec date différente

Bonjour Xtian_Québec,

Oufff je comprends un peu, je vais essayer de faire la macro comme tu l'explique si bien, je vais voir... excuse le retard.. faisait beau et je jardinais
 
Re : Macro pour copier feuille avec date différente

Re Micheline,

Fais beau ici aussi mais j'ai pas de jardin...lol

Bonne chance avec ton code. Si tu n'y parviens pas, il y a toujours quelqu'un sur ce merveilleux forum pour t'aider...

Bonne chance encore

Xtian
 
Re : Macro pour copier feuille avec date différente

Bonjour Micheline, Xtian_Québec

Voici un exemple simple de ce que tu peux faire :
En A1 sur ta feuille de travail, la date qui servira de nom à la nouvelle feuille.

Code:
Sub CopierFeuil()
ActiveSheet.Copy After:=Sheets(ActiveWorkbook.Sheets.Count)
ActiveSheet.Name = Mid(Cells(1, 1), 1, 2) & "-" & Mid(Cells(1, 1), 4, 2) & "-" & Mid(Cells(1, 1), 7, 4)
End Sub

Le nom de la feuille créée sera sous la forme 10-06-2007

Bonne journée
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

C
Réponses
1
Affichages
740
A
Réponses
33
Affichages
4 K
Aurel60540
A
Réponses
13
Affichages
2 K
M
Réponses
11
Affichages
2 K
Melidan2006
M
J
Réponses
0
Affichages
1 K
J
V
Réponses
18
Affichages
3 K
Valoche54000
V
E
Réponses
0
Affichages
2 K
EnnaEnna
E
Y
Réponses
0
Affichages
1 K
yann_160
Y
Retour