Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Enregistrement de l'onglet actif avec macro

3 réponses
Avatar
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

3 réponses

Avatar
isabelle
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




Avatar
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" a écrit dans le message de groupe de 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
Avatar
douggjoh
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" a écrit dans le message de news:
%
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" a écrit dans le message de groupe de
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