Enregistrer une feuille sans les macros, ni les boutons

M

Michel

Guest
Je veux enregistrer une feuille sans les macros ni les boutons :
ActiveSheet.UsedRange.Copy

Workbooks.Add
ActiveSheet.[A1].PasteSpecial Paste:=xlPasteFormulas
ActiveSheet.[A1].PasteSpecial Paste:=xlPasteValues
ActiveSheet.[A1].PasteSpecial Paste:=xlPasteFormats
ActiveWorkbook.SaveAs Filename:=Chemin + Fichier

Ca marche mais je veux aussi enregistrer mes 2 images et garder mes largeurs de colonne.
Je n'ai pas de fichier d'aide et pas la liste des Paste:=xlPaste...

Merci de m'aider.
 
T

Thierry

Guest
Bonjour Michel,

Oui donc ma réponse à la ficelle : 7855 ne te convient pas... Puisqu'elle détruit toutes les shapes....

Première remarque ta macro ci-dessus contient une aberration...
A) Soit tu veux : Paste:=xlPasteFormulas
B) Soit tu veux : Paste:=xlPasteValues
Soit A reporte les formules, Soit B reporte les valeurs uniquement... Dans l'ordre d'exécution ici seule les Valeurs sont reportées...

Pour les Largeur de colonnes, je pense que la selection "UsedRange" ne peut convenir car elle ne prend pas en compte les colonnes... Si tu selectionnes des Colonnes, xlPasteFormats conservera les formats des cellules ET des colonnes...

Pour les Shapes de tes deux Images... c'est plus embêtant... Envoie un fichier exemple, je regarderai en fonction des images que tu as dans cette feuille...

Pour ce qui est des macros... si tu utilises cette façon de recopier la feuille tu ne devrais avoir aucune macro dans ta nouvelle feuille ? non ?

Bon Dimanche,
@+Thierry
 
S

STéphane

Guest
le mieux est de faire
activesheet.copy

puis de procéder à la suppression des boutons et objets que tu ne désires pas

une macro pour t'inspirer :

Copier une feuille et ses boutons
Sub SheetCopy(Source As Worksheet, Before As Worksheet)
Dim CmdB1 As CommandButton, CmdB2 As CommandButton
Dim Dest As Worksheet, I As Integer
Source.Copy Before
Set Dest = Before.Previous
For I = 1 To Source.OLEObjects.Count
With Source.OLEObjects(I)
If TypeOf .Object Is CommandButton Then
Set CmdB1 = .Object
Set CmdB2 = Dest.OLEObjects(I).Object
CmdB2.Name = CmdB1.Name
End If
End With
Next I
End Sub

Sub Test()
SheetCopy Sheets(1), Before:=Sheets(2)
End Sub


si tu veux en rester à la méthode de ne copier que les cellules et d'ensuite de coller les formats, etc., tu trouveras à l'adresse ci-dessous un exemple pour copier en gardant les tailles des cellules
<http://xlbysteph.free.fr///aideinformatique/news/copiergarderformat.txt>

(ps virer l'adresse email qui s'est glissée dans le code)

bye
stephane
 

Discussions similaires

Statistiques des forums

Discussions
312 113
Messages
2 085 422
Membres
102 886
dernier inscrit
eurlece