Deux problèmes dont le deuxième est la suite du premier (en fait le premier
est la cause du second...)
J'ai une application qui ouvre un fichier Excel sans lui donner de nom. Je
doit traiter ce fichier avec une macro.
Comme ce fichier doit acceder à cette macro, je l'ai inscrite dans le
fichier personal.xlsb.
Cependant, la macro ne demarrrant pas automatiquement, je l'ai demarrée
depuis une macro automatique à l'ouverture de personal.xlsb.
Le problème est que lors du démarrage de excel, il ouvre dabord
Personal.xlsb, puis l'objet excel demander par l'application.
De ce fait, la macro en auto run ne trouve jamais le second Item dans
a = workbooks.count, la value de a est toujour à 1 et non à 2.
J'ai tenter de ralentir la macro, ou d'attendre que la valeur du .count
passe à 2, mais c'es tlà que le deuxieme problème c'estposé.
Il semble que tant que la macro tourne, Excel n'ouvre plus d'autre objet.
Ceci est le premier problème....
Lorque j'ai crée une routine d'attente, personal.XLSB c'est méchamment
planté, jusqu'a demander cd'envoyer un rapport ches microsoft.
Depuis lors, Personal;xlsb ne s'ouvre plus en automatique. En manuel oui,
mais pas à l'ouverture d'un autre fichier excel.
Si quelqu'un à une idée pour le premier problème, je serai déjà plus que
content.
Merci d'avoir pris la peine de lire ce long enoncé, mais je crois ce
problème pas simple.
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
michdenis
Bonjour Michel,
Le but poursuivi par ta démarche n'est pas clair !
| Cependant, la macro ne demarrrant pas automatiquement, je l'ai demarrée | depuis une macro automatique à l'ouverture de personal.xlsb.
*** Tu peux utiliser la procédure événementielle du ThisWorkbook '----------------------- Private Sub Workbook_Open() 'Et tu appelles le nom de ta macro End Sub '---------------------------
Tu peux aussi dans un module standard, employer cette procédure : '----------------------------- Sub Auto_Run() 'Nom de la procédure à exécuter End sub '-----------------------------
Et si tu tiens mordicus à appeler ta procédure de ton fichier personal.xlsb Dans le ThisWorkbook de ce dernier :
'Cette macro va mettre 5 secondes à se déclencher après l'ouverture de ton fichier personal.xlsb, le temps que ton fichier s'ouvre. à toi ajuster le temps requis ! '----------------------- Private Sub Workbook_Open() Application.OnTime Now + TimeValue("00:00:05"), "MaMacro"
End Sub '---------------------------
Et dans un module standard de ton fichier personal.xlsb '-------------------------------------------------------- Sub MaMacro() Dim Wk As Workbook On Error Resume Next Set Wk = ActiveWorkbook If Err <> 0 Then MsgBox "Aucun classeur est actuellement ouvert!" Else Application.Run Wk.Name & "!Nom_De_La_Macro" End If End Sub '--------------------------------------------------------
Nom_De_La_Macro représente le nom de la macro dans ton fichier "X" que tu veux exécuter. Ta macro doit être situé dans un module standard.
"michel semal" a écrit dans le message de groupe de discussion : Bonjour à tous,
Deux problèmes dont le deuxième est la suite du premier (en fait le premier est la cause du second...)
J'ai une application qui ouvre un fichier Excel sans lui donner de nom. Je doit traiter ce fichier avec une macro. Comme ce fichier doit acceder à cette macro, je l'ai inscrite dans le fichier personal.xlsb. Cependant, la macro ne demarrrant pas automatiquement, je l'ai demarrée depuis une macro automatique à l'ouverture de personal.xlsb. Le problème est que lors du démarrage de excel, il ouvre dabord Personal.xlsb, puis l'objet excel demander par l'application. De ce fait, la macro en auto run ne trouve jamais le second Item dans a = workbooks.count, la value de a est toujour à 1 et non à 2. J'ai tenter de ralentir la macro, ou d'attendre que la valeur du .count passe à 2, mais c'es tlà que le deuxieme problème c'estposé. Il semble que tant que la macro tourne, Excel n'ouvre plus d'autre objet. Ceci est le premier problème.... Lorque j'ai crée une routine d'attente, personal.XLSB c'est méchamment planté, jusqu'a demander cd'envoyer un rapport ches microsoft. Depuis lors, Personal;xlsb ne s'ouvre plus en automatique. En manuel oui, mais pas à l'ouverture d'un autre fichier excel. Si quelqu'un à une idée pour le premier problème, je serai déjà plus que content.
Merci d'avoir pris la peine de lire ce long enoncé, mais je crois ce problème pas simple.
Bonne journée à tous -- michel
Bonjour Michel,
Le but poursuivi par ta démarche n'est pas clair !
| Cependant, la macro ne demarrrant pas automatiquement, je l'ai demarrée
| depuis une macro automatique à l'ouverture de personal.xlsb.
*** Tu peux utiliser la procédure événementielle du ThisWorkbook
'-----------------------
Private Sub Workbook_Open()
'Et tu appelles le nom de ta macro
End Sub
'---------------------------
Tu peux aussi dans un module standard, employer cette procédure :
'-----------------------------
Sub Auto_Run()
'Nom de la procédure à exécuter
End sub
'-----------------------------
Et si tu tiens mordicus à appeler ta procédure de ton fichier personal.xlsb
Dans le ThisWorkbook de ce dernier :
'Cette macro va mettre 5 secondes à se déclencher après l'ouverture
de ton fichier personal.xlsb, le temps que ton fichier s'ouvre.
à toi ajuster le temps requis !
'-----------------------
Private Sub Workbook_Open()
Application.OnTime Now + TimeValue("00:00:05"), "MaMacro"
End Sub
'---------------------------
Et dans un module standard de ton fichier personal.xlsb
'--------------------------------------------------------
Sub MaMacro()
Dim Wk As Workbook
On Error Resume Next
Set Wk = ActiveWorkbook
If Err <> 0 Then
MsgBox "Aucun classeur est actuellement ouvert!"
Else
Application.Run Wk.Name & "!Nom_De_La_Macro"
End If
End Sub
'--------------------------------------------------------
Nom_De_La_Macro représente le nom de la macro dans
ton fichier "X" que tu veux exécuter. Ta macro doit être situé dans un
module standard.
"michel semal" <michelsemal@discussions.microsoft.com> a écrit dans le message de groupe
de discussion : 696B5DE4-2422-4F28-BEB7-3509E5F2DB7A@microsoft.com...
Bonjour à tous,
Deux problèmes dont le deuxième est la suite du premier (en fait le premier
est la cause du second...)
J'ai une application qui ouvre un fichier Excel sans lui donner de nom. Je
doit traiter ce fichier avec une macro.
Comme ce fichier doit acceder à cette macro, je l'ai inscrite dans le
fichier personal.xlsb.
Cependant, la macro ne demarrrant pas automatiquement, je l'ai demarrée
depuis une macro automatique à l'ouverture de personal.xlsb.
Le problème est que lors du démarrage de excel, il ouvre dabord
Personal.xlsb, puis l'objet excel demander par l'application.
De ce fait, la macro en auto run ne trouve jamais le second Item dans
a = workbooks.count, la value de a est toujour à 1 et non à 2.
J'ai tenter de ralentir la macro, ou d'attendre que la valeur du .count
passe à 2, mais c'es tlà que le deuxieme problème c'estposé.
Il semble que tant que la macro tourne, Excel n'ouvre plus d'autre objet.
Ceci est le premier problème....
Lorque j'ai crée une routine d'attente, personal.XLSB c'est méchamment
planté, jusqu'a demander cd'envoyer un rapport ches microsoft.
Depuis lors, Personal;xlsb ne s'ouvre plus en automatique. En manuel oui,
mais pas à l'ouverture d'un autre fichier excel.
Si quelqu'un à une idée pour le premier problème, je serai déjà plus que
content.
Merci d'avoir pris la peine de lire ce long enoncé, mais je crois ce
problème pas simple.
Le but poursuivi par ta démarche n'est pas clair !
| Cependant, la macro ne demarrrant pas automatiquement, je l'ai demarrée | depuis une macro automatique à l'ouverture de personal.xlsb.
*** Tu peux utiliser la procédure événementielle du ThisWorkbook '----------------------- Private Sub Workbook_Open() 'Et tu appelles le nom de ta macro End Sub '---------------------------
Tu peux aussi dans un module standard, employer cette procédure : '----------------------------- Sub Auto_Run() 'Nom de la procédure à exécuter End sub '-----------------------------
Et si tu tiens mordicus à appeler ta procédure de ton fichier personal.xlsb Dans le ThisWorkbook de ce dernier :
'Cette macro va mettre 5 secondes à se déclencher après l'ouverture de ton fichier personal.xlsb, le temps que ton fichier s'ouvre. à toi ajuster le temps requis ! '----------------------- Private Sub Workbook_Open() Application.OnTime Now + TimeValue("00:00:05"), "MaMacro"
End Sub '---------------------------
Et dans un module standard de ton fichier personal.xlsb '-------------------------------------------------------- Sub MaMacro() Dim Wk As Workbook On Error Resume Next Set Wk = ActiveWorkbook If Err <> 0 Then MsgBox "Aucun classeur est actuellement ouvert!" Else Application.Run Wk.Name & "!Nom_De_La_Macro" End If End Sub '--------------------------------------------------------
Nom_De_La_Macro représente le nom de la macro dans ton fichier "X" que tu veux exécuter. Ta macro doit être situé dans un module standard.
"michel semal" a écrit dans le message de groupe de discussion : Bonjour à tous,
Deux problèmes dont le deuxième est la suite du premier (en fait le premier est la cause du second...)
J'ai une application qui ouvre un fichier Excel sans lui donner de nom. Je doit traiter ce fichier avec une macro. Comme ce fichier doit acceder à cette macro, je l'ai inscrite dans le fichier personal.xlsb. Cependant, la macro ne demarrrant pas automatiquement, je l'ai demarrée depuis une macro automatique à l'ouverture de personal.xlsb. Le problème est que lors du démarrage de excel, il ouvre dabord Personal.xlsb, puis l'objet excel demander par l'application. De ce fait, la macro en auto run ne trouve jamais le second Item dans a = workbooks.count, la value de a est toujour à 1 et non à 2. J'ai tenter de ralentir la macro, ou d'attendre que la valeur du .count passe à 2, mais c'es tlà que le deuxieme problème c'estposé. Il semble que tant que la macro tourne, Excel n'ouvre plus d'autre objet. Ceci est le premier problème.... Lorque j'ai crée une routine d'attente, personal.XLSB c'est méchamment planté, jusqu'a demander cd'envoyer un rapport ches microsoft. Depuis lors, Personal;xlsb ne s'ouvre plus en automatique. En manuel oui, mais pas à l'ouverture d'un autre fichier excel. Si quelqu'un à une idée pour le premier problème, je serai déjà plus que content.
Merci d'avoir pris la peine de lire ce long enoncé, mais je crois ce problème pas simple.
Bonne journée à tous -- michel
michel semal
Je viens de faire un premier test, et la fonction d'attente semble bien fonctionner.
Je teste plus loin (sur l'application qui demarre les excel)
Un grand merci déjà -- michel
"michdenis" a écrit :
Bonjour Michel,
Le but poursuivi par ta démarche n'est pas clair !
| Cependant, la macro ne demarrrant pas automatiquement, je l'ai demarrée | depuis une macro automatique à l'ouverture de personal.xlsb.
*** Tu peux utiliser la procédure événementielle du ThisWorkbook '----------------------- Private Sub Workbook_Open() 'Et tu appelles le nom de ta macro End Sub '---------------------------
Tu peux aussi dans un module standard, employer cette procédure : '----------------------------- Sub Auto_Run() 'Nom de la procédure à exécuter End sub '-----------------------------
Et si tu tiens mordicus à appeler ta procédure de ton fichier personal.xlsb Dans le ThisWorkbook de ce dernier :
'Cette macro va mettre 5 secondes à se déclencher après l'ouverture de ton fichier personal.xlsb, le temps que ton fichier s'ouvre. à toi ajuster le temps requis ! '----------------------- Private Sub Workbook_Open() Application.OnTime Now + TimeValue("00:00:05"), "MaMacro"
End Sub '---------------------------
Et dans un module standard de ton fichier personal.xlsb '-------------------------------------------------------- Sub MaMacro() Dim Wk As Workbook On Error Resume Next Set Wk = ActiveWorkbook If Err <> 0 Then MsgBox "Aucun classeur est actuellement ouvert!" Else Application.Run Wk.Name & "!Nom_De_La_Macro" End If End Sub '--------------------------------------------------------
Nom_De_La_Macro représente le nom de la macro dans ton fichier "X" que tu veux exécuter. Ta macro doit être situé dans un module standard.
"michel semal" a écrit dans le message de groupe de discussion : Bonjour à tous,
Deux problèmes dont le deuxième est la suite du premier (en fait le premier est la cause du second...)
J'ai une application qui ouvre un fichier Excel sans lui donner de nom. Je doit traiter ce fichier avec une macro. Comme ce fichier doit acceder à cette macro, je l'ai inscrite dans le fichier personal.xlsb. Cependant, la macro ne demarrrant pas automatiquement, je l'ai demarrée depuis une macro automatique à l'ouverture de personal.xlsb. Le problème est que lors du démarrage de excel, il ouvre dabord Personal.xlsb, puis l'objet excel demander par l'application. De ce fait, la macro en auto run ne trouve jamais le second Item dans a = workbooks.count, la value de a est toujour à 1 et non à 2. J'ai tenter de ralentir la macro, ou d'attendre que la valeur du .count passe à 2, mais c'es tlà que le deuxieme problème c'estposé. Il semble que tant que la macro tourne, Excel n'ouvre plus d'autre objet. Ceci est le premier problème.... Lorque j'ai crée une routine d'attente, personal.XLSB c'est méchamment planté, jusqu'a demander cd'envoyer un rapport ches microsoft. Depuis lors, Personal;xlsb ne s'ouvre plus en automatique. En manuel oui, mais pas à l'ouverture d'un autre fichier excel. Si quelqu'un à une idée pour le premier problème, je serai déjà plus que content.
Merci d'avoir pris la peine de lire ce long enoncé, mais je crois ce problème pas simple.
Bonne journée à tous -- michel
Je viens de faire un premier test, et la fonction d'attente semble bien
fonctionner.
Je teste plus loin (sur l'application qui demarre les excel)
Un grand merci déjà
--
michel
"michdenis" a écrit :
Bonjour Michel,
Le but poursuivi par ta démarche n'est pas clair !
| Cependant, la macro ne demarrrant pas automatiquement, je l'ai demarrée
| depuis une macro automatique à l'ouverture de personal.xlsb.
*** Tu peux utiliser la procédure événementielle du ThisWorkbook
'-----------------------
Private Sub Workbook_Open()
'Et tu appelles le nom de ta macro
End Sub
'---------------------------
Tu peux aussi dans un module standard, employer cette procédure :
'-----------------------------
Sub Auto_Run()
'Nom de la procédure à exécuter
End sub
'-----------------------------
Et si tu tiens mordicus à appeler ta procédure de ton fichier personal.xlsb
Dans le ThisWorkbook de ce dernier :
'Cette macro va mettre 5 secondes à se déclencher après l'ouverture
de ton fichier personal.xlsb, le temps que ton fichier s'ouvre.
à toi ajuster le temps requis !
'-----------------------
Private Sub Workbook_Open()
Application.OnTime Now + TimeValue("00:00:05"), "MaMacro"
End Sub
'---------------------------
Et dans un module standard de ton fichier personal.xlsb
'--------------------------------------------------------
Sub MaMacro()
Dim Wk As Workbook
On Error Resume Next
Set Wk = ActiveWorkbook
If Err <> 0 Then
MsgBox "Aucun classeur est actuellement ouvert!"
Else
Application.Run Wk.Name & "!Nom_De_La_Macro"
End If
End Sub
'--------------------------------------------------------
Nom_De_La_Macro représente le nom de la macro dans
ton fichier "X" que tu veux exécuter. Ta macro doit être situé dans un
module standard.
"michel semal" <michelsemal@discussions.microsoft.com> a écrit dans le message de groupe
de discussion : 696B5DE4-2422-4F28-BEB7-3509E5F2DB7A@microsoft.com...
Bonjour à tous,
Deux problèmes dont le deuxième est la suite du premier (en fait le premier
est la cause du second...)
J'ai une application qui ouvre un fichier Excel sans lui donner de nom. Je
doit traiter ce fichier avec une macro.
Comme ce fichier doit acceder à cette macro, je l'ai inscrite dans le
fichier personal.xlsb.
Cependant, la macro ne demarrrant pas automatiquement, je l'ai demarrée
depuis une macro automatique à l'ouverture de personal.xlsb.
Le problème est que lors du démarrage de excel, il ouvre dabord
Personal.xlsb, puis l'objet excel demander par l'application.
De ce fait, la macro en auto run ne trouve jamais le second Item dans
a = workbooks.count, la value de a est toujour à 1 et non à 2.
J'ai tenter de ralentir la macro, ou d'attendre que la valeur du .count
passe à 2, mais c'es tlà que le deuxieme problème c'estposé.
Il semble que tant que la macro tourne, Excel n'ouvre plus d'autre objet.
Ceci est le premier problème....
Lorque j'ai crée une routine d'attente, personal.XLSB c'est méchamment
planté, jusqu'a demander cd'envoyer un rapport ches microsoft.
Depuis lors, Personal;xlsb ne s'ouvre plus en automatique. En manuel oui,
mais pas à l'ouverture d'un autre fichier excel.
Si quelqu'un à une idée pour le premier problème, je serai déjà plus que
content.
Merci d'avoir pris la peine de lire ce long enoncé, mais je crois ce
problème pas simple.
Je viens de faire un premier test, et la fonction d'attente semble bien fonctionner.
Je teste plus loin (sur l'application qui demarre les excel)
Un grand merci déjà -- michel
"michdenis" a écrit :
Bonjour Michel,
Le but poursuivi par ta démarche n'est pas clair !
| Cependant, la macro ne demarrrant pas automatiquement, je l'ai demarrée | depuis une macro automatique à l'ouverture de personal.xlsb.
*** Tu peux utiliser la procédure événementielle du ThisWorkbook '----------------------- Private Sub Workbook_Open() 'Et tu appelles le nom de ta macro End Sub '---------------------------
Tu peux aussi dans un module standard, employer cette procédure : '----------------------------- Sub Auto_Run() 'Nom de la procédure à exécuter End sub '-----------------------------
Et si tu tiens mordicus à appeler ta procédure de ton fichier personal.xlsb Dans le ThisWorkbook de ce dernier :
'Cette macro va mettre 5 secondes à se déclencher après l'ouverture de ton fichier personal.xlsb, le temps que ton fichier s'ouvre. à toi ajuster le temps requis ! '----------------------- Private Sub Workbook_Open() Application.OnTime Now + TimeValue("00:00:05"), "MaMacro"
End Sub '---------------------------
Et dans un module standard de ton fichier personal.xlsb '-------------------------------------------------------- Sub MaMacro() Dim Wk As Workbook On Error Resume Next Set Wk = ActiveWorkbook If Err <> 0 Then MsgBox "Aucun classeur est actuellement ouvert!" Else Application.Run Wk.Name & "!Nom_De_La_Macro" End If End Sub '--------------------------------------------------------
Nom_De_La_Macro représente le nom de la macro dans ton fichier "X" que tu veux exécuter. Ta macro doit être situé dans un module standard.
"michel semal" a écrit dans le message de groupe de discussion : Bonjour à tous,
Deux problèmes dont le deuxième est la suite du premier (en fait le premier est la cause du second...)
J'ai une application qui ouvre un fichier Excel sans lui donner de nom. Je doit traiter ce fichier avec une macro. Comme ce fichier doit acceder à cette macro, je l'ai inscrite dans le fichier personal.xlsb. Cependant, la macro ne demarrrant pas automatiquement, je l'ai demarrée depuis une macro automatique à l'ouverture de personal.xlsb. Le problème est que lors du démarrage de excel, il ouvre dabord Personal.xlsb, puis l'objet excel demander par l'application. De ce fait, la macro en auto run ne trouve jamais le second Item dans a = workbooks.count, la value de a est toujour à 1 et non à 2. J'ai tenter de ralentir la macro, ou d'attendre que la valeur du .count passe à 2, mais c'es tlà que le deuxieme problème c'estposé. Il semble que tant que la macro tourne, Excel n'ouvre plus d'autre objet. Ceci est le premier problème.... Lorque j'ai crée une routine d'attente, personal.XLSB c'est méchamment planté, jusqu'a demander cd'envoyer un rapport ches microsoft. Depuis lors, Personal;xlsb ne s'ouvre plus en automatique. En manuel oui, mais pas à l'ouverture d'un autre fichier excel. Si quelqu'un à une idée pour le premier problème, je serai déjà plus que content.
Merci d'avoir pris la peine de lire ce long enoncé, mais je crois ce problème pas simple.