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

Macro pourr copier une feuille dans un nouveau classeur....

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 !

Christian0258

XLDnaute Accro
Bonjour à tout le forum,

Après pas mal de recherches infructueuses, sur ce forum,
je souhaiterais votre aide afin d'écrire une macro pour qui devra:

1) copier la feuille "Demande Achats" (UNIQUEMENT LES VALEURS) de mon fichier ouvert puis
2) créer un nouveau classeur, le nommer D.A avec la date du jour à la suite (soit exemple nom du classeur :
D.A 15/10/2012) et ce, sous C:\Users\christian\Desktop... puis le fermer.

Je vous remercie pour le temps que vous voudrez bien, à nouveau, m'accorder.

Bien à vous,
Christian
 
Re : Macro pourr copier une feuille dans un nouveau classeur....

Re, le forum,

J'ai trouvé, à peu près, ce que je cherchais. Toutefois pourriez-vous me dire ce qu'il faut ajouter à ce code ;

Sub test()
Sheets("Demande Achats").Copy
With ActiveSheet.UsedRange.Cells
.Copy
.PasteSpecial Paste:=xlValues
.PasteSpecial Paste:=xlFormats
End With
Application.CutCopyMode = xlCut
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & "DA-" & Format(Date, "yyyy-mm-dd") & ".xls"

ActiveWorkbook.Close
End Sub

pour inclure le contenu, changeant, de la cellule C7 (expl : Boutique) lors de l'enregistrement du fichier pour obtenir; expl :
DA-Boutique 2012-10-15

Merci pour votre aide.
Bien à vous,
Christian
 
Dernière édition:
Re : Macro pourr copier une feuille dans un nouveau classeur....

Bonsoir Christian0258,

Ce code fonctionnera sur toute version Excel :

Code:
Sub test()
Dim nomfich$, ext$
With Sheets("Demande Achats")
  .Copy
  ActiveSheet.UsedRange = .UsedRange.Value
  nomfich = "DA-" & .[C7] & Format(Date, " yyyy-mm-dd")
  ext = Mid(.Parent.Name, InStrRev(.Parent.Name, "."))
End With
'Application.DisplayAlerts = False 'facultatif, évite tout message
On Error Resume Next
Workbooks(nomfich & ext).Close 'si le fichier est ouvert
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & nomfich & ext
ActiveWorkbook.Close False
End Sub
A+
 
Re : Macro pourr copier une feuille dans un nouveau classeur....

Re,

Non ce n'était pas bon sous Excel 2010, prenez cette macro :

Code:
Sub test()
Dim nomfich$, ext$, form
Application.ScreenUpdating = False
With ThisWorkbook.Sheets("Demande Achats")
  .Copy
  ActiveSheet.UsedRange = .UsedRange.Value
  nomfich = "DA-" & .[C7] & Format(Date, " yyyy-mm-dd")
  ext = Mid(.Parent.Name, InStrRev(.Parent.Name, "."))
  form = .Parent.FileFormat
End With
'Application.DisplayAlerts = False 'facultatif, évite tout message
On Error Resume Next
Workbooks(nomfich & ext).Close 'si le fichier est ouvert
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & nomfich, form
ActiveWorkbook.Close False
End Sub
Edit : ajouté Application.ScreenUpdating = False au début.

A+
 
Dernière édition:
Re : Macro pourr copier une feuille dans un nouveau classeur....

Bonjour Christian,

Si dans la feuille il y a des macros qu'on ne veut pas copier :

Code:
Sub test()
Dim nomfich$
Application.ScreenUpdating = False
Workbooks.Add xlWBATWorksheet 'nouveau document
With ThisWorkbook.Sheets("Demande Achats")
  .Cells.Copy ActiveSheet.[A1]
  .[A1].Copy ActiveSheet.[A1] 'vide le presse-papier
  ActiveSheet.UsedRange = .UsedRange.Value
  ActiveSheet.Name = .Name
  nomfich = "DA-" & .[C7] & Format(Date, " yyyy-mm-dd")
End With
'Application.DisplayAlerts = False 'facultatif, évite tout message
On Error Resume Next
Workbooks(nomfich).Close 'si le fichier est ouvert
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & nomfich, xlNormal
ActiveWorkbook.Close False
End Sub
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…