Bonjour,
Voici ma problématique (et ce n'est pas faute d'avoir cherché même si novice en développement VBA) :
J'ai développé un code sous Word faisant devant chercher dans un fichier excel si le nom d'un client figure bien dans la feuille qui a été spécifiée.
Pour cela, je fais appel à une fonction qui vient ouvrir le fichier excel, recherche l'existence ou non du nom du client dans la feuille Excel puis renvoie à Word le résultat de la recherche.
Le problème n'est pa d'obtenir le résultat de ma recherche. Le problème est, qu'à la fin de l'exécution de la fonction, l'application Excel qui a été ouverte (même si elle n'apparaît pas à l'affichage) ne se ferme pas, ce qui génère systématiquement une erreur lorsque je fais de nouveau appel à la fonction dans une boucle.
J'ai peut-être identifié la zone du code qui pose problème parce que lorsque je la supprime, l'application Excel initialement ouverte se ferme systématiquement à la sortie de la fonction.
Quelqu'un pourrait-il m'aider à recoder pour éviter la génération de l'erreur et permettre la fermeture de l'application Excel à la sortie de la fonction.
Merci de toute l'aide que je pourrais obtenir sur ce sujet.
Ci-dessous le code créé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 Public Function Verif_nom (NomClient As String) As String Rep_ref = "C:\Repertoire\" Fichier_ref= "Liste des clients.xls" Feuil = "Candidats" Set xlAppl = CreateObject("excel.application") Set exlFichier =xlAppl.Workbooks.Open (Rep_ref & Fichier_rf, ReadOnly:=True) 'Début du code qui apparemment pose problème Set exlRange = exlFichier.Worksheets(Feuil).Range("B5", Range("B5").SpecialCells(xlLastCell)) If Not (exlRange.Find(What:=NomClient, LookAt:=xlWhole)) Is Nothing Then ligne = exlRange.Find(What:=NomClient, LookAt:=xlWhole).Row colonne = exlRange.Find(What:=NomClient, LookAt:=xlWhole).Column Verif_nom = "Client" Else Verif_nom = "Inconnu" End If 'Fin du code qui pose apparemment problème Set exlRange = Nothing exlFichier.Close SaveChanges:=False Set exlFichier = Nothing End Function
Partager