Enregistrement de l'onglet actif avec macro

Le
douggjoh
Bonjour à tous,

Toujours dans la construction de ma feuille de calcul de devis, Je souhaite
intégrer une macro qui permet de sauvegarder l'onglet actif dans un nouveau
classeur Excel.
J'ai trouvé cette macro gracieusement mise à disposition sur le site
http://boisgontierjacques.free.fr/ (merci JB)
Je l'ai adapté à mon besoin afin de récupérer le contenu d'une cellule pour
nommer le fichier ainsi sauvegardé mais je m'aperçois que sur la copie
sauvegardée, le contenu de certaines cellules contenant une formules n'est
pas conservé et je vois #REF! à la place. La formule fait appel à des
données sur un autre onglet, c'est peut-etre ce qui explique cela

Serait-il possible de ne copier que la valeur des cellules afin que la copie
ne soit plus dépendante de l'onglet contenant les données.

J'ai reproduit le comportement dans une feuille de test que voici :
http://www.cijoint.fr/cjlink.php?file=cj200906/cijYloj9ZA.xls

Merci à vous

--
Cordialement,
Douggjoh
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #19575421
bonjour douggjoh,

ActiveSheet.Copy
Cells.Copy
Cells.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Range("A1").Select

isabelle

douggjoh a écrit :
Bonjour à tous,

Toujours dans la construction de ma feuille de calcul de devis, Je souhaite
intégrer une macro qui permet de sauvegarder l'onglet actif dans un nouveau
classeur Excel.
J'ai trouvé cette macro gracieusement mise à disposition sur le site
http://boisgontierjacques.free.fr/ (merci JB)
Je l'ai adapté à mon besoin afin de récupérer le contenu d'une cellule pour
nommer le fichier ainsi sauvegardé mais je m'aperçois que sur la copie
sauvegardée, le contenu de certaines cellules contenant une formules n'est
pas conservé et je vois #REF! à la place. La formule fait appel à des
données sur un autre onglet, c'est peut-etre ce qui explique cela...

Serait-il possible de ne copier que la valeur des cellules afin que la copie
ne soit plus dépendante de l'onglet contenant les données.

J'ai reproduit le comportement dans une feuille de test que voici :
http://www.cijoint.fr/cjlink.php?file=cj200906/cijYloj9ZA.xls

Merci à vous




MichDenis
Le #19575631
Bonjour,

Cette procédure enregistre la feuille dans un nouveau classeur
mais sans les formules.

Sub Macro1()
Dim ffname As String
répertoire = "c:save"
If Dir(répertoire, vbDirectory) = "" Then MkDir répertoire
ffname = Sheets("AvecItemCommun").[D3]

With Sheets("AvecItemCommun")
derlig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
dercol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
x = .Range(.Cells(1, 1), .Cells(derlig, dercol))
.Copy
End With
On Error Resume Next
With ActiveWorkbook
With .ActiveSheet
.Range("A1").Resize(UBound(x, 1), UBound(x, 2)) = x
.SaveAs Répertoire & "" & ffname & "-" & _
Format(Now, "dd-mm-yyyy") & ".xls"
.Close
End With
End With

End Sub




"douggjoh"
Bonjour à tous,

Toujours dans la construction de ma feuille de calcul de devis, Je souhaite
intégrer une macro qui permet de sauvegarder l'onglet actif dans un nouveau
classeur Excel.
J'ai trouvé cette macro gracieusement mise à disposition sur le site
http://boisgontierjacques.free.fr/ (merci JB)
Je l'ai adapté à mon besoin afin de récupérer le contenu d'une cellule pour
nommer le fichier ainsi sauvegardé mais je m'aperçois que sur la copie
sauvegardée, le contenu de certaines cellules contenant une formules n'est
pas conservé et je vois #REF! à la place. La formule fait appel à des
données sur un autre onglet, c'est peut-etre ce qui explique cela...

Serait-il possible de ne copier que la valeur des cellules afin que la copie
ne soit plus dépendante de l'onglet contenant les données.

J'ai reproduit le comportement dans une feuille de test que voici :
http://www.cijoint.fr/cjlink.php?file=cj200906/cijYloj9ZA.xls

Merci à vous

--
Cordialement,
Douggjoh
douggjoh
Le #19581011
Tout bonnement superbe, merci beaucoup Michdenis.

Isabelle, je n'arrive pas à faire fonctionner ton code (j'ai toujours des
REF! dans la copie) mais merci quand même de ta réponse.

--
Cordialement,
Douggjoh


"MichDenis" %
Bonjour,

Cette procédure enregistre la feuille dans un nouveau classeur
mais sans les formules.

Sub Macro1()
Dim ffname As String
répertoire = "c:save"
If Dir(répertoire, vbDirectory) = "" Then MkDir répertoire
ffname = Sheets("AvecItemCommun").[D3]

With Sheets("AvecItemCommun")
derlig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
dercol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
x = .Range(.Cells(1, 1), .Cells(derlig, dercol))
.Copy
End With
On Error Resume Next
With ActiveWorkbook
With .ActiveSheet
.Range("A1").Resize(UBound(x, 1), UBound(x, 2)) = x
.SaveAs Répertoire & "" & ffname & "-" & _
Format(Now, "dd-mm-yyyy") & ".xls"
.Close
End With
End With

End Sub




"douggjoh" discussion :

Bonjour à tous,

Toujours dans la construction de ma feuille de calcul de devis, Je
souhaite
intégrer une macro qui permet de sauvegarder l'onglet actif dans un
nouveau
classeur Excel.
J'ai trouvé cette macro gracieusement mise à disposition sur le site
http://boisgontierjacques.free.fr/ (merci JB)
Je l'ai adapté à mon besoin afin de récupérer le contenu d'une cellule
pour
nommer le fichier ainsi sauvegardé mais je m'aperçois que sur la copie
sauvegardée, le contenu de certaines cellules contenant une formules n'est
pas conservé et je vois #REF! à la place. La formule fait appel à des
données sur un autre onglet, c'est peut-etre ce qui explique cela...

Serait-il possible de ne copier que la valeur des cellules afin que la
copie
ne soit plus dépendante de l'onglet contenant les données.

J'ai reproduit le comportement dans une feuille de test que voici :
http://www.cijoint.fr/cjlink.php?file=cj200906/cijYloj9ZA.xls

Merci à vous

--
Cordialement,
Douggjoh



Publicité
Poster une réponse
Anonyme