OVH Cloud OVH Cloud

Shell ne fonctionne pas

10 réponses
Avatar
Piotr
Bonjour,

Je tente d'ouvrir une feuille Excel à partir d'Access. J'utilise pour cela
la fonction "Shell", mais elle refuse de se lancer.
Les instructions :
Dim appxls1
appxls1 = Shell("C:\Mes Documents\XXX1.xls", vbNormalFocus)
Il m'indique "Erreur d'exécution '53', fichier introuvable", alors que le
fichier existe : j'ai testé "C:\Mes Documents\XXX1.xls" en ligne de commande
et cela fonctionne. J'ai testé avec "C:\MesDoc~1\XXX1.xls", le message
d'erreur devient "Erreur d'exécution '5', Argument ou appel de procédure
incorrect".

Si quelqu'un a une piste ...

NB : je suis sous W98 SE, avec Excel et Access 97.

Merci d'avance.
Pierre JAGUT

10 réponses

Avatar
Jessy Sempere [MVP]
Bonjour

C'est à cause de l'espace que tu as dans "mes documents"
Essais :
Shell "Excel.exe " & """C:Mes DocumentsXXX1.xls""", vbNormalFocus

PS : Tu n'est pas obligé de passer par une variable objet, on utilise
une variable objet pour ouvrir un fichier Excel de la açon suivante :
http://access.jessy.free.fr/index.html?Menu=7&Page=OpenFileExcel

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Piotr" a écrit dans le message news:
bsbnen$hv1$
Bonjour,

Je tente d'ouvrir une feuille Excel à partir d'Access. J'utilise pour cela
la fonction "Shell", mais elle refuse de se lancer.
Les instructions :
Dim appxls1
appxls1 = Shell("C:Mes DocumentsXXX1.xls", vbNormalFocus)
Il m'indique "Erreur d'exécution '53', fichier introuvable", alors que le
fichier existe : j'ai testé "C:Mes DocumentsXXX1.xls" en ligne de
commande

et cela fonctionne. J'ai testé avec "C:MesDoc~1XXX1.xls", le message
d'erreur devient "Erreur d'exécution '5', Argument ou appel de procédure
incorrect".

Si quelqu'un a une piste ...

NB : je suis sous W98 SE, avec Excel et Access 97.

Merci d'avance.
Pierre JAGUT




Avatar
Sweety
Essayez éventuellement

Dim appxls1 As String
Call Shell(appxls1, vbNormalFocus)
...


"Piotr" a écrit dans le message de news:
bsbnen$hv1$
Bonjour,

Je tente d'ouvrir une feuille Excel à partir d'Access. J'utilise pour cela
la fonction "Shell", mais elle refuse de se lancer.
Les instructions :
Dim appxls1
appxls1 = Shell("C:Mes DocumentsXXX1.xls", vbNormalFocus)
Il m'indique "Erreur d'exécution '53', fichier introuvable", alors que le
fichier existe : j'ai testé "C:Mes DocumentsXXX1.xls" en ligne de
commande

et cela fonctionne. J'ai testé avec "C:MesDoc~1XXX1.xls", le message
d'erreur devient "Erreur d'exécution '5', Argument ou appel de procédure
incorrect".

Si quelqu'un a une piste ...

NB : je suis sous W98 SE, avec Excel et Access 97.

Merci d'avance.
Pierre JAGUT




Avatar
Piotr
Merci Jessy,

Je suis en train d'essayer ta fonction OpenFileExcel. Je l'ai mise dans le
module du formulaire, avec "public" devant, et je l'appelle avec appcls1 OpenFileExcel(...). Access me met une erreur à l'exécution : "Erreur de
compilation : Type défini par l'utilisateur non défini" en surlignant "Dim
appXl As Excel.Application". Je suppose que je doit déclarer l'application
Excel quelque part, mais je ne sais pas où. Peux-tu m'aider ...

Merci d'avance.
Pierre.


"Jessy Sempere [MVP]" a écrit dans le message de
news:bsbns4$kl8$
Bonjour

C'est à cause de l'espace que tu as dans "mes documents"
Essais :
Shell "Excel.exe " & """C:Mes DocumentsXXX1.xls""", vbNormalFocus

PS : Tu n'est pas obligé de passer par une variable objet, on utilise
une variable objet pour ouvrir un fichier Excel de la açon suivante :
http://access.jessy.free.fr/index.html?Menu=7&Page=OpenFileExcel

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Piotr" a écrit dans le message news:
bsbnen$hv1$
Bonjour,

Je tente d'ouvrir une feuille Excel à partir d'Access. J'utilise pour
cela


la fonction "Shell", mais elle refuse de se lancer.
Les instructions :
Dim appxls1
appxls1 = Shell("C:Mes DocumentsXXX1.xls", vbNormalFocus)
Il m'indique "Erreur d'exécution '53', fichier introuvable", alors que
le


fichier existe : j'ai testé "C:Mes DocumentsXXX1.xls" en ligne de
commande

et cela fonctionne. J'ai testé avec "C:MesDoc~1XXX1.xls", le message
d'erreur devient "Erreur d'exécution '5', Argument ou appel de procédure
incorrect".

Si quelqu'un a une piste ...

NB : je suis sous W98 SE, avec Excel et Access 97.

Merci d'avance.
Pierre JAGUT








Avatar
Jessy Sempere [MVP]
Oui, il faut rajouter la référence :
"Microsoft Excel x.0 Object Library"

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Piotr" a écrit dans le message news:
bsbpj2$j1f$
Merci Jessy,

Je suis en train d'essayer ta fonction OpenFileExcel. Je l'ai mise dans le
module du formulaire, avec "public" devant, et je l'appelle avec appcls1 > OpenFileExcel(...). Access me met une erreur à l'exécution : "Erreur de
compilation : Type défini par l'utilisateur non défini" en surlignant "Dim
appXl As Excel.Application". Je suppose que je doit déclarer l'application
Excel quelque part, mais je ne sais pas où. Peux-tu m'aider ...

Merci d'avance.
Pierre.


"Jessy Sempere [MVP]" a écrit dans le message
de

news:bsbns4$kl8$
Bonjour

C'est à cause de l'espace que tu as dans "mes documents"
Essais :
Shell "Excel.exe " & """C:Mes DocumentsXXX1.xls""", vbNormalFocus

PS : Tu n'est pas obligé de passer par une variable objet, on utilise
une variable objet pour ouvrir un fichier Excel de la açon suivante :
http://access.jessy.free.fr/index.html?Menu=7&Page=OpenFileExcel

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Piotr" a écrit dans le message news:
bsbnen$hv1$
Bonjour,

Je tente d'ouvrir une feuille Excel à partir d'Access. J'utilise pour
cela


la fonction "Shell", mais elle refuse de se lancer.
Les instructions :
Dim appxls1
appxls1 = Shell("C:Mes DocumentsXXX1.xls", vbNormalFocus)
Il m'indique "Erreur d'exécution '53', fichier introuvable", alors que
le


fichier existe : j'ai testé "C:Mes DocumentsXXX1.xls" en ligne de
commande

et cela fonctionne. J'ai testé avec "C:MesDoc~1XXX1.xls", le message
d'erreur devient "Erreur d'exécution '5', Argument ou appel de
procédure



incorrect".

Si quelqu'un a une piste ...

NB : je suis sous W98 SE, avec Excel et Access 97.

Merci d'avance.
Pierre JAGUT












Avatar
Piotr
Merci,

Je viens de le faire : ça fonctionne.
J'ai une macro "Auto_Open" dans cette feuille. Elle ne s'exécute pas à
l'ouverture. J'ai donc ajouté une ligne à ta fonction :
.run ("Auto_Open"), mais il me met une erreur en indiquant qu'il ne trouve
pas la macro, alors qu'il l'a exécutée. Bref, ça fonctionne, mais le retour
n'est pas "propre".
Je continuerai cela plus tard : il faut que je parte faire les dernières
courses de Noël.

Merci beaucoup Jessy.
Et bon Noël.

Pierre.

"Jessy Sempere [MVP]" a écrit dans le message de
news:bsbta9$njv$
Oui, il faut rajouter la référence :
"Microsoft Excel x.0 Object Library"

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Piotr" a écrit dans le message news:
bsbpj2$j1f$
Merci Jessy,

Je suis en train d'essayer ta fonction OpenFileExcel. Je l'ai mise dans
le


module du formulaire, avec "public" devant, et je l'appelle avec appcls1
OpenFileExcel(...). Access me met une erreur à l'exécution : "Erreur de
compilation : Type défini par l'utilisateur non défini" en surlignant
"Dim


appXl As Excel.Application". Je suppose que je doit déclarer
l'application


Excel quelque part, mais je ne sais pas où. Peux-tu m'aider ...

Merci d'avance.
Pierre.


"Jessy Sempere [MVP]" a écrit dans le
message


de
news:bsbns4$kl8$
Bonjour

C'est à cause de l'espace que tu as dans "mes documents"
Essais :
Shell "Excel.exe " & """C:Mes DocumentsXXX1.xls""", vbNormalFocus

PS : Tu n'est pas obligé de passer par une variable objet, on utilise
une variable objet pour ouvrir un fichier Excel de la açon suivante :
http://access.jessy.free.fr/index.html?Menu=7&Page=OpenFileExcel

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Piotr" a écrit dans le message news:
bsbnen$hv1$
Bonjour,

Je tente d'ouvrir une feuille Excel à partir d'Access. J'utilise
pour




cela
la fonction "Shell", mais elle refuse de se lancer.
Les instructions :
Dim appxls1
appxls1 = Shell("C:Mes DocumentsXXX1.xls", vbNormalFocus)
Il m'indique "Erreur d'exécution '53', fichier introuvable", alors
que




le
fichier existe : j'ai testé "C:Mes DocumentsXXX1.xls" en ligne de
commande

et cela fonctionne. J'ai testé avec "C:MesDoc~1XXX1.xls", le
message




d'erreur devient "Erreur d'exécution '5', Argument ou appel de
procédure



incorrect".

Si quelqu'un a une piste ...

NB : je suis sous W98 SE, avec Excel et Access 97.

Merci d'avance.
Pierre JAGUT
















Avatar
Piotr
Bonjour,

Pour continuer avec mon problème :
J'utilise la fonction de Jessy pour lancer Excel à partir d'Access. J'y ai
ajouté une ligne pour qu'une macro Excel soit exécutée à l'ouverture du
classeur. Voilà ce que donne la fonction :

Public Function OpenFileExcel(strFile As String)

Dim appXl As Excel.Application
Dim resumac 'ajouté

Set appXl = CreateObject("Excel.Application")

With appXl
.Workbooks.Open strFile
.Visible = True
End With
resumac = appXl.Run("MeF_GC_tmp") 'ajouté

Set appXl = Nothing

End Function

Il exécute bien les instructions, à savoir :
- il ouvre le classeur,
- un fois ouvert, il exécute la macro
Mais de retour vers Access, le message d'erreur suivant s'affiche :
"Erreur d'exécution '440' : La méthode 'Run' de l'objet '_Application' a
échoué". Au débugage, il pointe sur la ligne ajoutée appelant la macro
MeF_GC_tmp.

Je pense à quelque chose : au sein de la macro MeF_GC_tmp, le classeur qui
contient cette macro est fermé (dernière instruction, juste avant la fin).
Cela peut-il être la raison du problème du retour vers Access ?
Je vais faire des essais de mon côté, mais si vous avez une idée, dites-le
moi ...

Merci d'avance.
Pierre.


"Piotr" a écrit dans le message de
news:bsbufb$l07$
Merci,

Je viens de le faire : ça fonctionne.
J'ai une macro "Auto_Open" dans cette feuille. Elle ne s'exécute pas à
l'ouverture. J'ai donc ajouté une ligne à ta fonction :
.run ("Auto_Open"), mais il me met une erreur en indiquant qu'il ne trouve
pas la macro, alors qu'il l'a exécutée. Bref, ça fonctionne, mais le
retour

n'est pas "propre".
Je continuerai cela plus tard : il faut que je parte faire les dernières
courses de Noël.

Merci beaucoup Jessy.
Et bon Noël.

Pierre.

"Jessy Sempere [MVP]" a écrit dans le message
de

news:bsbta9$njv$
Oui, il faut rajouter la référence :
"Microsoft Excel x.0 Object Library"

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Piotr" a écrit dans le message news:
bsbpj2$j1f$
Merci Jessy,

Je suis en train d'essayer ta fonction OpenFileExcel. Je l'ai mise
dans



le
module du formulaire, avec "public" devant, et je l'appelle avec
appcls1



OpenFileExcel(...). Access me met une erreur à l'exécution : "Erreur
de




compilation : Type défini par l'utilisateur non défini" en surlignant
"Dim


appXl As Excel.Application". Je suppose que je doit déclarer
l'application


Excel quelque part, mais je ne sais pas où. Peux-tu m'aider ...

Merci d'avance.
Pierre.


"Jessy Sempere [MVP]" a écrit dans le
message


de
news:bsbns4$kl8$
Bonjour

C'est à cause de l'espace que tu as dans "mes documents"
Essais :
Shell "Excel.exe " & """C:Mes DocumentsXXX1.xls""", vbNormalFocus

PS : Tu n'est pas obligé de passer par une variable objet, on
utilise




une variable objet pour ouvrir un fichier Excel de la açon suivante
:




http://access.jessy.free.fr/index.html?Menu=7&Page=OpenFileExcel

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Piotr" a écrit dans le message news:
bsbnen$hv1$
Bonjour,

Je tente d'ouvrir une feuille Excel à partir d'Access. J'utilise
pour




cela
la fonction "Shell", mais elle refuse de se lancer.
Les instructions :
Dim appxls1
appxls1 = Shell("C:Mes DocumentsXXX1.xls", vbNormalFocus)
Il m'indique "Erreur d'exécution '53', fichier introuvable", alors
que




le
fichier existe : j'ai testé "C:Mes DocumentsXXX1.xls" en ligne
de





commande
et cela fonctionne. J'ai testé avec "C:MesDoc~1XXX1.xls", le
message




d'erreur devient "Erreur d'exécution '5', Argument ou appel de
procédure



incorrect".

Si quelqu'un a une piste ...

NB : je suis sous W98 SE, avec Excel et Access 97.

Merci d'avance.
Pierre JAGUT




















Avatar
Piotr
Re-bonjour,

J'apporte la réponse à ma question : si je ne ferme pas le classeur dans la
macro MeF_GC_tmp, le retour s'effectue sans erreur.
La parade : avant l'exécution de la macro dans le code Access, j'ai ajouté
l'instruction "On error resume next", ce qui me permet de fermer le classeur
sans générer d'erreur.

Ce que je ne sais pas, c'est si cette instruction se limite à la ligne
suivante, à la fonction active ou à l'ensemble du module du formulaire,
voire à l'ensemble des codes VB de l'application. Et si elle a une portée
large, je ne sais pas comment "réactiver" les messages d'erreurs.
Si quelqu'un a conseil à me donner, je suis preneur.

Bonne journée.
Pierre.

"Piotr" a écrit dans le message de
news:bsopvi$gf2$
Bonjour,

Pour continuer avec mon problème :
J'utilise la fonction de Jessy pour lancer Excel à partir d'Access. J'y ai
ajouté une ligne pour qu'une macro Excel soit exécutée à l'ouverture du
classeur. Voilà ce que donne la fonction :

Public Function OpenFileExcel(strFile As String)

Dim appXl As Excel.Application
Dim resumac 'ajouté

Set appXl = CreateObject("Excel.Application")

With appXl
.Workbooks.Open strFile
.Visible = True
End With
resumac = appXl.Run("MeF_GC_tmp") 'ajouté

Set appXl = Nothing

End Function

Il exécute bien les instructions, à savoir :
- il ouvre le classeur,
- un fois ouvert, il exécute la macro
Mais de retour vers Access, le message d'erreur suivant s'affiche :
"Erreur d'exécution '440' : La méthode 'Run' de l'objet '_Application' a
échoué". Au débugage, il pointe sur la ligne ajoutée appelant la macro
MeF_GC_tmp.

Je pense à quelque chose : au sein de la macro MeF_GC_tmp, le classeur qui
contient cette macro est fermé (dernière instruction, juste avant la fin).
Cela peut-il être la raison du problème du retour vers Access ?
Je vais faire des essais de mon côté, mais si vous avez une idée, dites-le
moi ...

Merci d'avance.
Pierre.


"Piotr" a écrit dans le message de
news:bsbufb$l07$
Merci,

Je viens de le faire : ça fonctionne.
J'ai une macro "Auto_Open" dans cette feuille. Elle ne s'exécute pas à
l'ouverture. J'ai donc ajouté une ligne à ta fonction :
.run ("Auto_Open"), mais il me met une erreur en indiquant qu'il ne
trouve


pas la macro, alors qu'il l'a exécutée. Bref, ça fonctionne, mais le
retour

n'est pas "propre".
Je continuerai cela plus tard : il faut que je parte faire les dernières
courses de Noël.

Merci beaucoup Jessy.
Et bon Noël.

Pierre.

"Jessy Sempere [MVP]" a écrit dans le
message


de
news:bsbta9$njv$
Oui, il faut rajouter la référence :
"Microsoft Excel x.0 Object Library"

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Piotr" a écrit dans le message news:
bsbpj2$j1f$
Merci Jessy,

Je suis en train d'essayer ta fonction OpenFileExcel. Je l'ai mise
dans



le
module du formulaire, avec "public" devant, et je l'appelle avec
appcls1



OpenFileExcel(...). Access me met une erreur à l'exécution : "Erreur
de





compilation : Type défini par l'utilisateur non défini" en
surlignant




"Dim
appXl As Excel.Application". Je suppose que je doit déclarer
l'application


Excel quelque part, mais je ne sais pas où. Peux-tu m'aider ...

Merci d'avance.
Pierre.


"Jessy Sempere [MVP]" a écrit dans le
message


de
news:bsbns4$kl8$
Bonjour

C'est à cause de l'espace que tu as dans "mes documents"
Essais :
Shell "Excel.exe " & """C:Mes DocumentsXXX1.xls""",
vbNormalFocus






PS : Tu n'est pas obligé de passer par une variable objet, on
utilise




une variable objet pour ouvrir un fichier Excel de la açon
suivante





:
http://access.jessy.free.fr/index.html?Menu=7&Page=OpenFileExcel

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Piotr" a écrit dans le message news:
bsbnen$hv1$
Bonjour,

Je tente d'ouvrir une feuille Excel à partir d'Access. J'utilise
pour




cela
la fonction "Shell", mais elle refuse de se lancer.
Les instructions :
Dim appxls1
appxls1 = Shell("C:Mes DocumentsXXX1.xls", vbNormalFocus)
Il m'indique "Erreur d'exécution '53', fichier introuvable",
alors






que
le
fichier existe : j'ai testé "C:Mes DocumentsXXX1.xls" en ligne
de





commande
et cela fonctionne. J'ai testé avec "C:MesDoc~1XXX1.xls", le
message




d'erreur devient "Erreur d'exécution '5', Argument ou appel de
procédure



incorrect".

Si quelqu'un a une piste ...

NB : je suis sous W98 SE, avec Excel et Access 97.

Merci d'avance.
Pierre JAGUT
























Avatar
J-Pierre
Bonjour,

L'instruction reste active jusqu'à ce que tu exécutes
on Error goto 0
J-Pierre

"Piotr" a écrit dans le message de news: bsoqmj$img$
Re-bonjour,

J'apporte la réponse à ma question : si je ne ferme pas le classeur dans la
macro MeF_GC_tmp, le retour s'effectue sans erreur.
La parade : avant l'exécution de la macro dans le code Access, j'ai ajouté
l'instruction "On error resume next", ce qui me permet de fermer le classeur
sans générer d'erreur.

Ce que je ne sais pas, c'est si cette instruction se limite à la ligne
suivante, à la fonction active ou à l'ensemble du module du formulaire,
voire à l'ensemble des codes VB de l'application. Et si elle a une portée
large, je ne sais pas comment "réactiver" les messages d'erreurs.
Si quelqu'un a conseil à me donner, je suis preneur.

Bonne journée.
Pierre.

"Piotr" a écrit dans le message de
news:bsopvi$gf2$
Bonjour,

Pour continuer avec mon problème :
J'utilise la fonction de Jessy pour lancer Excel à partir d'Access. J'y ai
ajouté une ligne pour qu'une macro Excel soit exécutée à l'ouverture du
classeur. Voilà ce que donne la fonction :

Public Function OpenFileExcel(strFile As String)

Dim appXl As Excel.Application
Dim resumac 'ajouté

Set appXl = CreateObject("Excel.Application")

With appXl
.Workbooks.Open strFile
.Visible = True
End With
resumac = appXl.Run("MeF_GC_tmp") 'ajouté

Set appXl = Nothing

End Function

Il exécute bien les instructions, à savoir :
- il ouvre le classeur,
- un fois ouvert, il exécute la macro
Mais de retour vers Access, le message d'erreur suivant s'affiche :
"Erreur d'exécution '440' : La méthode 'Run' de l'objet '_Application' a
échoué". Au débugage, il pointe sur la ligne ajoutée appelant la macro
MeF_GC_tmp.

Je pense à quelque chose : au sein de la macro MeF_GC_tmp, le classeur qui
contient cette macro est fermé (dernière instruction, juste avant la fin).
Cela peut-il être la raison du problème du retour vers Access ?
Je vais faire des essais de mon côté, mais si vous avez une idée, dites-le
moi ...

Merci d'avance.
Pierre.


"Piotr" a écrit dans le message de
news:bsbufb$l07$
Merci,

Je viens de le faire : ça fonctionne.
J'ai une macro "Auto_Open" dans cette feuille. Elle ne s'exécute pas à
l'ouverture. J'ai donc ajouté une ligne à ta fonction :
.run ("Auto_Open"), mais il me met une erreur en indiquant qu'il ne
trouve


pas la macro, alors qu'il l'a exécutée. Bref, ça fonctionne, mais le
retour

n'est pas "propre".
Je continuerai cela plus tard : il faut que je parte faire les dernières
courses de Noël.

Merci beaucoup Jessy.
Et bon Noël.

Pierre.

"Jessy Sempere [MVP]" a écrit dans le
message


de
news:bsbta9$njv$
Oui, il faut rajouter la référence :
"Microsoft Excel x.0 Object Library"

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Piotr" a écrit dans le message news:
bsbpj2$j1f$
Merci Jessy,

Je suis en train d'essayer ta fonction OpenFileExcel. Je l'ai mise
dans



le
module du formulaire, avec "public" devant, et je l'appelle avec
appcls1



OpenFileExcel(...). Access me met une erreur à l'exécution : "Erreur
de






compilation : Type défini par l'utilisateur non défini" en
surlignant




"Dim
appXl As Excel.Application". Je suppose que je doit déclarer
l'application


Excel quelque part, mais je ne sais pas où. Peux-tu m'aider ...

Merci d'avance.
Pierre.


"Jessy Sempere [MVP]" a écrit dans le
message


de
news:bsbns4$kl8$
Bonjour

C'est à cause de l'espace que tu as dans "mes documents"
Essais :
Shell "Excel.exe " & """C:Mes DocumentsXXX1.xls""",
vbNormalFocus






PS : Tu n'est pas obligé de passer par une variable objet, on
utilise




une variable objet pour ouvrir un fichier Excel de la açon
suivante





:
http://access.jessy.free.fr/index.html?Menu=7&Page=OpenFileExcel

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Piotr" a écrit dans le message news:
bsbnen$hv1$
Bonjour,

Je tente d'ouvrir une feuille Excel à partir d'Access. J'utilise
pour




cela
la fonction "Shell", mais elle refuse de se lancer.
Les instructions :
Dim appxls1
appxls1 = Shell("C:Mes DocumentsXXX1.xls", vbNormalFocus)
Il m'indique "Erreur d'exécution '53', fichier introuvable",
alors






que
le
fichier existe : j'ai testé "C:Mes DocumentsXXX1.xls" en ligne
de





commande
et cela fonctionne. J'ai testé avec "C:MesDoc~1XXX1.xls", le
message




d'erreur devient "Erreur d'exécution '5', Argument ou appel de
procédure



incorrect".

Si quelqu'un a une piste ...

NB : je suis sous W98 SE, avec Excel et Access 97.

Merci d'avance.
Pierre JAGUT





























Avatar
Piotr
C'est implanté.
Merci beaucoup à Jessy et J-Pierre.


"J-Pierre" a écrit dans le message de
news:
Bonjour,

L'instruction reste active jusqu'à ce que tu exécutes
on Error goto 0
J-Pierre

"Piotr" a écrit dans le message de news:
bsoqmj$img$

Re-bonjour,

J'apporte la réponse à ma question : si je ne ferme pas le classeur dans
la


macro MeF_GC_tmp, le retour s'effectue sans erreur.
La parade : avant l'exécution de la macro dans le code Access, j'ai
ajouté


l'instruction "On error resume next", ce qui me permet de fermer le
classeur


sans générer d'erreur.

Ce que je ne sais pas, c'est si cette instruction se limite à la ligne
suivante, à la fonction active ou à l'ensemble du module du formulaire,
voire à l'ensemble des codes VB de l'application. Et si elle a une
portée


large, je ne sais pas comment "réactiver" les messages d'erreurs.
Si quelqu'un a conseil à me donner, je suis preneur.

Bonne journée.
Pierre.

"Piotr" a écrit dans le message de
news:bsopvi$gf2$
Bonjour,

Pour continuer avec mon problème :
J'utilise la fonction de Jessy pour lancer Excel à partir d'Access.
J'y ai



ajouté une ligne pour qu'une macro Excel soit exécutée à l'ouverture
du



classeur. Voilà ce que donne la fonction :

Public Function OpenFileExcel(strFile As String)

Dim appXl As Excel.Application
Dim resumac 'ajouté

Set appXl = CreateObject("Excel.Application")

With appXl
.Workbooks.Open strFile
.Visible = True
End With
resumac = appXl.Run("MeF_GC_tmp") 'ajouté

Set appXl = Nothing

End Function

Il exécute bien les instructions, à savoir :
- il ouvre le classeur,
- un fois ouvert, il exécute la macro
Mais de retour vers Access, le message d'erreur suivant s'affiche :
"Erreur d'exécution '440' : La méthode 'Run' de l'objet '_Application'
a



échoué". Au débugage, il pointe sur la ligne ajoutée appelant la macro
MeF_GC_tmp.

Je pense à quelque chose : au sein de la macro MeF_GC_tmp, le classeur
qui



contient cette macro est fermé (dernière instruction, juste avant la
fin).



Cela peut-il être la raison du problème du retour vers Access ?
Je vais faire des essais de mon côté, mais si vous avez une idée,
dites-le



moi ...

Merci d'avance.
Pierre.


"Piotr" a écrit dans le message de
news:bsbufb$l07$
Merci,

Je viens de le faire : ça fonctionne.
J'ai une macro "Auto_Open" dans cette feuille. Elle ne s'exécute pas
à




l'ouverture. J'ai donc ajouté une ligne à ta fonction :
.run ("Auto_Open"), mais il me met une erreur en indiquant qu'il ne
trouve


pas la macro, alors qu'il l'a exécutée. Bref, ça fonctionne, mais le
retour

n'est pas "propre".
Je continuerai cela plus tard : il faut que je parte faire les
dernières




courses de Noël.

Merci beaucoup Jessy.
Et bon Noël.

Pierre.

"Jessy Sempere [MVP]" a écrit dans le
message


de
news:bsbta9$njv$
Oui, il faut rajouter la référence :
"Microsoft Excel x.0 Object Library"

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Piotr" a écrit dans le message news:
bsbpj2$j1f$
Merci Jessy,

Je suis en train d'essayer ta fonction OpenFileExcel. Je l'ai
mise






dans
le
module du formulaire, avec "public" devant, et je l'appelle avec
appcls1



OpenFileExcel(...). Access me met une erreur à l'exécution :
"Erreur










de
compilation : Type défini par l'utilisateur non défini" en
surlignant




"Dim
appXl As Excel.Application". Je suppose que je doit déclarer
l'application


Excel quelque part, mais je ne sais pas où. Peux-tu m'aider ...

Merci d'avance.
Pierre.


"Jessy Sempere [MVP]" a écrit dans
le






message
de
news:bsbns4$kl8$
Bonjour

C'est à cause de l'espace que tu as dans "mes documents"
Essais :
Shell "Excel.exe " & """C:Mes DocumentsXXX1.xls""",
vbNormalFocus






PS : Tu n'est pas obligé de passer par une variable objet, on
utilise




une variable objet pour ouvrir un fichier Excel de la açon
suivante





:

http://access.jessy.free.fr/index.html?Menu=7&Page=OpenFileExcel








@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Piotr" a écrit dans le message news:
bsbnen$hv1$
Bonjour,

Je tente d'ouvrir une feuille Excel à partir d'Access.
J'utilise








pour
cela
la fonction "Shell", mais elle refuse de se lancer.
Les instructions :
Dim appxls1
appxls1 = Shell("C:Mes DocumentsXXX1.xls",
vbNormalFocus)








Il m'indique "Erreur d'exécution '53', fichier introuvable",
alors






que
le
fichier existe : j'ai testé "C:Mes DocumentsXXX1.xls" en
ligne








de
commande
et cela fonctionne. J'ai testé avec "C:MesDoc~1XXX1.xls",
le








message
d'erreur devient "Erreur d'exécution '5', Argument ou appel
de








procédure
incorrect".

Si quelqu'un a une piste ...

NB : je suis sous W98 SE, avec Excel et Access 97.

Merci d'avance.
Pierre JAGUT


































Avatar
J-Pierre
Surtout à Jessy :-))))))))))