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

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
 

Christian0258

XLDnaute Accro
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:

job75

XLDnaute Barbatruc
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+
 

job75

XLDnaute Barbatruc
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:

job75

XLDnaute Barbatruc
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+
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 338
Messages
2 087 397
Membres
103 536
dernier inscrit
komivi