Un workbook en ouvre un autre. Depuis le premier, je voudrais appeler
une fonction du deuxi=E8me. Comment faire pour appeler
"objWorkbookEdition.maFonction" depuis objWorkbookDonnees ?
Private Sub Workbook_Open()
Dim objWorkbookDonnees As Workbook, objWorkbookEdition As Workbook
Set objWorkbookDonnees =3D ActiveWorkbook
Set objWorkbookEdition =3D Application.Workbooks.Add("fichier2.xls")
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Argyronet (mvp)
Bonjour,
Je vous répond par une question... Qu'est censé faire la fonction du classeur ouvert par l'objet Workbook ? Je ne comprends pas bien l'intérêt. Si une macro doit s'exécuter à l'ouverture du second classeur, mettez en place un Auto_Open ou bien gérez l'événement Workbook_Open()...de ce classeur et là, pas besoin d'appeler de fonction. (P.S. voyez aussi la méthode RunAutoMacros)
Argy -- Mes tutoriels sur http://argyronet.developpez.com/
Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment
Un workbook en ouvre un autre. Depuis le premier, je voudrais appeler une fonction du deuxième. Comment faire pour appeler "objWorkbookEdition.maFonction" depuis objWorkbookDonnees ?
Private Sub Workbook_Open() Dim objWorkbookDonnees As Workbook, objWorkbookEdition As Workbook Set objWorkbookDonnees = ActiveWorkbook Set objWorkbookEdition = Application.Workbooks.Add("fichier2.xls")
objWorkbookEdition.maFonction
End Sub
Merci d'avance pour vos réponses.
Bonjour,
Je vous répond par une question...
Qu'est censé faire la fonction du classeur ouvert par l'objet Workbook ?
Je ne comprends pas bien l'intérêt.
Si une macro doit s'exécuter à l'ouverture du second classeur, mettez en
place un Auto_Open ou bien gérez l'événement Workbook_Open()...de ce classeur
et là, pas besoin d'appeler de fonction. (P.S. voyez aussi la méthode
RunAutoMacros)
Argy
--
Mes tutoriels sur http://argyronet.developpez.com/
Ce qui donne son sens à la communication, c´est la réponse que l´on obtient.
Si vous n´obtenez pas la réponse voulue, communiquez différemment
Un workbook en ouvre un autre. Depuis le premier, je voudrais appeler
une fonction du deuxième. Comment faire pour appeler
"objWorkbookEdition.maFonction" depuis objWorkbookDonnees ?
Private Sub Workbook_Open()
Dim objWorkbookDonnees As Workbook, objWorkbookEdition As Workbook
Set objWorkbookDonnees = ActiveWorkbook
Set objWorkbookEdition = Application.Workbooks.Add("fichier2.xls")
Je vous répond par une question... Qu'est censé faire la fonction du classeur ouvert par l'objet Workbook ? Je ne comprends pas bien l'intérêt. Si une macro doit s'exécuter à l'ouverture du second classeur, mettez en place un Auto_Open ou bien gérez l'événement Workbook_Open()...de ce classeur et là, pas besoin d'appeler de fonction. (P.S. voyez aussi la méthode RunAutoMacros)
Argy -- Mes tutoriels sur http://argyronet.developpez.com/
Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment
Un workbook en ouvre un autre. Depuis le premier, je voudrais appeler une fonction du deuxième. Comment faire pour appeler "objWorkbookEdition.maFonction" depuis objWorkbookDonnees ?
Private Sub Workbook_Open() Dim objWorkbookDonnees As Workbook, objWorkbookEdition As Workbook Set objWorkbookDonnees = ActiveWorkbook Set objWorkbookEdition = Application.Workbooks.Add("fichier2.xls")
objWorkbookEdition.maFonction
End Sub
Merci d'avance pour vos réponses.
papou
Bonjour En dehors de commentaires que l'on pourrait faire sur la méthode que tu utilises, tu peux appeler une fonction de la manière suivante : 1°) Soit une fonction nommée "zozo" (désolé pas plus original !), située dans un classeur classeur1.xls : Function zozo(laplage As Range) As String zozo = laplage.Address End Function
2°) Soit un classeur classeur1.xls avec une macro Macro1: Sub Macro1() MsgBox Application.Run("Classeur1.xls!zozo", Feuil1.Range("A1:A10")) End Sub
Cordialement Pascal
a écrit dans le message de news:
Un workbook en ouvre un autre. Depuis le premier, je voudrais appeler une fonction du deuxième. Comment faire pour appeler "objWorkbookEdition.maFonction" depuis objWorkbookDonnees ?
Private Sub Workbook_Open() Dim objWorkbookDonnees As Workbook, objWorkbookEdition As Workbook Set objWorkbookDonnees = ActiveWorkbook Set objWorkbookEdition = Application.Workbooks.Add("fichier2.xls")
objWorkbookEdition.maFonction
End Sub
Merci d'avance pour vos réponses.
Bonjour
En dehors de commentaires que l'on pourrait faire sur la méthode que tu
utilises, tu peux appeler une fonction de la manière suivante :
1°) Soit une fonction nommée "zozo" (désolé pas plus original !), située
dans un classeur classeur1.xls :
Function zozo(laplage As Range) As String
zozo = laplage.Address
End Function
2°) Soit un classeur classeur1.xls avec une macro Macro1:
Sub Macro1()
MsgBox Application.Run("Classeur1.xls!zozo", Feuil1.Range("A1:A10"))
End Sub
Cordialement
Pascal
<cpuaud@sopragroup.com> a écrit dans le message de news:
1144229203.778865.59900@u72g2000cwu.googlegroups.com...
Un workbook en ouvre un autre. Depuis le premier, je voudrais appeler
une fonction du deuxième. Comment faire pour appeler
"objWorkbookEdition.maFonction" depuis objWorkbookDonnees ?
Private Sub Workbook_Open()
Dim objWorkbookDonnees As Workbook, objWorkbookEdition As Workbook
Set objWorkbookDonnees = ActiveWorkbook
Set objWorkbookEdition = Application.Workbooks.Add("fichier2.xls")
Bonjour En dehors de commentaires que l'on pourrait faire sur la méthode que tu utilises, tu peux appeler une fonction de la manière suivante : 1°) Soit une fonction nommée "zozo" (désolé pas plus original !), située dans un classeur classeur1.xls : Function zozo(laplage As Range) As String zozo = laplage.Address End Function
2°) Soit un classeur classeur1.xls avec une macro Macro1: Sub Macro1() MsgBox Application.Run("Classeur1.xls!zozo", Feuil1.Range("A1:A10")) End Sub
Cordialement Pascal
a écrit dans le message de news:
Un workbook en ouvre un autre. Depuis le premier, je voudrais appeler une fonction du deuxième. Comment faire pour appeler "objWorkbookEdition.maFonction" depuis objWorkbookDonnees ?
Private Sub Workbook_Open() Dim objWorkbookDonnees As Workbook, objWorkbookEdition As Workbook Set objWorkbookDonnees = ActiveWorkbook Set objWorkbookEdition = Application.Workbooks.Add("fichier2.xls")
objWorkbookEdition.maFonction
End Sub
Merci d'avance pour vos réponses.
Christophe
En fait, entre "Set objWorkbookEdition Application.Workbooks.Add("fichier2.xls")" et "objWorkbookEdition.maFonction" je copie des feuilles de objWorkbookDonnees vers objWorkbookEdition. Je ne peux donc pas utiliser le Workbook_Open().
En fait, entre "Set objWorkbookEdition Application.Workbooks.Add("fichier2.xls")" et
"objWorkbookEdition.maFonction" je copie des feuilles de
objWorkbookDonnees vers objWorkbookEdition. Je ne peux donc pas
utiliser le Workbook_Open().
En fait, entre "Set objWorkbookEdition Application.Workbooks.Add("fichier2.xls")" et "objWorkbookEdition.maFonction" je copie des feuilles de objWorkbookDonnees vers objWorkbookEdition. Je ne peux donc pas utiliser le Workbook_Open().
Christophe
Le pb c'est que je veux utiliser un "Classeur1.xls" modifié (mon objWorkbookEdition = Application.Workbooks.Add("Classeur1.xls")). Avant d'appeler la fonction, il faut que j'insère des données dans ce nouveau classeur. Pour des raisons techniques l'application ne peut pas générer dans le même classeur le formulaire et les données.
Le pb c'est que je veux utiliser un "Classeur1.xls" modifié (mon
objWorkbookEdition = Application.Workbooks.Add("Classeur1.xls")). Avant
d'appeler la fonction, il faut que j'insère des données dans ce
nouveau classeur.
Pour des raisons techniques l'application ne peut pas générer dans le
même classeur le formulaire et les données.
Le pb c'est que je veux utiliser un "Classeur1.xls" modifié (mon objWorkbookEdition = Application.Workbooks.Add("Classeur1.xls")). Avant d'appeler la fonction, il faut que j'insère des données dans ce nouveau classeur. Pour des raisons techniques l'application ne peut pas générer dans le même classeur le formulaire et les données.
michdenis
Bonjour cpuaud,
| Set objWorkbookEdition = Application.Workbooks.Add("fichier2.xls")
ATTENTION : Cette ligne de code n'ouvre pas un classeur mais en CRÉE un nouveau. Dans ta procédure, tu utilises ActiveWorkbook... assure-toi que cela répond bien au workbook qui sera actif ....même si tu avais déjà plusieurs classeurs ouverts ....
Pour appeler une macro d'un fichier ouvert, tu disposes de cette ligne de code :
Dim LaMacro As String
'test1 est le nom de la macro appelée LaMacro = "'" & objWorkbookDonnees.Name & "'!test1" Application.Run LaMacro
Salutations!
a écrit dans le message de news: Un workbook en ouvre un autre. Depuis le premier, je voudrais appeler une fonction du deuxième. Comment faire pour appeler "objWorkbookEdition.maFonction" depuis objWorkbookDonnees ?
Private Sub Workbook_Open() Dim objWorkbookDonnees As Workbook, objWorkbookEdition As Workbook Set objWorkbookDonnees = ActiveWorkbook Set objWorkbookEdition = Application.Workbooks.Add("fichier2.xls")
objWorkbookEdition.maFonction
End Sub
Merci d'avance pour vos réponses.
Bonjour cpuaud,
| Set objWorkbookEdition = Application.Workbooks.Add("fichier2.xls")
ATTENTION :
Cette ligne de code n'ouvre pas un classeur mais en CRÉE un nouveau.
Dans ta procédure, tu utilises ActiveWorkbook... assure-toi que cela répond
bien au workbook qui sera actif ....même si tu avais déjà plusieurs classeurs
ouverts ....
Pour appeler une macro d'un fichier ouvert, tu disposes de cette ligne de code :
Dim LaMacro As String
'test1 est le nom de la macro appelée
LaMacro = "'" & objWorkbookDonnees.Name & "'!test1"
Application.Run LaMacro
Salutations!
<cpuaud@sopragroup.com> a écrit dans le message de news: 1144229203.778865.59900@u72g2000cwu.googlegroups.com...
Un workbook en ouvre un autre. Depuis le premier, je voudrais appeler
une fonction du deuxième. Comment faire pour appeler
"objWorkbookEdition.maFonction" depuis objWorkbookDonnees ?
Private Sub Workbook_Open()
Dim objWorkbookDonnees As Workbook, objWorkbookEdition As Workbook
Set objWorkbookDonnees = ActiveWorkbook
Set objWorkbookEdition = Application.Workbooks.Add("fichier2.xls")
| Set objWorkbookEdition = Application.Workbooks.Add("fichier2.xls")
ATTENTION : Cette ligne de code n'ouvre pas un classeur mais en CRÉE un nouveau. Dans ta procédure, tu utilises ActiveWorkbook... assure-toi que cela répond bien au workbook qui sera actif ....même si tu avais déjà plusieurs classeurs ouverts ....
Pour appeler une macro d'un fichier ouvert, tu disposes de cette ligne de code :
Dim LaMacro As String
'test1 est le nom de la macro appelée LaMacro = "'" & objWorkbookDonnees.Name & "'!test1" Application.Run LaMacro
Salutations!
a écrit dans le message de news: Un workbook en ouvre un autre. Depuis le premier, je voudrais appeler une fonction du deuxième. Comment faire pour appeler "objWorkbookEdition.maFonction" depuis objWorkbookDonnees ?
Private Sub Workbook_Open() Dim objWorkbookDonnees As Workbook, objWorkbookEdition As Workbook Set objWorkbookDonnees = ActiveWorkbook Set objWorkbookEdition = Application.Workbooks.Add("fichier2.xls")
objWorkbookEdition.maFonction
End Sub
Merci d'avance pour vos réponses.
Christophe
Merci ! C'est exactcement ce qu'il me fallait. Je veux bien créer un nouveau classeur.
Merci !
C'est exactcement ce qu'il me fallait.
Je veux bien créer un nouveau classeur.