Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

création d'une fonction getobject améliorée

patricktoulon

XLDnaute Barbatruc
Bonjour a tous pour une fois c'est moi qui suis collé

alors voila je voudrais créer une fonction getobject
cette fonction existe déjà me direz vous
oui pour un object application elle retourne la première instance de celle ci les autres walouh!!!!
je me suis donc mis dans la tète d'en faire une qui me ramènerait un tableau d'object "application "
on a malgré tout diverses possibilités ou façons de lister les fenêtres ouvertes ou instance d’application entre autre les api Windows voir aussi WMI
ce pendant pour ramener ces éléments a des object application et pouvoir donc les utiliser comme tel c'est une autre affaire
comment pourrais-je faire par exemple avec cette petite sub WMI?
Code:
Sub nb_instances()
Dim strComputer As String, WMIService As Object, TaBlExcel As Object
strComputer = "."
Set WMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set TaBlExcel = WMIService.execquery("select * from win32_process where name='EXCEL.EXE'")
Debug.Print "Nombre d'instances : " & TaBlExcel.Count
Set WMIService = Nothing
Set TaBlExcel = Nothing
End Sub

je voudrais par exemple prendre le classeur(1) de TaBlExcel(1)
MsgBox TaBlExcel(1).Workbooks(1).Name

malheureusement TaBlExcel n'est pas un tableau d'object "application"
si vous avez des idées ou des pistes je suis preneur

merci pour les éventuels retours





 

eriiic

XLDnaute Barbatruc
ah je le connais celui la d'eriiiic même si il y a un "i" en plus
un xla activé est forcement accessible par tout les classeurs donc c'est pas une question qui me titille plus que ca
Pour te répondre franchement, cette histoire de xla ça m'en touche une sans faire bouger l'autre ;-)
J'ai juste apporté cette précision car Dranreb avait annoncé avoir 3 xlam qui, peut-être, pouvait expliquer le nombre d'instances chez lui.
C'est tout...
C'est mieux quand on suit son sujet attentivement ;-) On peut clore ce chapitre.
eric
 

patricktoulon

XLDnaute Barbatruc
bon alors j'ai testé dans ma sub test en ajoutant le listage des complement
il se trouve que qu'en j'active un xla perso dans l'instance (1) classeur(2) par exemple
je l'ai aussi dispo dans l'instance(1) classeur(1) pour un autre exemple
du coup je suis aller vérifier manuellement dans les options et c'est exact je l'ai bien dispo et activé dans chaque instance
office 2007

la sub test
sauf erreur de ma part je précise bien de quel parent je veux lister les addins ( vous confirmerez)
Code:
Sub test()
    Dim instances, wb As Workbook, i, YBoAddin As AddIn
    instances = GetAllInstanceExceL
    For i = 1 To UBound(instances)
        For Each wb In instances(i).Workbooks
            Debug.Print "instance : " & i & "  " & wb.Name
            For Each YBoAddin In wb.Parent.Application.AddIns
                Debug.Print "instance : " & i & "  " & YBoAddin.Name
            Next
            Debug.Print "-------------------------------"
        Next
    Next
End Sub
donc mis a part le listage ca n'a aucun intérêt de lister dans tablexcel puisque de toute façon il y sera même si je ne l'ai pas activé dans un des classeur ouvert dans autre instance
 

patricktoulon

XLDnaute Barbatruc
oui staple1600 j'ai vu le post#27 je comprends pas pourquoi tu es sur d'avoir 2 instances met en mode fenetre tout tes classeur dans chaque instances de excel et bouge les et regarde si tu en a pas vraiment 2 a chaque fois
 

Staple1600

XLDnaute Barbatruc
Re

@patricktoulon
Ce que je voulais dire (et sauf erreur de ma part) dans le message#27
Classeur1 est dans une seule instance, non ?
Donc pourquoi le code le liste dans Instance1 et Instance2

En toute logique, j'aurai cru que ta macro afficherait simplement:
instance : 1 Classeur1
instance : 2 Classeur2
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
mille excuse reviens du feu
ben oui absolument c'est ce qu'elle fait chez moi je n'ai pas d'erreur d'instance
chaque classeur et bien listé dans son instance
 

Pièces jointes

  • Capture.JPG
    324 KB · Affichages: 57
Dernière édition:
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…