Ne pas enregistrer les objets presents
C
Bonjour a tous, lorsque je sauvegarde dans un autre fichier quelques une des feuilles de mon application, les objets presents sont egalements copies. Comment faire pour qu'elles ne suivent pas. J'ai essayer Sheets(x).DrawingObjects.Select suivi de Selection.Cut
mais sans succes.
Private Sub CommandButton1_Click() '<Save> du UserForm. Sauvegarde un fichier de type xls avec le contenu du TextBox1 comme nom de fichier ou la valeur de OpenFile si la case du UserForm est cochee
Dim adr$, fichier$
Dim VBC As Object
Dim Name$
adr = ThisWorkbook.Path
Name = Cells(1, 2) 'deriver de la variable OpenFile ,methode necessaire car OpenFile se vide lorsqu'il y a un erreur dans le VBA
Application.ScreenUpdating = False
ActiveWindow.FreezePanes = False 'libere le volet, si non le volet sera copie
Sheets("DONNEES").Select
ActiveWindow.FreezePanes = False 'libere le volet, si non le volet sera copie
Sheets("RAM").Select
ActiveWindow.FreezePanes = False 'libere le volet, si non le volet sera copie
Sheets("ASS").Select
ActiveWindow.FreezePanes = False 'libere le volet, si non le volet sera copie
Sheets("Z80 developpement").Select
Sheets(Array(Feuil1.Name, Feuil2.Name, Feuil8.Name, Feuil13.Name)).COPY 'nom des feuilles à copier (par defaut classeur1)
'afin d'eliminer les macros presentes (Laurent Longre):
With ActiveWorkbook
With .VBProject ' Avec le projet VBA
For Each VBC In .VBComponents ' Pour chaque composant (Feuille, USF, Module, etc ...) du projet
If VBC.Type = 100 Then ' Si le type de composant peux contenir du code
With VBC.CodeModule ' Avec ce composant
.DeleteLines 1, .CountOfLines ' Supprimer les lignes de 1 au nombre de lignes de code du composant
.CodePane.Window.Close ' Fermer la fenètre de code qui apparait
End With
Else: .VBComponents.Remove VBC ' S'il ne peut pas contenir de code, le supprimer tout simplement
End If
Next VBC
End With
Sheets(1).DrawingObjects.Select
Selection.Cut
Sheets(1).Rows("1:2").Delete
Sheets(2).DrawingObjects.Select
Selection.Cut
Sheets(2).Rows("1:1").Delete
Sheets(3).DrawingObjects.Select
Selection.Cut
Sheets(3).Rows("1:1").Delete
Sheets(4).DrawingObjects.Select
Selection.Cut
Sheets(4).Rows("1:1").Delete
End With
If CheckBox1 Then fichier = Name Else fichier = TextBox1.Value
Application.DisplayAlerts = False 'pour ne pas avoir le message:"ce fichier existe deja"
ActiveWorkbook.SaveAs adr & "\" & fichier & ".ass"
ActiveWorkbook.Close 1
Application.DisplayAlerts = True
Sheets("ASS").Select
Range("A3").Select
ActiveWindow.FreezePanes = True 'remet le volet
Sheets("DONNEES").Select
Range("A2").Select
ActiveWindow.FreezePanes = True 'remet le volet
Sheets("RAM").Select
Range("A2").Select
ActiveWindow.FreezePanes = True 'remet le volet
Sheets("Z80 developpement").Select
Range("A2").Select
ActiveWindow.FreezePanes = True 'remet le volet
Sheets("ASS").Select
Range("I3").Select
Me.Hide 'On cache le userform
End SubBonjour
En notant simplement
Sheets(x).DrawingObjects.DeleteC
Probleme Resolul!
Bonne journee Banzai!