Ouvrir un fichier excel depuis un formulaire Access 2007

[Résolu/Fermé]
Signaler
Messages postés
3
Date d'inscription
mercredi 20 février 2013
Statut
Membre
Dernière intervention
24 juin 2013
-
 28012 -
Bonjour,
Je développe actuellement une application sous access2007 qui doit ouvrir un fichier Excel.
J'ai trouvé sur le forum le code qui va bien. Lorsque je lance la fonction depuis le module d'access ou depuis une macro cela fonctionne bien.
Par contre, si je lance cette macro depuis le bouton d'un formulaire je reçois une erreur d'exécution 5.

Ci-dessous le code
Function lanceexcel()
DoCmd.RunCommand acCmdAppMinimize
Dim xls As Excel.Application
nomfic = ""
On Error GoTo errhnd
Set bd = CurrentDb
Set trait = bd.OpenRecordset("paramètres")
nomfic = trait![chemincompletexcel]
Set xls = CreateObject("Excel.application")
xls.workbooks.Open nomfic
xls.Visible = True
DoCmd.RunCommand acCmdAppRestore
Set xls = Nothing
Exit Function
errhnd:
x = MsgBox("Erreur n° " & Err.Description, vbCritical, , Err.Source) = vbCancel

Quelqu'un peut il éclairer ma lanterne?

Merci d'avance

4 réponses

Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 177
Bonjour,
Normalement, un formulaire est ouvert en mode Modal.
Je ne connais pas suffisamment Access mais essaye en ouvrant le formulaire en mode Non Modale
Formulaire.Show 0

A+
Edit:
Autre possibilité, mettre la procédure dans un Module indépendant et dans le code du bouton faire appel à cette procédure.

Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
Messages postés
3
Date d'inscription
mercredi 20 février 2013
Statut
Membre
Dernière intervention
24 juin 2013

bonjour,
merci de ta réponse. J'ai trouvé la raison du message d'erreur.
En fait le fichier Excel que j'essaye d'ouvrir est aussi lié à ma base de données. Dans ma grande candeur, je pensais que celui-ci fonctionnait en mode partagé, apparemment ce n'est pas le cas. Par contre, ce que je ne comprend pas c'est que cela ait pu marcher sur mon PC. J'ai transporté l'appli sur d'autres machines et évidemment cela ne fonctionnait pas.
Pour une bonne compréhension, je me sert de ce fichier EXCEL pour récupérer des informations dans un autre fichier EXCEL et procéder à un premier nettoyage des données de mise en forme, non compatible avec mes besoins, et je voulais en faisant cela m'affranchir des problème de compatibilité de données avec Access lorsqu'on utilise des requêtes d'importation.
Sais tu s'il est possible de paramétrer EXCEL pour qu'il fonctionne en mode partagé?
Sinon, je vais réécrire mon code d'une manière différente.
A+
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 177
Re,
Ce que tu appel "mode partagé" est probablement un classeur avec liaisons vers autre(s) classeur(s).
Il faut...
1°) que les classeurs soient exactement avec même nom et même chemin d'accès.
2°) Dans les propriétés du classeur mettre les liaisons active (Cherche un peu)
Sinon explique exactement ce que tu appel "mode partagé" est-ce des cellules qui font référence à un autre classeur ?
A+
Bonjour,
En fait, pour moi, le mode partagé est celui dans lequel est ouvert ACCESS par défaut. Je m'explique :
seul l'enregistrement actif est bloqué, les autres sont accessibles par d'autres utilisateurs. Manifestement, ce n'est pas possible avec Excel. Dès qu'un lien est établi avec EXCEL, le fichier est verrouillé.
Pour info, dans cette appli je traite une extraction de fichier comptable afin de faire un synthèse. Cet extrait, au format Excel, présente deux inconvénients :
1 - il contient 4 lignes de présentation en entête et il est impossible dans l'état d'établir une liaison avec ma base Access,
2 - les champs débit et crédit n'ayant pas de valeur (par exemple, seulement une dépense sans recette, génère une cellule vide au niveau de la colonne crédit d' excel). Cet état de fait perturbe Access qui génère une erreur lorsque la table est attachée.
Donc, pour contourner le problème, à l'aide de mon fameux fichier Excel qui me posait problème, je récupère la feuille de l'extrait généré, je supprime les lignes d'entête et ensuite j'affecte la valeur 0 aux cellules vides.
Ensuite, le résultat est transféré dans ma base Access.
J'ai donc solutionné le problème en n'attachant ce fichier excel que lors de la procédure importation des données dans Access et je rompt la liaison à la fin.
En fait je n'en ai besoin qu'à ce moment.
Comme cela tout fonctionne.
Merci de ton aide et bon week end.