begin process at 2010 02 10 02:58:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Langages dérivés

 > 

VBA

 > 

Lancer une macro excel, depuis un fichier word.


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Lancer une macro excel, depuis un fichier word.

vendredi 20 juin 2008 à 08:35:26 | Lancer une macro excel, depuis un fichier word.

MartinBrait

Bonjour les pros,

Me voilà bien en peine. J'essaye depuis plusieurs jours de lancer depuis un fichier word, une macro excel enregistrée sous 'MonBeauFichier.xls', sans aucun succès malgré mes nombreuses tentatives.

Attention, j'aimerai lancer cette macro excel 'RouleMaPoule', au mieux, avec l'appli Excel ouverte, et le fichier 'MonBeauFichier.xls ouvert sous la feuille9,
et sinon, si Excel n'était pas lancé, il faudrait ouvrir l'appli Excel, ouvrir un fichier de secours en réseau, portant le nom 'MonBeauFichier.xls' sous la feuille 9.
Il faudrait, dans mon scénario nominal, que word se contente d'activer mon fichier excel 'MonBeauFichier.xls' déjà  ouvert, avant de lancer la macro 'RouleMaPoule' déjà enregistrée sous ce fichier Excel 'MonBeauFichier.xls'

Le scénario nominal, m'interdit d'utiliser le nom du chemin précis allant jusqu'à mon fichier, car je souhaiterai que ce fichier puisse être ouvert par indifférement par des utilisateurs distincts,
qui ont sauvegardé une version de mon fichier, chacun sous leurs chemins préférés, qu'ils ont choisi.

En gestion d'exception, j'adorerai en revanche, que la macro m'ouvre à défaut de mieux, une version de secours de mon fichier Excel, qui est  cette fois ci clairement enregistrée sous un chemin précis que je peux déclarer dans ma macro word.

En résumé:
Je suis sousWindows
Je suis sous Word
j'active les références Microsoft Excel dans un fichier word de départ
Depuis word, je lance une macro 'Sub VersExcel()' qui

1) Si scénario réussit, alors, va sur l'application Excel déjà ouverte, trouve une version perso 'MonBeauFichier.xls' déjà ouverte sur le PC de l'utilisateur.
se met sur le feuillet 'Feuille9' (sur laquelle agit ma macro 'RouleMaPoule' si seulement c'est utile pour le scénario(?))
run ma macro 'RouleMaPoule' enregistrée

2) Si mon scénario rate, alors, signale à l'utilisateur par MsgBox, qu'il va utiliser une version de secours du fichier 'k://RépertoireEnRéseau/MonBeauFichier.xls',
ouvre Excel
ouvre le fichier k://RépertoireEnRéseau/MonBeauFichier.xls
se met sur le feuillet 'Feuille9' (sur laquelle agit ma macro 'RouleMaPoule' si seulement c'est utile pour le scénario(?))
run ma macro 'RouleMaPoule', enregistrée sous le fichier de secours 'k://RépertoireEnRéseau/MonBeauFichier.xls'



Voilà ce que j'ai écris.
J'ai manipulé de diverses manière et j'ai obtenu 2 types d'erreur:
1) MsgBox "Excel est fermé"
2) Information de débogage: ArgumentNonFacultatif, curseur positionné sur Sub VersExcel()

'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Sub VersExcel()

'Lancer une macro Excel depuis Word
'============================

Dim Appli2 As Excel.Application
'Je n'ai  pas oublié d'activer la référence Microsoft Excel xx.x Object Library

On Error Resume Next 'Cette intruction est laissée pour tester le comportement
Set Appli2 = CreateObject (, "Excel.Application")
Application.Activate 'J'essaie d'activer Excel qui est évalué fermé (pourquoi?)
If Appli2 Is Nothing Then
MsgBox "Excel est fermé" 'Gestion d'exception
Elst
Application.Run "MonBeauFichier.xls!RouleMaPoule"
End If

End Sub

'++++++++++++++++++++++++++++++++++++++++++++++++++++

MERCI POUR LE TEMPS QUE VOUS VOUDREZ BIEN M'ACCORDER.



vendredi 20 juin 2008 à 09:58:26 | Re : Lancer une macro excel, depuis un fichier word.

lermite222

Membre Club

Bonjour,
Si mes souvenirs sont bon, tu doit mettre le nom du module où est la macro.
par exemple..
Application.Run "MonBeauFichier.xls!Module1!RouleMaPoule"

samedi 21 juin 2008 à 15:50:04 | Poursuite des investigations...

MartinBrait

MERCI POUR TON SUIVI RAPIDE, LERMITE 222
Non, l'erreur n'est pas généréé là où tu l'indiques, car toute macro peut se lancer,
sans déclarer le module, car
C'est une méthode de classeur et non une méthode de module elle porte d'ailleurs toujours un nom unique dans un classeur.

ACCEPTES TU DE M'APPORTER TON AIDE POUR LA SUITE DES INVESTIGATIONS
(copier coller dans un fichier word, ne pas oublier d'activer la référence Microsoft Excel xx.x Object Library)


Sub RunExcelMacro()

Dim XL As Object ' Déclare une variable objet de type Application
On Error Resume Next 'Tu risques d'avoir une erreur dans ce qui suit

Set XL = GetObject(, "Excel.application") 'Peut générer une erreur si Excel non ouvert'
        'J'ai placé en remarques ci-dessous ici les instructions que je ne sais pas écrire
        ' si MonBeauFichier.xls ouvert (sans path imposé) alors
        'XL.Run ("HelloMacro") ' Call Run method of Excel's Application object' Remove remark from line to make Excel visible
        'XL.Quit ' Call the Quit method of Excel's Application object' Remove remark from line to make Excel visible
       ' Reset variable to nothing
        Set XL = Nothing

        ' si MonBeauFichier.xls fermé (sans path imposé)alors
        'XL.Workbooks.Open ("k:\RépertoireDeSecours\SousRépertoireDeSecours\MonBeauFichier.xls") ' Ouvre le classeur de secours contenant la macro à exécuter
        ' XL.Visible = True' Remove remark from line to make Excel visible
        'XL.Run ("HelloMacro") ' Call Run method of Excel's Application object
        'XL.Quit ' Call the Quit method of Excel's Application object
       ' Reset variable to nothing
        Set XL = Nothing


If Err.Number <> 0 Then 'alors Excel n'est pas ouvert, je l'ouvre
Err.Clear 'pour effacer la variable
Set XL = New Excel.Application ' Ouvre une nouvelle instance d'Excel et l'assigne à la variable objet
End If

Set XL = New Excel.Application ' Open a new instance of Excel and assign to object variable
XL.Workbooks.Open ("k:\RépertoireDeSecours\SousRépertoireDeSecours\MonBeauFichier.xls") ' Ouvre le classeur de secours contenant la macro à exécuter
' XL.Visible = True' Remove remark from next line to make Excel visible
XL.Run ("HelloMacro") ' Call Run method of Excel's Application object
XL.Quit ' Call the Quit method of Excel's Application object

' Reset variable to nothing
Set XL = Nothing

End Sub
samedi 21 juin 2008 à 19:41:24 | Re : Lancer une macro excel, depuis un fichier word.

lermite222

Membre Club
Je n'ai pas ton classeur, donc difficile à suivre mais grosse erreur de mettre ..
On Error Resume Next 'Cette intruction est laissée pour tester le comportement
Sauf au cas ou le classeur n'est pas ouvert; mais dans le cas que tu expose le classeur ne sait pas être ouvert puisque tu crée un objet Excel; ensuite il n'est pas activer en de plus il n'y a pas de classeur ouvert, donc..


Cela interdit de suivre les erreurs pas à pas, met ces lignes en REM et active la macro en pas à pas, ce seras plus explicit et au moins tu bloqueras sur l'erreur.

sans path imposé ??
Soit tu indique où se situe le fichier; soit il est dans le même répertoir que l'appli en cour, mais Windows n'a pas de boule de cristal !!
samedi 21 juin 2008 à 20:09:13 | Re : Lancer une macro excel, depuis un fichier word.

lermite222

Membre Club
J'ai plus beaucoup le temps ce soir, mais pour ouvrir une application Excel...
Dim XL as objet
   Set XL = CreateObject("excel.application")
   XL.workbooks.Open  ("Nom du classeur.xls")

tu doit le créer chaque fois que tu vient dans la macro puisqu'en fin de macro tu détruit l'objet, il n'existe donc plus.


Cette discussion est classée dans : fichier, macro, excel, xls, monbeaufichier


Répondre à ce message

Sujets en rapport avec ce message

Macro introuvable avec fonction "Run" dans Excel [ par tamereenstring ] Bonjour, j'ai un gros soucis avec une macro VBA avec Excel 2000 :j'ai un fichier excel nommé "Rapport.xls" qui contient un bouton.Lorsque l'on clique MACRO EXCEL: ouverture fichier [ par ChtiBreizh ] bonjour,j'ouvre une boite de dialogue pour ouvrir un fichier par Application.GetOpenFilename("Fichiers Excel (*.xls), *.xls")Je voudrai que seul le fi shell macro excel [ par pronche ] bonjour, via un shell je voudrais pouvoir lancer un fichier excel, et surtout, je voudrais lancer des macro qui se trouvent dans un autre fichier XLS. VBA Excel, Modifier le code d'un fichier Excel fermé [ par monaldinho ] Programmeur du jour, Bonjour!Après avoir cherché partout si mon probleme avait déjà été renconté, je dois faire appel à vous ( car apparement le sujet [excel] Détecter une macro et la supprimer [ par Liro ] Bonjour,J'ai un fichier A dans lequel j'execute une macro. Dans cette macro je voudrais pouvoir détecter la présence d'un module dans un fichier B et macro excel pour transformer L1C1 en A1 [ par mikeOSX ] Salut a tousbon deja, je previens, je n'y connais strictement rien en VB, desolé j'ai essayé de rechercher un peu partout, mais je trouve rien..j'espe Excel VBA - Macro Introuvable [ par JM247L ] Bonjour,Etrange problème que voilà !J'ouvre un fichier excel qui contient du code piloté par des boutonsSi j'enregistre le fichier (enregistré sous) i Feuilles Excel [ par Isildur93 ] Bonjour, je me permet de me rapprocher de vous tous pour avoir quelques infos voila je met ce bout de code :'Nouvel objet Excel Application    Set Xls executer une macro excel via access [ par monaldinho ] re bonjour tout le monde.j'ai poster mon message dans un autre forum de discussion mais je pense qu'il st plus approprié que je créé un sujet ! j'ai p executer une macro excel via access [ par monaldinho ] hello everybody !je vais pas bien ! ca fait exactement 2jours et une matinée que je suis sur ce probleme:je travaille sur access. j'ai un formulaire (


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,388 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales