Bonjour a tous, bonne fête au lecteur de ce message!
Voici mon problème, j'utilise le TCD d'Excel pour afficher les résultats de mes requetes sur une BDD
Au premier coup tout se passe bien !
Et au moment de le lancer une deuxieme fois, une chouette erreur apparait!
Ligne qui bug:
Est-ce une erreur de fermeture?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Workbooks.OpenText FileName:=App.Path & "\rq.txt", Origin:=xlWindows, _ StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlNone, _ ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
Voici mon code qui travaille avec Excel:
Ailleurs dans mon programme j'utilise KillProcess ("EXCEL.exe") pour être sur que l'utilisateur a correctement refermé Excel avant de le ré-utiliser
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 Public Sub Go() 'Déclaration des variables Dim appExcel As Excel.Application 'Application Excel Dim wbExcel As Excel.Workbook 'Classeur Excel Dim wsExcel As Excel.Worksheet 'Feuille Excel 'Ouverture de l'application Set appExcel = CreateObject("Excel.Application") 'Ouverture d'un fichier Excel (TCD) Workbooks.OpenText FileName:=App.Path & "\rq.txt", Origin:=xlWindows, _ StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlNone, _ ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True ' Set wbExcel = appExcel.ActiveWorkbook Set wsExcel = wbExcel.ActiveSheet 'ConstruitTCD Set wkExcel = appExcel.Workbooks.Open(App.Path & "\rq.xls") 'Rendre excel visible appExcel.Visible = True appExcel.Run (MacPrincipal) 'Désallocation mémoire Set wsExcel = Nothing Set wbExcel = Nothing Set wkExcel = Nothing Set appExcel = Nothing 'Je supprime le fichier texte utilisé pour éviter tout soucis de conflit Kill App.Path & "\rq.txt" End Sub 'Pour former le fichier texte que j'envoi Public Sub txtRQ(sequence As String) Form1.Visible = True Form1.Text1.Text = connexionServ.injectNomColonne Form1.Text2.Text = sequence Open App.Path & "\rq.txt" For Output As #3 Print #3, connexionServ.injectNomColonne Print #3, sequence Close #3 End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 'Procédure du site developpez Public Function KillProcess(ByVal ProcessName As String) As Boolean Dim svc As Object Dim sQuery As String Dim oproc Set svc = GetObject("winmgmts:root\cimv2") sQuery = "select * from win32_process where name='" & ProcessName & "'" For Each oproc In svc.execquery(sQuery) oproc.Terminate Next Set svc = Nothing End Function
Partager