Problème d automation Access vers Excel : ActiveCell

vinke00 Messages postés 4 Date d'inscription dimanche 9 mai 2004 Statut Membre Dernière intervention 29 juillet 2004 - 29 juil. 2004 à 10:18
vinke00 Messages postés 4 Date d'inscription dimanche 9 mai 2004 Statut Membre Dernière intervention 29 juillet 2004 - 29 juil. 2004 à 15:01
Tout d'abord, bonjours tout le monde.
Voici mon problème ...

J'utilise une macro Access pour remplir un workbook Excel, jusque la pas de problème, tout marche bien.

Mais des que j'utilise 'ActiveCell' a la fermeture du fichier Excel j'ai une erreur : 'Votre formule contient une référence externe non valide.'

Ci ce n'étais que ça, ça serai pas grave, mais cette erreur empêche le process de ce fermer et par conséquent, ça fait planter mon application !

Donc je pense qu'il faudrait pouvoir fixer l'ActiveCell a nothing ou autre ... de manière a ce que le workbook ce ferme sans erreur.

Je sais que cette erreur apparais que quand j'utilise ActiveCell .. pcq ci je ne l'utilise pas et que je ferme mon appli. comme suis :

wbExcel.Close (True)
appExcel.Quit
Set wsExcel = Nothing
Set wbExcel = Nothing
Set appExcel = Nothing

le processus ce vide bien de la mémoire.
Alors que en utilisant ActiveCell et en fermant l'appli toujours de la même manière, l'erreur apparaît, la fenêtre et l'appli. Excel ce ferment bien ... mais le processus reste en mémoire !!!

J'ai essayé différant solution en désespoir de cause mais rien ne marche . . . .

ActiveCell.Address(Nothing, Nothing).Activate
ActiveCell.Range(Nothing).Activate
Set ActiveCell = Nothing

et j'en passe des pire et des meilleures . . . . .

Si quelqu'un pouvais avoir une idée ça serai sympa d'autant plus qu'il me faudrait régler ce problème assez rapidement puisque mon stage est bientôt fini . . . . .

Merci d'avance ... tcho tcho Vin-Ké

6 réponses

nebut Messages postés 49 Date d'inscription lundi 30 juin 2003 Statut Membre Dernière intervention 27 avril 2005
29 juil. 2004 à 11:10
je crois que ce message signifie qu'il te manque une référence.
as-tu ajouter la référence à excel?

Si non, pour ajouter une référence, tu fais outils --> références
là dedans tu coches la référence à Excel.
chez moi elle porte ce nom:
Microsoft Excel 11.0 Object Library

en éspérant que c'est çà!

nebut le miagiste
0
cs_PhilippeE Messages postés 437 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 10 août 2010 2
29 juil. 2004 à 13:45
Etant donné que ça fonctionne sans son ActiveCell donc ce n'est pas une histoire de référence cochée !!!

Par contre tu pourrais mettre quelques exemples d'utilisation de ActiveCell ???
Parce que dans tes exemples pour résoudre ton problème tu les utilises sans préfixe, et je dois t'avouer que ça me gêne énormément.
0
vinke00 Messages postés 4 Date d'inscription dimanche 9 mai 2004 Statut Membre Dernière intervention 29 juillet 2004
29 juil. 2004 à 13:46
Je viens de regarder mais j'ai bien toutes les référence, que ce soit dans ma base Access ou sur mon modèle de classeur Excel . . . j'ai même rajouter dans les références du classeur Excel : Microsoft Access au cas ou . . . . . mais non. Toujours pareil . . :=(
0
vinke00 Messages postés 4 Date d'inscription dimanche 9 mai 2004 Statut Membre Dernière intervention 29 juillet 2004
29 juil. 2004 à 13:52
Et sinon, pour l'utilisation de activecell, voisi un bout de mon code :

Call Ecrire_Ligne_Rapport(ActiveCell.Offset(1, 0).Address, "Titre sSQL", "Requête Chargement des données :", True)
Call Ecrire_Ligne_Rapport(ActiveCell.Offset(1, 0).Address, "sSQL", sSQL_Cut("SELECT", GetRequetes_sSQL), True)
Call Ecrire_Ligne_Rapport(ActiveCell.Offset(1, 0).Address, "sSQL", sSQL_Cut("FROM", GetRequetes_sSQL), True)
Call Ecrire_Ligne_Rapport(ActiveCell.Offset(1, 0).Address, "sSQL", sSQL_Cut("WHERE", GetRequetes_sSQL), True)
Call Ecrire_Ligne_Rapport(ActiveCell.Offset(1, 0).Address, "sSQL", "", True)

En fait je fait une génération de rapport automatique. donc je passe a ma fonction d'ecriture 'Ecrire_Ligne_Rapport' la cellule ou il doit écrire . . . . le tout marche tres bien, ca écrit tout bien, sauf que quand je ferme le dossier Excel, il ferme pas le processus ( a cause de cette erreur) j'en mettrai ma main a couper .. . .
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nebut Messages postés 49 Date d'inscription lundi 30 juin 2003 Statut Membre Dernière intervention 27 avril 2005
29 juil. 2004 à 14:21
j'ai déjà eu le même problème et
si tu ne trouve pas ton erreur tu peux tuer ton processus en utilisant la source suivante:

http://www.vbfrance.com/code.aspx?ID=2365

cela te permet de tuer un processus en cours.

dans l'appli que je faisais, j'ouvrais un classeur et l'utilisateur devait le fermer lui-même.
malheureusement, il y avait toujours un processus dans le gestionnaire des tâches.
pour éviter ca j'ai rajouter dans l'évènement close de mon classeur la fonction killprogram que tu trouveras dans cette source.

bon courage

nebut le miagiste
0
vinke00 Messages postés 4 Date d'inscription dimanche 9 mai 2004 Statut Membre Dernière intervention 29 juillet 2004
29 juil. 2004 à 15:01
Merci pour l'info, je vais encore essayer de chercher un peu pcq ça serai beaucoup plus pratique pour l'utilisateur . . . . sinon on passera a la manière forte. lol

Cela dit, ci quelqu'un a un autre point de vu a apporter, y a pas de problème, . . . . au contraire !
0
Rejoignez-nous