Bonjour à tous,
Je poste rarement sur les forums car je trouve quasiment tout le temps mes réponses en recherchant un peu. Mais cette fois, je ne trouve aucun pouvant réellement m'aider.
Je vous soumet donc mon soucis :
Je travaille sur Access 2002 et je développe donc une fonction qui me permet de récupérer des infos à partir d'un fichier Excel et les insère dans ma base. Jusque là aucun soucis ^^
A la première exécution tout se passe bien, mais si je relance une deuxième fois sans fermer ma base access j'obtiens la fameuse "erreur 91 : Variable objet ou variable de bloc With non définie".
Voici un bout de code pour illustrer :
Arrivé à la ligne en gras lors de la deuxième exécution, j'ai une erreur 91. Cette erreur est normal étant donné qu'à ce moment là en debug je vois qu' ActiveSheet est à Nothing.
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 Dim xls As Excel.Application Dim xlClass As Excel.Workbook Dim db As DAO.Database Dim Res As DAO.Recordset path = "D:\" Set db = CurrentDb Set xls = CreateObject("Excel.application") xls.Visible = True Set xlClass = xls.Workbooks.Open(path & "burgos.xls") xlClass.Sheets(1).Activate With ActiveSheet lib = .Cells(2, 2) ' c'est ici que ça plante la 2ème fois ' Divers traitements ' ... End With xlClass.Close xls.Quit Set xls = Nothing
Ma question est donc la suivante : Pourquoi à ce moment, ActiveSheet est à Nothing ? Est-ce une erreur de désallocation mémoire ? Je ferme peut-être mal mon fichier Excel à la fin de la première exécution ?
Je vous remercie beaucoup par avance, j'ai 2 ou 3 applications dans le même cas ça serait très pratique de comprendre ceci !
Bonne journée à tous.
Partager