• Initiateur de la discussion Initiateur de la discussion julie999
  • 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 !

julie999

XLDnaute Occasionnel
bonjour
je cherche a creé une petite macro a l'ouverture d'un fichier:
la cellule a1 de la feuille 1contient la date systeme sous forme sam 06 aout 2011

est il possible qu'a chaque 01 du mois (exemple pour le 01 aout 2011):faire une copie de la feuille "modele1" et la renomée avec la date contenue dans la cellule a1 de la feuille 1 sous la forme aout 2011

et il possible qu'a chaque 01 janvier 'exemple pour le 1er janvier 2012):faire une copie de la feuille "recap" et la renomée avec la date contenue dans la cellule a1 de la feuille 1 sous la forme recap 2012

le plus difficile
mettre une securite a l'ouverture du fichier si la feuille est deja crée ne rien faire


merci julie
 
Re : macro Workbook_Open

Bonjour,

Tu peux tester ceci, dans une procédure workbook_Open
VB:
Din NFeuil as string, NFeuilAn as String, Mois as boolean, Annee as Boolean
nFeuil =  Format(sheets(1).[A1],"mmmm yyyy")
nFeuilAn = "recap " & Format(Sheets(1).[A1],"yyyy")
Mois= true: Annee = true
For t=1 to activeworkbook.sheets.count
   if sheets(t).Name = nFeuil then Mois= false
   if sheets(t).Name = nFeuilAn then Annee = false
Next t
If Mois and Day(Now)=1 Then Sheets("Modele1").Copy After:=activeworkbook.sheets.count:Activesheet.Name = nFeuil
If Annee and day(now)=1 and month(now)=1 then Sheets("Recap").Copy After:=activeworkbook.sheets.count:Activesheet.Name = nFeuilAn
 
Re : macro Workbook_Open

Bonsoir Julie,

Pourrais tu joindre un petit fichier exemple avec la date comme elle est indiquée? ce serait mieux pour faire des essais pertinents. Cordialement

KD

Edit : bonsoir Carcharon, Softmama
 
Re : macro Workbook_Open

salut softmama,carcharodon,le fil
softmama ta solution est plus simple pour moi la comprendre par contre il y a une erreur de syntaxe sur la premiere ligne
Din NFeuil as string, NFeuilAn as String, Mois as boolean, Annee as Boolean
julie
 
Re : macro Workbook_Open

Re,

Il n'y a pas je pense d'erreur de syntaxe. As-tu bien inséré ce code dans une procédure Workbook_open ? (Thisworkbook, choisir Workbook_open)
VB:
Private Sub Workbook_Open()
'... le code 
End Sub

EDIT: Ha ben si, y a une erreur 😛
 
Dernière édition:
Re : macro Workbook_Open

en faite les noms de feuilles et de la cellule pour la date sont des exemples j'aurais adapté apres selon mon fichier mais si vous pouvez le faire directement sur mon fichier c'est encore mieux"j'ai beau etre brune parfois je suis blonde"
voici donc les bonne informations
j'aimerais qu'a l'ouverture du fichier a chaque debut de mois (le 1er) il faut copier la feuille "juillet 2011" date contenue dans la cellule k3 et la renomée avec le mois suivant donc aout 2011 bien sure le feuille aout2011 serait vierge les cases de couleur seraient effacées a la creation de la page"
et faire la meme chose pour la feuille recap a chaque debut d'année copié la feuille recap 2011 date dans la cellule k3 aussi et la renomé avec l'année suivante donc recap 2012(idem les cases de couleur seront effacées sur la feuille 2012

voici donc les bonnes informations

l'ideal serait une securite a l'ouverture deu classeur si la feuille existe deja ne rien faire sinon la crée

julie
 

Pièces jointes

Re : macro Workbook_Open

Re bonsoir,

Softmama semblant déconnecté, peut-être comme ça :

Edit : oups, mal lu, la création de la feuille aout d'après juillet se passe le 1er juillet ou le premier aout ?

Cordialement

KD
 
Dernière édition:
Re : macro Workbook_Open

Bon faut que j'arrête d'éditer mes messages pendant que tu postes 🙂 Je recopie ici :

Si c'est le premier aout 2012, ce code devrait aller chercher la feuille juillet 2012 et la recopier et la renommer en aout.

Code:
Private Sub Workbook_Open()
Dim NFeuil As String, NFeuilAn As String, Mois As Boolean, Annee As Boolean, NOFeuil As String
NFeuil = Format(Now, "mmmm yyyy") 'exemple 1er aout=août 2012
NOFeuil = Format(Now - 15, "mmmm yyyy") 'exemple 1er aout=juillet 2012
NFeuilAn = "recap " & Split(NFeuil)(1)
Mois = True: Annee = True
For t = 1 To ActiveWorkbook.Sheets.Count
   If Sheets(t).Name = NFeuil Then Mois = False
   If Sheets(t).Name = NFeuilAn Then Annee = False
Next t
If Mois And Day(Now) = 1 Then Sheets(NOFeuil).Copy After:=ActiveWorkbook.Sheets.Count: ActiveSheet.Name = NFeuil: [K3] = Int(Now)
If Annee And Day(Now) = 1 And Month(Now) = 1 Then Sheets("Recap").Copy After:=ActiveWorkbook.Sheets.Count: ActiveSheet.Name = NFeuilAn: [K3] = Int(Now)
End Sub
:

J'ai modifié la ligne, en ai ajouté une au début et rajouté une variable au code de Softmama.

Remarque : Ce code ne se déclenchera comme tu l'as demandé que le 1er de chaque mois. Es tu sure que ce fichier sera ouvert si le 1er est un dimanche ou un jour férié ? ...

Cordialement

KD
 
- 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

Discussions similaires

Réponses
2
Affichages
653
Réponses
3
Affichages
656
Réponses
12
Affichages
1 K
Retour