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 :
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...
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
Subitement sur un fichier exel en importation le problème est survenu.
Voici ou le problème survient :
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.
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
J'ai remédié au problème de cette façon :
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.
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
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
Partager