Enregistrer une feuille dans un nouveau classeur

yannoch

XLDnaute Junior
Bonsoir à tous,

je sais que ce sujet a déjà été traité, d'ailleurs, j'ai déjà fait une petite partie de ce que je voulais faire grâce à quelques recherches sur le forum :
Sheets("Résultat").Select
Sheets("Résultat").Copy
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & "Liste-" & Format(Date, "yyyy-mm-dd") & ".xls"
ActiveWorkbook.Close
Avec ce code, ça me copie la feuille souhaitée dans un nouveau classeur contenant la date du jour.
Mais c'est incomplet pour ce que je veux faire.
La feuille Résultat contient uniquement des formules qui pointent donc sur des valeurs dans d'autres feuilles, et lorsque je copie la feuille résultat dans un nouveau classeur, excel copie alors les formules et pas les valeurs ce que je voudrais. Car les valeurs du fichier d'origine sont amenés à être modifier fréquemment, donc les liaisons seront forcément cassées.
J'ai essayé avec l'enregistreur de macro, mais sans succès.

Donc pour résumé, comment peux-t-on copier les valeur et pas les formules lorsque je crée mon nouveau fichier ?

De mon coté, je continue à écumer, le forum, car j'ai pas encore tous vu.
 

fanfan38

XLDnaute Barbatruc
Re : Enregistrer une feuille dans un nouveau classeur

Bonjour

La macro ci dessous devrait répondre à ton problème

Sub Macro1()
Dim nomfich As String
Dim fichnom As String
nomfich = ActiveWorkbook.Name
Workbooks.Add
fichnom = ActiveWorkbook.Name
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & "Liste-" & Format(Date, "yyyy-mm-dd") & ".xls"
Windows(nomfich).Activate
Cells.Select
Selection.Copy
Windows(fichnom).Activate
Selection.PasteSpecial Paste:=xlPasteFormats
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Range("A1").Select
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & "Liste-" & Format(Date, "yyyy-mm-dd") & ".xls"

End Sub

A+ François
 

Staple1600

XLDnaute Barbatruc
Re : Enregistrer une feuille dans un nouveau classeur

Bonjour à tous


Une autre façon (en partant de ta macro)

Code:
Sub test()
Sheets("Résultat").Copy
[COLOR=Blue] With ActiveSheet.UsedRange.Cells[/COLOR]
.Copy
.PasteSpecial Paste:=xlValues
End With
Application.CutCopyMode = xlCut
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & "Liste-" & Format(Date, "yyyy-mm-dd") & ".xls"
ActiveWorkbook.Close
End Sub

PS: fonctionne aussi comme cela
With ActiveSheet.UsedRange
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 199
Messages
2 086 160
Membres
103 148
dernier inscrit
lulu56