[Résolu] Références VBA/Excel Business Objects 6 ?

Matheop

XLDnaute Occasionnel
Hello le forum,

Je me retrouve confronté à un problème assez stupide auquel je n'ai pas trouvé de réponse. Concrètement j'ai développé un script VBA/Excel interagissant avec mon client lourd Business Objects 6.0. ; le programme fonctionne nickel sur mon serveur. Mon objectif est de coder une mini-procédure exécutée côté client (sur les machines utilisateurs) afin qu'ils puissent de par eux-mêmes planifier l'exécution de certaines requêtes BO. Cependant afin que ma procédure fonctionne il faut ajouter certaines références VBA pour que mon programme comprenne de quoi je lui parle (logiquement je dois ajouter les références BusinessObjects 6.0 Object Library et BusinessObjects Designer 6.0 Object Library). En effet c'est pas tout le monde qui a BO6 sur son poste, du coup chez certains les références sont manquantes vu qu'ils n'ont pas le logiciel, d'autres sont susceptibles de les avoir mais non activées ; je vise le but suivant : leur activer à l'ouverture du classeur.

Le faire manuellement sur chaque poste client ne m'intéresse pas, vous imaginez bien que je ne vais pas aller physiquement sur toutes les stations pouvant potentiellement être susceptibles de lancer ma procédure et leur ajouter manuellement ces deux références. Donc je choisis de le faire via VBA mais pour cela j'ai besoin de connaître le chemin d'accès menant à ces deux références ; chose que je n'ai pas.

BOcheminAccèsIncomplet.png

Comme vous pouvez le voir sur l'image ci-dessus, je simule sur un poste l'ajout des références afin de chopper le chemin absolu des deux fichiers nécessaires sauf que le chemin est tronqué (du coup impossible de savoir pour moi quel fichier je dois ajouter). En gros dans mon code je fais un truc du style :

Code:
' [...]
Application.DisplayAlerts = False
On Error Resume Next
ThisWorkbook.VBProject.References.AddFromFile "C:\Program Files\Common Files\System\ado\msadox.dll"
'[...]
Là c'est pour ajouter la référence ADO Ext machin ; je souhaiterais savoir si quelqu'un a les fichiers .dll pour les références BO6 ?

Cordialement, Mat'
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Références VBA/Excel Business Objects 6 ?

Bonjour.
Peut être trouverez vous de quoi résoudre votre problème en reprenant certaines parties de la programmation de ce classeur.
Utilisez le d'abord, pour voir, en cherchant les bibliothèques en question (leurs nom VBA)
 

Pièces jointes

  • RechObjets.xls
    330 KB · Affichages: 135
  • RechObjets.xls
    330 KB · Affichages: 135
  • RechObjets.xls
    330 KB · Affichages: 133

Pierrot93

XLDnaute Barbatruc
Re : Références VBA/Excel Business Objects 6 ?

Bonjour,

pour récupérer le chemin d'une référence essaye peut être ceci, nom de la référence à adapter :
Code:
MsgBox ThisWorkbook.VBProject.References("VBA").FullPath

bonne journée
@+
 

Dranreb

XLDnaute Barbatruc
Re : Références VBA/Excel Business Objects 6 ?

Bonjour Pierrot93.
Oui mais enfin ça ne l'arrangera pas d'avoir le FullPath d'une référence portée MANQUANT chez le client. Il ne lui restera qu'à chercher sa bibliothèque BO6 (?) parmi les fichiers .dll, .exe ou autres de quelques autres dossiers probables, ce que permet de faire les fournitures de la bibliothèque TLI pour un certain fichier examiné. Et l'objet FileSystemObject de la bibliothèque Scripting permet quant à lui de parcourir les fichiers d'un dossier.
À moins qu'il suffise d'installer le produit, et qu'alors elle se mette toujours au même endroit, mais alors logiquement la référence devrait cesser d'elle même d'être manquante.
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Références VBA/Excel Business Objects 6 ?

Re, bonjour Bernard,

Bonjour Pierrot93.
Oui mais enfin ça ne l'arrangera pas d'avoir le FullPath d'une référence portée MANQUANT chez le client. Il ne lui restera qu'à chercher sa bibliothèque BO6 (?) parmi les fichiers .dll, .exe ou autres de quelques autres dossiers probables, ce que permet de faire une méthode de la bibliothèque TLI pour un certain fichier examiné.
À moins qu'il suffise d'installer le produit, et qu'alors elle se mette toujours au même endroit, mais alors logiquement la référence devrait cesser d'elle même d'être manquante.

Aarf... Dans la question, je n'ai pas percuté que la référence puisse être déjà cochée et manquante... désolé...
 

Modeste geedee

XLDnaute Barbatruc
Re : Références VBA/Excel Business Objects 6 ?

Bonsour®
je n'ai plus accés à BusinessObject
mais les références quant elles sont accessibles peuvent etre activées automatiquement...

un truc de Denis Michon (MVP canadien)
Voir le profil: MichD - Excel Downloads Forums

A ) Dans le fichier où est présent ce contrôle et où le code fonctionne,
tu ajoutes la procédure : AfficherLesGuids_Propriétés() (voir plus bas)
Elle te donne la liste des références que contient le projet VBA()

Pour chaque référence (bibliothèque) tu auras son "nom"
description ,Guids, Major, Minor et le chemin complet du fichier source.

B) Il s'agit ensuite que tu ajoutes dans la procédure Workbook_Open du
ThisWorkbook, un code ressemblant à ceci :

VB:
Private Sub Workbook_Open()
  On Error Resume Next
 ThisWorkbook.VBProject.References.AddFromGuid _
    GUID:="{00000200-0000-0010-8000-00AA006D2EA4}", major:=2, minor:=0
' ******en utilisant la valeur des propriétés affichées dans la feuille de calcul pour cet référence.
' ******remplacer les {xxxxxxxxxxxxxxxxxxxxxxxxxxxxx} par le GUID qui va bien  
Do events
End Sub
Attention : Si le fichier source n'est pas présent sur un des ordinateurs,
il va de soi que la référence ne pourra être chargée et que par conséquent
qu'il y aura des failles dans la (les) procédure.
prévoir un avertissement et/ou fermeture de l'application

'--------------------------------------

VB:
Sub AfficherLesGuids_Propriétés()
'--------------Denis Michon MPFE  Mars 2012
Dim X As Integer, Sh As Worksheet
Dim NbRef As Integer

Set Sh = Worksheets.Add(After:=Sheets(Sheets.Count))

On Error Resume Next
With Sh
    .Name = "GUIDS"
    .Cells(1, 1) = "Nom de la bibliothèque"
    'Son appellation dans la fenêtre Reférences
    .Cells(1, 2) = "Description"
    .Cells(1, 3) = "Guid"
    .Cells(1, 4) = "Major"
    .Cells(1, 5) = "Minor"
    .Cells(1, 6) = "Chemin complet"
    With .Range("A1:F1")
        .Font.Bold = True
        .Font.Size = 12
    End With
    With Sh.Parent.VBProject.References
        NbRef = .Count
        X = 2
        For a = 1 To NbRef
            Sh.Cells(X, 1) = .Item(a).Name
            Sh.Cells(X, 2) = .Item(a).Description
            Sh.Cells(X, 3) = .Item(a).GUID
            Sh.Cells(X, 4) = .Item(a).Major
            Sh.Cells(X, 5) = .Item(a).Minor
            Sh.Cells(X, 6) = .Item(a).fullpath
            X = X + 1
        Next
    End With
    .Range("A1").CurrentRegion.EntireColumn.AutoFit
End With
End Sub
 

Matheop

XLDnaute Occasionnel
Re : Références VBA/Excel Business Objects 6 ?

Hello le forum,

Tout d'abord désolé pour mon temps de réponse qui est, je vous l'accorde, un peu long. Après avoir analysé le fichier fourni par Dranreb, je n'ai pas trouvé la bibliothèque qui m’intéressait (néanmoins le fichier est très fourni/intéressant et donc, je le garde sous le coude sait-on jamais). J'ai dans un premier temps essayé la méthode Pierrot93 mais le programme m'a renvoyé une erreur, sûrement que je n'ai pas du lui indiqué la bonne référence (raison pour laquelle il n'a peut être pas pu trouvé le chemin complet qui lui est rattaché).

J'ai donc par la suite essayé la macro de Modeste geedee et elle ne fonctionnait pas. Après quelques recherches de mon côté, j'en ai conclu qu'il n'y avait aucune raison à cela, j'ai finalement trouvé le détail qui faisait que ça coinçait. Il faut dans les options de sécurité des macros faire confiance au projet Visual Basic (sinon la macro ne renvoie rien).

confianceVisualBasic.png

Après avoir coché cette option, j'ai relancé la macro sur mon poste serveur et elle m'a retourné les différentes références que j'utilisais (j'avais pris soin au préalable d'activer les deux références BO qui m'intéressent). J'ai donc obtenu le GUID associé à chacune de ces deux références et dans mon programme principal je n'ai plus qu'à activer ces références en passant par un AddFromGUID au lieu du AddFromFile que je faisais jusqu'à présent.

Merci à tous les participants pour vos réponses. Je vous souhaite une bonne journée et à bientôt.

Sujet résolu.
 

Dranreb

XLDnaute Barbatruc
Re : [Résolu] Références VBA/Excel Business Objects 6 ?

Bonjour.
je n'ai pas trouvé la bibliothèque qui m’intéressait
Le dossier dans laquelle elle se trouvait ne figurait sans doute pas parmi ceux où chercher.
Mon classeur permet d'afficher la liste des références d'un autre classeur activé. En sélectionnant une ligne, il vous l'analyse comme s'il l'avait trouvée.

J'ai ajouté les GUID tant dans les recherches que dans l'inventaire.
 

Pièces jointes

  • RechObjets.xls
    378 KB · Affichages: 130
  • RechObjets.xls
    378 KB · Affichages: 134
  • RechObjets.xls
    378 KB · Affichages: 136

Discussions similaires

Réponses
16
Affichages
545
  • Question
Microsoft 365 Code VBA
Réponses
10
Affichages
691

Statistiques des forums

Discussions
314 422
Messages
2 109 447
Membres
110 482
dernier inscrit
ilyxxxh