Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

personal.xls.....

2 réponses
Avatar
michel semal
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

2 réponses

Avatar
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
Avatar
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