2010-08-11 11 views

Répondre

2

Si votre question porte sur la façon de démarrer automatiquement une macro que lorsqu'elle est appelée à partir XLT et non quand il est appelé à partir du XLS généré, alors peut-être cela peut aider

Private Sub Workbook_Open() 
    If ThisWorkbook.Path = "" Then 
    Call myMacro 
    End If 
End Sub 

mymacro ne sera appelée si le fichier ouvert est XLT, pas XLS.

+0

merci beaucoup. Ça marche. – KoKo

0

Il y a deux façons de le faire. Si vous avez seulement besoin des feuilles de calcul et aucune du code, la méthode la plus simple est probablement juste de copier les feuilles d'un nouveau classeur puis enregistrez que:

Private Sub workbook_open() 
    Dim wb As Workbook 
    Dim saveName As String 

    ThisWorkbook.Sheets.Copy 
    Set wb = ActiveWorkbook 

    saveName = Application.GetSaveAsFilename(fileFilter:="Excel Workbook (*.xls),  *.xls") 

    If Not saveName = "False" Then 
     wb.SaveAs saveName 
    End If 
End Sub 

Si un code est toujours nécessaire dans le XLS alors vous devrez manipuler l'environnement VB directement pour enlever les parties dont vous n'avez pas besoin. Ceci est un peu plus impliqué et a un certain nombre de restrictions/caveats, mais il semble que la méthode la plus simple illustrée ci-dessus puisse convenir à vos besoins de toute façon.

+0

Merci beaucoup pour votre aide. – KoKo

Questions connexes