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 17/06/2011, 17h50   #1
Membre régulier
 
Inscription : novembre 2008
Messages : 219
Détails du profil
Informations personnelles :
Âge : 25
Localisation : Suisse

Informations forums :
Inscription : novembre 2008
Messages : 219
Points : 79
Points : 79
Envoyer un message via MSN à Bobble
Par défaut Open/Close Application Excel depuis Access

Bonjour,
j'ai un souci avec la fermeture du processus Excel, appelé depuis Access.

La première fois que j'exécute ce code, le processus Excel.exe ne se ferme plus!! Par contre, toute les autres fois oui!!
Une autre chose étrange c'est que si j'appelle openFileReanOnly et closeNOTSaveFile toute de suite derrière il n'y a pas de soucis... Dans le code *read file* je ne fais rien d'autre que lire le contenu d'un sheet...


Voilà mon code:

Code :
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
26
27
28
29
30
31
32
Public appExcel As Excel.Application   'Application Excel
Public wb As Excel.Workbook            'Classeur Excel
 
Public Sub openFileReanOnly(newFile As String) 
    If (appExcel Is Nothing) Then 
        Set appExcel = CreateObject("Excel.Application")    'Open Excel Application 
    Else 
        MsgBox ("appExcel is still running!") 
        Exit Sub 
    End If 
    If (wb Is Nothing) Then 
        Set wb = appExcel.Workbooks.Open(newFile, True, True) 'Open Excel File 
    Else 
        MsgBox ("an Excel file is Still Open!") 
        Exit Sub 
    End If 
End Sub 
 
....... 
read file 
.... 
 
Public Sub closeNOTSaveFile() 
    If Not (wb Is Nothing) Then 
        wb.Close False 
    End If 
    If Not (appExcel Is Nothing) Then 
        appExcel.Quit 
    End If 
    Set wb = Nothing 
    Set appExcel = Nothing 
End Sub
Pourquoi le processus reste ouvert Uniquement pour le premier appelle? Je passe bien par "appExcel.Quit" et "Set appExcel = Nothing" mais ils n'ont aucun effet...

Merci pour tout correction ou idée de débogage..
Bobble est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2011, 17h30   #2
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 040
Points : 11 040
Bonjour,

Si tu veux un exemple vois cette discussion et suis le lien proposé par LedZeppII.
Un modèle du genre !
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2011, 15h43   #3
Membre régulier
 
Inscription : novembre 2008
Messages : 219
Détails du profil
Informations personnelles :
Âge : 25
Localisation : Suisse

Informations forums :
Inscription : novembre 2008
Messages : 219
Points : 79
Points : 79
Envoyer un message via MSN à Bobble
Merci pour ta réponse!

J'ai finalement trouvé l'erreur dans mon code...je l'ai comparé avec l'exemple et en voyant qu'il n'y avait pas tellement de différence, j'ai commencé à me poser la question si le problème de venait pas de la partie "lecture"...

Effectivement, l’utilisai faux la fonction WorksheetFunction.Match !!

Faux:
Code :
 l = WorksheetFunction.Match("Name :", xlSht.Range("A2:A100"), 0)
Juste:
Code :
 l = appExcel.WorksheetFunction.Match("Name :", xlSht.Range("A2:A100"), 0)
C'est elle qui ne permettais pas à excel de se fermer!

Bobble 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 01h14.


 
 
 
 
Partenaires

Hébergement Web