Bonjour,
quand j'ai ouvert le classeur A, comment faire apr=E8s clic=20
sur un boutton, pour ouvrir un classeur B en invisible et=20
executer une sub qui se trouve dans le classeur B?
Merci
'Procédure dans un module standard Classeur Ouvert: Application.Run "Answer.xls!test1"
Pour ouvrir un classeur dans une nouvelle instance, invisible aux yeux de l'usager :
Lors de tes tests, met la propriété Visible à True durant tes test. Lorsque tout fonctionne bien, tu peux alors passer la propriété "Visible" à false, sinon, tu risques d'avoir plusieurs instances d'ouvert en mémoire en cas de plantage ...et quelques difficultés si tu n'es pas trop familier avec cela!
'------------------------- Sub OuvrirEtExécuterMacro()
Dim Xl As Object, Wk As Workbook
Set Xl = CreateObject("Excel.Application") Xl.Visible = False 'True Set Wk = Xl.Workbooks.Open("C:ExcelClasseur1.xls") Xl.Run Wk.Name & "!MaMacro" 'Ferme le classeur en enregistrant les modification. 'utilise False, si tu n'as pas besoin de sauvegarder Wk.Close True Xl.Quit Set Xl = Nothing: Set Wk = Nothing
End Sub '-------------------------
Salutations!
"Paulo" a écrit dans le message de news:060b01c3b1c8$c1052020$ Bonjour, quand j'ai ouvert le classeur A, comment faire après clic sur un boutton, pour ouvrir un classeur B en invisible et executer une sub qui se trouve dans le classeur B? Merci
Bonjour Paulo,
Voici un exemple ce code pour appeler une macro nommé "Test1" selon que ton classeur est ouvert ou fermé :
'Procédure dans un module standard
Classeur Ouvert:
Application.Run "Answer.xls!test1"
Pour ouvrir un classeur dans une nouvelle instance, invisible aux yeux de l'usager :
Lors de tes tests, met la propriété Visible à True durant tes test. Lorsque tout fonctionne bien, tu peux alors passer
la propriété "Visible" à false, sinon, tu risques d'avoir plusieurs instances d'ouvert en mémoire en cas de plantage
...et quelques difficultés si tu n'es pas trop familier avec cela!
'-------------------------
Sub OuvrirEtExécuterMacro()
Dim Xl As Object, Wk As Workbook
Set Xl = CreateObject("Excel.Application")
Xl.Visible = False 'True
Set Wk = Xl.Workbooks.Open("C:ExcelClasseur1.xls")
Xl.Run Wk.Name & "!MaMacro"
'Ferme le classeur en enregistrant les modification.
'utilise False, si tu n'as pas besoin de sauvegarder
Wk.Close True
Xl.Quit
Set Xl = Nothing: Set Wk = Nothing
End Sub
'-------------------------
Salutations!
"Paulo" <anonymous@discussions.microsoft.com> a écrit dans le message de news:060b01c3b1c8$c1052020$a301280a@phx.gbl...
Bonjour,
quand j'ai ouvert le classeur A, comment faire après clic
sur un boutton, pour ouvrir un classeur B en invisible et
executer une sub qui se trouve dans le classeur B?
Merci
'Procédure dans un module standard Classeur Ouvert: Application.Run "Answer.xls!test1"
Pour ouvrir un classeur dans une nouvelle instance, invisible aux yeux de l'usager :
Lors de tes tests, met la propriété Visible à True durant tes test. Lorsque tout fonctionne bien, tu peux alors passer la propriété "Visible" à false, sinon, tu risques d'avoir plusieurs instances d'ouvert en mémoire en cas de plantage ...et quelques difficultés si tu n'es pas trop familier avec cela!
'------------------------- Sub OuvrirEtExécuterMacro()
Dim Xl As Object, Wk As Workbook
Set Xl = CreateObject("Excel.Application") Xl.Visible = False 'True Set Wk = Xl.Workbooks.Open("C:ExcelClasseur1.xls") Xl.Run Wk.Name & "!MaMacro" 'Ferme le classeur en enregistrant les modification. 'utilise False, si tu n'as pas besoin de sauvegarder Wk.Close True Xl.Quit Set Xl = Nothing: Set Wk = Nothing
End Sub '-------------------------
Salutations!
"Paulo" a écrit dans le message de news:060b01c3b1c8$c1052020$ Bonjour, quand j'ai ouvert le classeur A, comment faire après clic sur un boutton, pour ouvrir un classeur B en invisible et executer une sub qui se trouve dans le classeur B? Merci