Ouvrir un classeur en arrière plan

benoua

XLDnaute Occasionnel
Bonjour à tous.

Je développe actuellement un petit système comportant plusieurs fichiers et je voudrai centraliser les macros dans un seul classeur. Pour cela j'avais d'abord pensé à un système qui permette, depuis le fichier principal par l'intermédiaire d'un menu déroulant, de sélectionner le fichier que l'on souhaite ouvrir, comme cela le classeur principal reste ouvert. Cela implique juste de toujours passer par le classeur principal pour ouvrir les autres fichiers. Pas de problème, la macro fonctionne, sauf que la macro plante régulièrement, sans raison, elle affiche un message "Problème Accès Chemin/Fichier" sans raison particulière et Excel plante puis redémarre ensuite mais cette fois si sans charger les macros...

Bref après une tentative de sauvetage de ce système, j'envisage désormais de placer une petite ligne de commande dans Workbook_Open pour lancer ce classeur en arrière plan et qu'ainsi les macros se chargent. Sauf que je ne connais pas cette commande alors je sollicite votre aide!:)
Je souhaiterai ouvrir ce classeur au lancement d'un autre fichier, mais qu'il ne s'affiche pas.

Merci d'avance!;)

P.S. : j'ajoute que je n'ai trouvé aucun système permettant d'afficher une fenêtre d'explorateur de dossiers via une macro, si quelqu'un sait comment m'aider pour cela, je susi tout à fait preneur!

P.S. 2 : Mon système actuel fonctionnait de la manière suivante :
Une liste des fichiers dans une feuille, "Liste_Affaire" (Row Source)
Une liste déroulante qui reprend cette liste dans une UF.
Une cellule Affaire_Choisie dans laquelle est renvoyée le fichier choisi. (Controle Source)
Une constante "Chemin" qui désigne le répertoire où se trouvent tout ces fichiers.
Un bouton qui lance la macro :
OpenFile = Range("AFFAIRE_Choisie")
ChDir (Chemin)
Workbooks.Open (OpenFile)
si vous voyez un truc qui pourrait provoquer ce bugue, je suis à l'écoute également. ;)
 
Dernière édition:

benoua

XLDnaute Occasionnel
Re : Ouvrir un classeur en arrière plan

merci encore!:)

J'ai renommé mon VBAProject en "PERSYST", le module en "Principal" et la macro en essai et quand je mets PERSYST.Principal.essai il me dit "objet requis" :confused:
à noter que le fichier s'appelle test.xla

et la macro essai ne contient qu'une msgbox("ok")
 

benoua

XLDnaute Occasionnel
Re : Ouvrir un classeur en arrière plan

ahh, une petite remarque tant que j'y pense : lorsque tu "installes" une macro complémentaire située sur le réseau sur différents postes, il te demandera quelque chose du type "Copier la macro complémentaire dans la bibliothèque...". Il faut répondre Non, sinon il te fait une copie du .xla en local sur le poste et ça ne suivra pas tes modifications futures.
Effectivement c'est une excellente remarque!:D
 

tototiti2008

XLDnaute Barbatruc
Re : Ouvrir un classeur en arrière plan

bon j'arrive pas à voir ton image (limitation de mon administrateur) mais je crois que tu m'as mal compris :
Soit tu fais une Sub dans le classeur qui appellera la macro de test.xla, et dans ce cas le code sera :

Sub Macro1 ()
Application.Run "PERSYST.Principal.essai"
End Sub

Soit tu fais directement un lien du bouton vers la macro de test.xla, et dans ce cas, dans la boîte de dialogue Affecter une macro du bouton concerné, tu mets :
PERSYST.Principal.essai
 

benoua

XLDnaute Occasionnel
Re : Ouvrir un classeur en arrière plan

bon j'arrive pas à voir ton image (limitation de mon administrateur) mais je crois que tu m'as mal compris :
Soit tu fais une Sub dans le classeur qui appellera la macro de test.xla, et dans ce cas le code sera :

Sub Macro1 ()
Application.Run "PERSYST.Principal.essai"
End Sub

Soit tu fais directement un lien du bouton vers la macro de test.xla, et dans ce cas, dans la boîte de dialogue Affecter une macro du bouton concerné, tu mets :
PERSYST.Principal.essai

ahhhhhhh!!! En fait j'avais fait un mix des deux!! :D
j'avais fait une sub avec juste PERSYST.Principal.essai... :eek:
merci pour tout j'vais pouvoir avancer grâce à toi!!
Et désolé d'avoir été un peu long à la détente...:)

++
Ben
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
314 655
Messages
2 111 605
Membres
111 217
dernier inscrit
aladinkabeya2