OVH Cloud OVH Cloud

code vb et fichiers verouillés

1 réponse
Avatar
leroy laurent
bonjour,

j'utilisele code suivant pour ouvrir un classeur appliquer une macro
mais je n'arrive pas à enregistrer sans message d'erreurs (table est en
cours d'utilisation)
et je n'arrive pas à m'en sortir

merci par avance

Sub Main()

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook

Set xlApp = New Excel.Application
Set xlBook = xlApp.Workbooks.Open("c:\classeur1.xls")
xlApp.Run xlBook.Name & "!module1.macro1"

xlBook.Close True, "c:\sav\classeur1.xls"
Set xlBook = Nothing
xlApp.Quit
Set xlApp = Nothing


End Sub

1 réponse

Avatar
Frédéric Sigonneau
Bonjour,

Chez moi (Excel 2002) ton code s'exécute sans erreur. Mais, en effet,
l'enregistrement ne se fait pas. Je pense que cela vient du fait qu'aucune
modification n'étant effectuée dans 'classeur1.xls' (exécuter une macro ne
change rien dans le classeur et la macro exécutée ne modifie sans doute rien non
plus dans 'classeur1.xls'), demander de fermer en sauvegardant les changements
reste simplement sans effet.
Faute de mieux, provoquer un changement bidon permet de forcer l'enregistrement.
Ceci fonctionne chez moi :

Sub Main()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook

Set xlApp = New Excel.Application
Set xlBook = xlApp.Workbooks.Open("c:classeur1.xls")
xlApp.Run xlBook.Name & "!module1.macro1"

xlBook.Sheets(1).Range("IV65536").Clear 'par exemple
xlBook.Close True, "c:savclasseur1.xls"
Set xlBook = Nothing
xlApp.Quit
Set xlApp = Nothing
End Sub

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


bonjour,

j'utilisele code suivant pour ouvrir un classeur appliquer une macro
mais je n'arrive pas à enregistrer sans message d'erreurs (table est en
cours d'utilisation)
et je n'arrive pas à m'en sortir

merci par avance

Sub Main()

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook

Set xlApp = New Excel.Application
Set xlBook = xlApp.Workbooks.Open("c:classeur1.xls")
xlApp.Run xlBook.Name & "!module1.macro1"

xlBook.Close True, "c:savclasseur1.xls"
Set xlBook = Nothing
xlApp.Quit
Set xlApp = Nothing

End Sub