En fait j'ai un fichier excel type (original). Dans celui-ci je veux juste remplir les cases vides puis l'enregistrer dans un nouveau fichier afin de ne pas modifier l'original. Dans le nouveau fichier crée je n'aurai plus besoin de cette macro et par conséquent j'aimerais qu'elle se supprime automatiquement. J'ai donc consulté le forum dans lequel il y avait déja un sujet semblable mais avec une méthode qui ne marche pas! ( supprimer macro excel )
A coté la macro me permet d'enregistrer des valeurs de ce fichier dans un 3ieme fichier pour des statistiques communes a ts les fichiers générés à partir de cet original.
La macro ne bug pas et copie ma feuille dans un nouveau document, les valeurs dans le 3ieme fichier mais il ne supprime pas la macro du nouveau fichier.
Voila le code:
Private Sub CommandButton3_Click()
Dim Wbk1 As Workbook, Wbk2 As Workbook
Set Wbk2 = Workbooks.Open(Filename:="C:\Documents and Settings\...\Statistiques.xls") 'Si tes classeurs sont fermés
Set Wbk1 = ThisWorkbook ' si le classeur est celui ou se trouve ton code
'et ensuite tu fais tes collages de type :
fin = Wbk2.Worksheets("Données").Range("a65535").End(xlUp).Row 'trouve la derniere ligne ecrite de la colonne
fin = fin + 1
Wbk2.Worksheets("Données").Cells(fin, 1) = Wbk1.Worksheets("Facture 01").Cells(22, 2)
Wbk2.Worksheets("Données").Cells(fin, 2) = Wbk1.Worksheets("Facture 01").Cells(9, 4)
Wbk2.Worksheets("Données").Cells(fin, 3) = Wbk1.Worksheets("Facture 01").Cells(32, 6)
Wbk2.Worksheets("Données").Cells(fin, 7) = Wbk2.Worksheets("Données").Cells(fin, 3) - Wbk2.Worksheets("Données").Cells(fin - 1, 7)
Dim NomSource$, CheminDest$, NomDest$
Dim VBC As Object
NomSource = "essai facture VBA.xls" 'à adapter
CheminDest = "C:\Documents and Settings\...\" 'à adapter
NomDest = "Essai.xls" 'à adapter
Workbooks(NomSource).SaveAs CheminDest & NomDest
With ActiveWorkbook.VBProject
'cette partie du code est de Laurent Longre
For Each VBC In .VBComponents
If VBC.Type = 100 Then
With VBC.CodeModule
.DeleteLines 1, .CountOfLines
.CodePane.Window.Close
End With
Else: .VBComponents.Remove VBC
End If
Next VBC 'LL
End With
Application.Quit
SendKeys "%O"
End Sub