Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/08/2011, 09h29   #1
Membre habitué
 
Homme Mathieu R
Etudiant MIAGe
Inscription : février 2010
Messages : 145
Détails du profil
Informations personnelles :
Nom : Homme Mathieu R
Âge : 22
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Etudiant MIAGe
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2010
Messages : 145
Points : 141
Points : 141
Par défaut Message d'erreur lors du lancement d'une macro contenue dans un module

Salut à tous.

Dans un formulaire, j'ai un bouton qui fait appel a un module. Ce module me permet d'importer des données depuis Excel.
J'ai donc activé les références pour pouvoir utiliser le VB liés à Excel.

Quand je lance ma macro, une fois sur deux j'ai le message
"Erreur 462, le serveur distant distant n'existe pas ou n'est pas disponible"

J'ai recherché sur le forum des Threads correspondants à ce probleme et j'ai tenté de le résoudre, mais sans résultats jusqu'a présent.

Voila comment je déclare mes variables en début de programme :
Code :
1
2
3
4
5
Set App = New Excel.Application
App.Visible = False
wb = OuvrirUnFichier(Application.hWndAccessApp, "Parcourir", 1, "Fichier Excel")
Set Wkb = App.Workbooks.Open(wb)
Set WSht = Wkb.Worksheets("SIF")
Et voila la fin de mon module :
Code :
1
2
3
4
5
6
7
8
9
10
11
ActiveWorkbook.SaveAs "Evolution_" & WbName
DoCmd.SetWarnings True
'Timer for execution duration
sngChrono = Timer - sngChrono
MsgBox "Execution Time : " & CStr(sngChrono) & " s. " & CStr(sngChrono / 60) & "m"
'Last message
MsgBox ("End of Importation")
'Kill Excel.exe process
TermProcess "EXCEL.EXE"
Forms![Summary]!PBImport.Visible = False
End Sub
La fonction termProcess permet de terminer le processus Excel.

Merci d'avance de votre aide !
__________________
Qui ne tente rien, ne tente rien !
Tydher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2011, 09h56   #2
Responsable Access
 
Avatar de Arkham46
 
Inscription : septembre 2003
Messages : 4 300
Détails du profil
Informations personnelles :
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2003
Messages : 4 300
Points : 7 939
Points : 7 939
bjr,

Citation:
Envoyé par Tydher Voir le message
[...]une fois sur deux j'ai le message
une fois sur deux c'est souvent signe d'un problème de process qui ne se ferme pas

Citation:
Envoyé par Tydher Voir le message
La fonction termProcess permet de terminer le processus Excel.
et effectivement tu ne devrais pas à avoir à forcer l'arrêt d'excel
(en plus si l'utilisateur a un fichier excel ouvert non sauvegardé c'est pas de chance pour lui...)

il faut bien écrire le code d'accès à excel pour éviter que le process ne reste ouvert
il y a beaucoup de discussions sur le forum sur le sujet
principalement il faut :
1 - éviter d'appeler directement des objets excel sans préciser l'objet parent
il arrive souvent qu'on laisse une référence directe à une cellule dans un paramètre, par exemple :
Code :
WSht.Range("A1").Copy Range("B1")
à remplacer par :
Code :
WSht.Range("A1").Copy WSht.Range("B1")

2 - fermer proprement le classeur sans laisser une boîte de dialogue de confirmation :
- on peut éventuellement laisser l'appli excel visible le temps de vérifier qu'il n'y a pas de boîtes de dialogue ouverte qui bloquerait la fermeture du classeur)
- et on peut mettre DisplayAlerts à False pour éviter justement ces boîtes de message (la réponse par défaut sera automtiquement validée)
__________________
Assistant de création/modification de rubans Office
Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL

Blog Office Mon Site DVP
Arkham46 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 24/08/2011, 10h07   #3
Membre habitué
 
Homme Mathieu R
Etudiant MIAGe
Inscription : février 2010
Messages : 145
Détails du profil
Informations personnelles :
Nom : Homme Mathieu R
Âge : 22
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Etudiant MIAGe
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2010
Messages : 145
Points : 141
Points : 141
Merci de ta réponse.

Je vais donc reparcourir entierement ma macro et voir si j'ai bien écrit toutes les références.
Je pensais que cela venait juste du fait je n'utilisais pas la bonne syntaxe ou les bonnes formules pour terminer ma macro.

Je regarde ce que je peux modifier et je reposte dans quelques temps !
__________________
Qui ne tente rien, ne tente rien !
Tydher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2011, 14h29   #4
Membre habitué
 
Homme Mathieu R
Etudiant MIAGe
Inscription : février 2010
Messages : 145
Détails du profil
Informations personnelles :
Nom : Homme Mathieu R
Âge : 22
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Etudiant MIAGe
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2010
Messages : 145
Points : 141
Points : 141
En effet, après avoir re-parcouru tout mon code, et en modifiant telle que tu me la expliqué, je n'ai plus le message d'erreur une fois sur deux.

Merci beaucoup !
__________________
Qui ne tente rien, ne tente rien !
Tydher est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h52.


 
 
 
 
Partenaires

Hébergement Web