Copier des feuilles sans les formules dans un nouveau classeur

Thierry37

XLDnaute Junior
Bonjour à tous,

Voici le code que j'ai récupéré et adapté pour copier mes feuilles vers un nouveau classeur.
La fonction copie fonctionne bien, le format est conservé sauf que les formules ne sont pas supprimées dans le classeur de destination.
Ce que je voudrais c'est que dans le classeur de destination il n'y ai que les valeurs tout en gardant le format car le nouveau classeur est destiné à des utilisateurs.
Pourquoi la suppression des formules ne fonctionne pas ?
Une solution consisterait à protéger par une macro les feuilles de destination (cellules verroullées et utilisation de l'option de protection feuille du menu outil) mais cela ne satisfait pas car l'utilisateur a toujours la possibilité d'enlever le mot de passe.
Merci pour votre aide.

Sub Copie()
'
' Copie Macro
' Macro enregistrée le 23/09/2008
SaveClasseur
' Pour conserver les couleurs de la palette
ActiveWorkbook.Colors(27) = RGB(221, 221, 221)
ActiveWorkbook.Colors(28) = RGB(255, 255, 102)

End Sub


Function SaveClasseur()
Dim Classeursource As Workbook
Dim ClasseurCible As Workbook

Set Classeursource = ActiveWorkbook

Classeursource.Sheets(Array("Accueil", "P1", "P2", "P3", "P4", "P5", "P6", "P7", "P8", "P9", "P10", "P11", "P12", "P13", "P14")).Select
Classeursource.Sheets(Array("Accueil", "P1", "P2", "P3", "P4", "P5", "P6", "P7", "P8", "P9", "P10", "P11", "P12", "P13", "P14")).Copy 'Copie les feuilles sélectionnées

Set ClasseurCible = ActiveWorkbook 'Au cas ou .. pour garder un accés au nouveau classeur

'Suppression des formules
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Cells(1, 1).Select
End Function
 

Thierry37

XLDnaute Junior
Re : Copier des feuilles sans les formules dans un nouveau classeur

Bonjour BHBH et boujour à tous sur le forum,

Comme je ne suis pas extrêment doué en VBA, peux-tu me dire où je peux mettre ce code et si je dois supprimer ce code suivant (qui ne semble pas fonctionner).

'Suppression des formules
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Cells(1, 1).Select
End Function

Merci pour votre aide,
Bonne journée,

Thierry
 

Thierry37

XLDnaute Junior
Re : Copier des feuilles sans les formules dans un nouveau classeur

Re-bonjour,

je viens tout juste d'insérer le code dans ma fonction et j'ai eu un code erreur 1004 sur le code que tu m'as donné.
Je me demande si c'est pas à cause de ma version Excel (97)...
Ce code peut-il être adapté ?
Merci.
A+
 

Staple1600

XLDnaute Barbatruc
Re : Copier des feuilles sans les formules dans un nouveau classeur

Bonjour


En modifiant ton code initial comme cela

Cela fonctionne (sous XL 2000 en tout cas)

Code:
Function SaveClasseur()
Dim Classeursource As Workbook
Dim ClasseurCible As Workbook

Set Classeursource = ActiveWorkbook
'noms changés pour test
Classeursource.Sheets(Array("Feuil1", "Feuil2", "Feuil3")).Select
Classeursource.Sheets(Array("Feuil1", "Feuil2", "Feuil3")).Copy

Set ClasseurCible = ActiveWorkbook 'Au cas ou .. pour garder un accés au nouveau classeur

'Suppression des formules
Worksheets.Select
    With ActiveSheet
        .Cells.Copy
        .Cells.PasteSpecial xlPasteValues
        .Select
    End With
Application.CutCopyMode = False
End Function
En intégrant le code de bhbh (test ok sous XL 2000)
Code:
Function SaveClasseur()
Dim Classeursource As Workbook
Dim ClasseurCible As Workbook
Set Classeursource = ActiveWorkbook
'noms changés pour test
Classeursource.Sheets(Array("Feuil1", "Feuil2", "Feuil3")).Select
Classeursource.Sheets(Array("Feuil1", "Feuil2", "Feuil3")).Copy

Set ClasseurCible = ActiveWorkbook 'Au cas ou .. pour garder un accés au nouveau classeur
'Suppression des formules
Worksheets.Select
    With ActiveSheet
    With .Cells.SpecialCells(xlCellTypeFormulas, 23)
        .Value = .Value
    End With
End With
'ajout pour supprimer le groupe de travail
Sheets(1).Select
End Function

PS 2:
Il faut utiliser l'une ou l'autre des Function SaveClasseur (pas les deux)
 
Dernière édition:

Thierry37

XLDnaute Junior
Re : Copier des feuilles sans les formules dans un nouveau classeur

bonjour Staple1600 et bonjour à tous sur le forum !

Je viens d'appliquer le nouveau code VBA (1ère proposition) et sa marche !!!
C'est impecable !
Il n'y a plus de formule et il n'y a plus de liaisons !
Mille merci car je me demandais s'il y avait une solution à mon problème.
Heureusement qu'il y a des xlnautes Barbatruc !!!
J'espère que ce code va servir à d'autres utilisateurs car il est vraiment très très très utiles, surtout lorsque l'on veut diffuser un tableau de bord à d'autres personnes.
Encore merci,
Bien cordialement.

Thierry
 

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 087
Membres
103 461
dernier inscrit
dams94