[Résolu par Efgé] Supprimer le module lors de la sauvegarde

Lone-wolf

XLDnaute Barbatruc
Bonjour à tous :)

avec la macro ci-dessous, je n'arrive pas à supprimer le module lors de la sauvegarde(Enregistrer sous).

Code:
Sub Enrg_Sous()
Dim WbSource, WbDest As Workbook, chemin As String, nom As String
Application.ScreenUpdating = False
Set WbSource = Workbooks("Tableau.xls")
chemin = "C:\Users\" & Environ("username") & "\Desktop\Macro Test\"
With WbSource
.Sheets("Data").Range("a1:i37").AutoFilter Field:=1, Criteria1:=ActiveCell, Operator:=xlAnd
.Sheets("Data").Range("a2:i37").SpecialCells(xlCellTypeVisible).Copy .Sheets("Report").Range("a65536").End(xlUp)(2)
.Sheets("Report").Range("A:I").Columns.AutoFit
.Sheets("Report").Activate
nom = Activesheet.Range("a2")
ActiveWorkbook.SaveAs Filename:=chemin & nom & ".xls", FileFormat:=xlExcel8

Application.DisplayAlerts = False
ActiveWorkbook.Sheets("Data").Delete
'ActiveWorkbook.VBProject.VBComponents.Remove _
ActiveWorkbook.VBProject.VBComponents.Item("Module1")
ActiveWorkbook.Save
Application.Quit
End With
End Sub

Mais, ce qui me surprend le plus, c'est que la feuille "Data" est bien supprimée mais pas le module. J'aimerais y inclure aussi une condition: si le module n'existe pas, ne pas prendre en considération la ligne de suppression.
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re : Supprimer le module lors de la sauvegarde

Re Efgé,

Voici les deux macros

Code:
Sub Enrg_Sous()
Dim WbSource, WbDest As Workbook, chemin As String
Application.ScreenUpdating = False
Set WbSource = Workbooks("Tableau.xls")
chemin = "C:\Users\" & Environ("username") & "\Desktop\Macro Test\"
With WbSource
    .Sheets("Data").Range("a1:i37").AutoFilter Field:=1, Criteria1:=ActiveCell, Operator:=xlAnd
    .Sheets("Data").Range("a2:i37").SpecialCells(xlCellTypeVisible).Copy .Sheets("Report").Range("a65536").End(xlUp)(2)
    .Sheets("Report").Range("A:I").Columns.AutoFit
    .Sheets("Report").Activate
    ActiveSheet.Copy
    nom = ActiveSheet.Range("a2")
ActiveSheet.SaveAs Filename:=chemin & nom & ".xls", FileFormat:=xlExcel8
 End With
Application.DisplayAlerts = False
ActiveWorkbook.Save
Application.Quit

End Sub

Sub Copier_Suite()
Dim WbDest As Workbook, chemin As String, nom As String
Application.ScreenUpdating = False
chemin = "C:\Users\" & Environ("username") & "\Desktop\Macro Test\"
nom = ActiveCell.Value & ".xls"

With Sheets("Data")
.Range("a1:i37").AutoFilter Field:=1, Criteria1:=ActiveCell, Operator:=xlAnd
Set WbDest = Workbooks.Open(chemin & nom)
.Range("a2:i37").SpecialCells(xlCellTypeVisible).Copy WbDest.Sheets("Report").Range("a65536").End(xlUp)(2)
End With

Application.DisplayAlerts = False
ActiveWorkbook.Save

Application.Quit
End Sub

Qu'est-ce que tu comprend? Pourquoi faire le tri manuellement?? :confused:
 

Efgé

XLDnaute Barbatruc
Re : Supprimer le module lors de la sauvegarde

Bonjour
Une version qui ne prend en compte que la valeur de la cellule active, comme dans les macros d'origines
Cordialement
 

Pièces jointes

  • Sauvegarde-tableau(2).xlsm
    21 KB · Affichages: 18

Lone-wolf

XLDnaute Barbatruc
Re : Supprimer le module lors de la sauvegarde

Bonjour Efgé :)

Tu as complètement satifait ma demande. bravo.gif
 

Pièces jointes

  • bravo.gif
    bravo.gif
    1.3 KB · Affichages: 25

Discussions similaires

Statistiques des forums

Discussions
312 497
Messages
2 088 992
Membres
104 000
dernier inscrit
dinelcia