Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro : creer des feuillets sur plusieurs fichiers automatiquement

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 !

atetard

XLDnaute Nouveau
Bonjour a tous,

[D'avance desole pour les accents je fonctionne sur qwerty]

J'ai poste il y a quelques jours de cela un post sur "comment imprimer un feuillet de chaque fichier d'un repertoire automatiquement". Job75 notamment, m'a donne une reponse parfaite qui a repondu a tous mes problemes !!

MAIS aujourd'hui, j'ai un autre probleme :

J'ai un dossier dans lequel chaque personne de l'entreprise a un tableur excel a son nom. Chaque feuillet correspond aux taches quotidiennes a effectuer. Sur chaque fichier on a donc des dixaines de feuillets du type : Feuillet 1 = 12 Juillet, feuillet 2 = 13 Juillet. Etc.

J'aimerai trouver une macro qui me permet de copier automatiquement le feuillet du lendemain en conservant sa mise en page. Par exemple si le 13 Juillet Phillipe avait 5 taches sur son tableau, j'aimerai qu'en lancant la macro, cela cree une copie conforme du feuillet en le renomant au jour d'apres, dans l'exemple ce serai le meme feuillet, la meme mise en page, mais intitulee 14 Juillet. ET J'AIMERAI QU'EN LANCANT LA MACRO, ELLE LE FASSE POUR TOUS LES FICHIERS DU REPERTOIRE D'UN SEUL COUP.

Est-ce possible ? Est-ce complique ? C'est a vous de me dire

=]

Merci d'avance
 
Re : Macro : creer des feuillets sur plusieurs fichiers automatiquement

Bonjour atetard,

J'ai repris la macro que je vous avais donnée et je l'ai juste modifiée :

Code:
Sub FeuilDemain()
Dim F$, F1$, chemin$, nomfich$, o As Boolean
Application.ScreenUpdating = False
On Error Resume Next
F = Format(Date, "dd mmmm") 'nom de la feuille recherchée (date du jour)
F1 = Format(Date + 1, "dd mmmm") 'nom de la feuille de demain
[COLOR="Red"]chemin = "N:\Shared Area\CREATIVE SERVICES\Workflow Docs" 'à adapter éventuellement[/COLOR]
nomfich = Dir(chemin & "\*.xls") '1er fichier du dossier
While nomfich <> ""
  o = False
  If IsError(Workbooks(nomfich).Name) Then 'si le fichier n'est pas déjà ouvert, on l'ouvre
    Workbooks.Open chemin & "\" & nomfich
    o = True
  End If
  Windows(nomfich).Visible = True 'au cas où la fenêtre serait masquée, on l'affiche
  With Workbooks(nomfich)
    If IsError(.Sheets(F1).Name) Then
      .Sheets(F).Visible = True 'au cas où la feuille serait masquée, on l'affiche
      .Sheets(F).Copy After:=.Sheets(F)
      With .Sheets(.Sheets(F).Index + 1) 'avec la nouvelle feuille
        .Name = F1 'on la renomme avec la date de demain
        [COLOR="red"].Range("A2:Z65536").ClearContents 'effacement à adapter[/COLOR]
      End With
      .Save 'enregistre le fichier
    End If
  End With
  If o Then ActiveWorkbook.Close 'si le fichier a été ouvert, on le referme
  nomfich = Dir 'fichier suivant du dossier
Wend
End Sub

Il vous reste à adapter les 2 lignes de code en rouge.

NOTA : pour que la feuille du lendemain se crée, il faut que la feuille du jour existe...

A+
 
Dernière édition:
Re : Macro : creer des feuillets sur plusieurs fichiers automatiquement

hmmmm. Je suis sur de pas etre loin du bout du tunnel mais la macro marche pas encore.

Je comprend pas trop par quoi remplacer Range("A2:Z65536") dans ton code. Est-ce que ce Range represente la totalite des cellules ?

Il ouvre les documents un par un mais il n'y change rien pour l'instant, il ne creee pas de nouveau feuillet..
Est-ce que ca pourrait etre parce que la date sur les feuillets est du type : 22.3, 23.3, 24.3 pour 22,23,24 Mars et que la macro ne l'interprete pas comme il faut ?

Contrairement a la macro d'impression je n'ai pas besoin de specifier un champ a renseigner ?

Merci beaucoup pour toute votre aide jusqu'a present Job, et merci d'avance pour la suite =

Cheers,

AT
 
Re : Macro : creer des feuillets sur plusieurs fichiers automatiquement

Bonjour atetard,

Je comprend pas trop par quoi remplacer Range("A2:Z65536") dans ton code.

La nouvelle feuille étant la copie conforme de la précédente, ce code effacera ce que vous voulez effacer, sinon supprimer ce code.

Est-ce que ca pourrait etre parce que la date sur les feuillets est du type : 22.3, 23.3, 24.3 pour 22,23,24 Mars et que la macro ne l'interprete pas comme il faut ?
Ben évidemment, la macro n'est pas intelligente, c'est vous qui devez l'être 🙄

Il faut alors écrire pour F et F1 :

Code:
F = Format(Date, "d.m") 'nom de la feuille recherchée (date du jour)
F1 = Format(Date + 1, "d.m") 'nom de la feuille de demain

ou, si l'on veut 2 chiffres pour les jours et les mois :

Code:
F = Format(Date, "dd.mm") 'nom de la feuille recherchée (date du jour)
F1 = Format(Date + 1, "dd.mm") 'nom de la feuille de demain

A+
 
Re : Macro : creer des feuillets sur plusieurs fichiers automatiquement

Re,

Je reprécise encore si c'était nécessaire...

Si l'on lance la macro aujourd'hui 19/02/2010, il faut que la feuille nommée "19.2" (ou "19.02") ait été créée.

Ceci à cause du Date dans les formules calculant F et F1.

A+
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…