Probleme Excel Multi instances
Bonjour,
Voilà mon problème : ouvrir, écrire dans une feuille, et fermer un fichier excel pas de soucis.
Seulement là dans une application, je dois écrire dans un fichier déjà ouvert et je bloque complètement.
- Si je fais un GetObject des applications ouvertes, je récupère seulement la première instance Excel. Si l'utilisateur a lancé excel plusieurs fois pour d'autres choses du coup ça ne marche pas.
- Si je fais un GetObject en précisant mon fichier, ça me créé une autre instance de mon fichier...
- J'ai essayé de parcourir les instances Excel mais pas moyen de trouver sur internet. Je peux compter le nombre d'instances mais pas les utiliser. En tout cas je ne sais pas le faire.
Test avec GetObject sur mon fichier
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| ' Variables
Dim oXL As Excel.Application = Nothing
Dim oWB As Excel.Workbook = Nothing
Dim oSheet As Excel.Worksheet = Nothing
Dim Workbook_GSP_export_open As Boolean = False
' Test si fichier d'export déjà ouvert
Try
oXL = GetObject(Application.StartupPath + "\GSP_Export_Excel.xlsx").Application()
For Each Wb In oXL.Workbooks
If Wb.Name = "GSP_Export_Excel.xlsx" Then
oWB = Wb
Exit For
End If
Next
Workbook_GSP_export_open = True
Catch ex As Exception
End Try |
Test de parcours des instances... Mais ça plante sur instance.Workbooks car ce n'est pas des types excel.application donc pas de workbook... logique :mouarf:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
Dim strComputer As String
Dim objWMIService As Object
Dim objList As Object
strComputer = "."
objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
objList = objWMIService.execquery("select * from win32_process where name='EXCEL.EXE'")
Dim espion As Integer = objList.Count
For Each instance In objList
For Each Wb In instance.Workbooks
If Wb.Name = "GSP_Export_Excel.xlsx" Then
oWB = Wb
Exit For
End If
Next
Next |
Si vous avez une combine.
Merci