Pb instruction VBA ouverture Word

Résolu/Fermé
Zebulon97 Messages postés 47 Date d'inscription mardi 15 septembre 2009 Statut Membre Dernière intervention 26 novembre 2017 - 12 déc. 2013 à 17:28
Zebulon97 Messages postés 47 Date d'inscription mardi 15 septembre 2009 Statut Membre Dernière intervention 26 novembre 2017 - 13 déc. 2013 à 12:08
Bonjour,

Je rencontre un problème dans une instruction VBA. Jusqu'à présent en Office 2003 ou 2007, j'ouvrais Word et Excel avec l'instruction suivante :
Call Shell("""winword.exe"" ""\\srv2008\linea\Fichiers ACCESS 2000\Pack Consultation des entreprises\Entreprises non retenues.doc", 1).
Depuis que nous sommes passés en Office 2010 et 2013, cette instruction ne fonctionne plus. Access ne semble pas trouver Word ni Excel.
En passant par la commande exécuter du menu programme winword.exe ouvre bien Word.
J'utilise cette instruction car la base concernée est distribuée sur différents postes avec des OS différents XP, Seven donc des chemins d'accès à Office différents.
Si quelqu'un à une idée, je suis preneur.
Bonne fin d'après midi à tous, cordialement.
Zebulon
A voir également:

4 réponses

Bonsoir,
Voici ce qu'en dit le didacticiel VBA Access (F1), si ça peut t'aider:

Call, instruction, exemple
' Appelle une fonction intrinsèque. La valeur renvoyée par la fonction est abandonnée.
Call Shell(AppName, 1)
' AppName contient le chemin d'accès du fichier exécutable.


Bonne suite
0
Zebulon97 Messages postés 47 Date d'inscription mardi 15 septembre 2009 Statut Membre Dernière intervention 26 novembre 2017
13 déc. 2013 à 09:18
Bonjour tessel75,

Merci pour ta réponse.
Je l'ai testé, mais le problème persiste WINWORD.EXE renvoie fichier introuvable.
Si j'indique NOTEPAD.EXE l'exécutable est reconnu.
Je pense que WINWORD.EXE semble poser problème à ACCESS dans Office 2010 et 2013 et n'ouvre pas Word.
Cordialement.
0
Re..
Je pense que tu ne m'as pas compris. Moi je comprends de la remarque du didacticiel Access que la syntaxe est changée; il faudrait essayé en entrant:
Call Shell(" \\srv2008\linea\Fichiers ACCESS 2000\Pack Consultation des entreprises\Entreprises non retenues.doc", 1). 
Ou bien aller regarder dans les profondeurs de Office si MS n'a pas abandonné l'appellation "WinWord"
0
Zebulon97 Messages postés 47 Date d'inscription mardi 15 septembre 2009 Statut Membre Dernière intervention 26 novembre 2017
13 déc. 2013 à 12:08
On m'a fourni la solution.

dans un module existant, ajoutez cette déclaration avant toute autre déclaration de fonction ou de procédure :
________________________________________
Private Declare Function apiShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
________________________________________
Public Sub Open_WordFile(ByVal strPathFilePath)

Dim lngResult As Long

On Error GoTo GestError

lngResult = apiShellExecute(0, "open", strPathFilePath, vbNullChar, vbNullChar, 0)

Fin:
Exit Sub

GestError:
'Gestion d'erreur à définir
GoTo Fin

End Sub

Cela fonctionne.
Merci pour l'attention apportée à mon problème.
0