Bonjour,
J'ai un problème très particulier d'Automation sur une Application Access 2010 faisant appel à des fichiers Excel que je déclare en visual basic. Le programme ouvre un fichier Excel et lit toutes ses lignes pour les importer dans mes tables Access, voici les déclarations des variables et objets :
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
26
27
28
29
30
31
 
   'MOUVEMENT DES PALETTES
   Dim oApp As Excel.Application
   Dim oWkb As Excel.Workbook
   Dim oWSht As Excel.Worksheet
   Dim fDlg As Office.FileDialog
   Dim strFichier As String
   Dim csql As String
   Dim cSQL22 As String
   Dim csql2 As String
   Dim requ0 As String
   Dim requ1 As String
   Dim requ2 As String
   Dim requ3 As String
   Dim requ4 As String
   Dim requ5 As String
   Dim requ6 As String
   Dim requ7 As String
   Dim requ8 As String
   Dim requ9 As String
   Dim req0 As String
   Dim req1 As String
   Dim req2 As String
   Dim req3 As String
   Dim req4 As String
   Dim csql4 As String
   Dim i As Integer
    ' Ouverture du fichier Excel
    Set oApp = CreateObject("excel.application")
    Set oWkb = oApp.Workbooks.Open(DLookup("[CHEMIN_FICHIER_IMPORT]", "TAB_PARAMETRE") & DLookup("[NOM_FICHIER_IMPORT]", "TAB_PARAMETRE"))
    Set oWSht = oWkb.Worksheets(DLookup("[ONGLET_FICHIER_IMPORT]", "TAB_PARAMETRE"))  ' le nom de la feuille qui contient les données à importer
Le problème n'est jamais arrivé alors que le programme tourne sur mon lieu de travail tous les jours et que cette application est utilisée depuis environ 6-7 ans...
Subitement sur un fichier exel en importation le problème est survenu.
Voici ou le problème survient :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
   Set oWSht = Nothing  ' feuille

   oWkb.Close 'classeur  
   Set oWkb = Nothing  'classeur
   oApp.Quit 'Appli Excel
C'est le "Close" qui déclenche un plantage du programme en moulinant sans arret, la seule solution pour l'utilisateur et le CTRL ALT SUPPR pour fermer le processus Excel.
J'ai remédié au problème de cette façon :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
FinErrImport2:
  Exit Sub
ErrImport2:
If err.Number = -2147023170 Then
 MsgBox err.Description
 Exit Sub
Else
  MsgBox err.Description
  Exit Sub
End If
 Resume Next
qui permet de ne pas bloquer le programme mais le problème est que l'utilisateur est obligé de fermer le processus Excel avec le gestionnaire des taches Windows.
Ma question est donc de savoir comment faire dans ce cas là quand il y a plantage pour en informer l'utilisateur sans qu'il soit obliger de faire CTRL ALT SUPPR ?
Si vous voulez la procédure complète dites le moi.
Si quelqu'un a une idée Merci