OVH Cloud OVH Cloud

Référence d'objet dans VBA Editor

6 réponses
Avatar
Seb
Hello,

Est il possible de référencer d'une manière définitive un objet comme ADO
3.6 sur tous les fichiers Excel nouvellement crées.

Merci de vos réponses...

6 réponses

Avatar
Patrick Fredin
Bonjour,

Il faudrait créer un fichier Excel modèle.

--
Patrick

"Seb" wrote in message
news:
Hello,

Est il possible de référencer d'une manière définitive un objet comme ADO
3.6 sur tous les fichiers Excel nouvellement crées.

Merci de vos réponses...


Avatar
Pierre CFI [mvp]
bonjour
tu peux toujours te faire un modéle, nommé classeur.xlt
mais c'est pas forcement une bonne idée si tu veux le passer à qq un qui a excel 97

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Seb" a écrit dans le message de news:
Hello,

Est il possible de référencer d'une manière définitive un objet comme ADO
3.6 sur tous les fichiers Excel nouvellement crées.

Merci de vos réponses...


Avatar
michdenis
Bonjour Seb,

Tu te crées un modèle que tu nomme obligatoirement Classeur.xlt que tu places dans le répertoire xlstart ou xlouvrir
selon ta version d'excel.

Et dans ce modèle tu places ceci :

Ceci est valide pour la bibliothèque DAO 3.6 object librairy.

Tu as un guid différent pour chacune des bibliothèques :

'----------------
Private Sub Workbook_Open()

On Error Resume Next
ThisWorkbook.VBProject.References.AddFromGuid _
"{00025E01-0000-0000-C000-000000000046}", 5, 0

End Sub
'----------------


Salutations!



"Seb" a écrit dans le message de news:

Hello,

Est il possible de référencer d'une manière définitive un objet comme ADO
3.6 sur tous les fichiers Excel nouvellement crées.

Merci de vos réponses...
Avatar
michdenis
Bonjour Pierre,

Si tu utilises la façon de faire dans mon premier message, tu ne devrais pas éprouvé aucune des difficultés que tu
mentionnes que la version soit excel 97 ou 2003 ou que tu as windows 98 ou windows Xp... Nonobstant où le chemin où le
fichier (.dll) peut se retrouver sur le disque dur) .



Salutations!



"Pierre CFI [mvp]" a écrit dans le message de news:
bonjour
tu peux toujours te faire un modéle, nommé classeur.xlt
mais c'est pas forcement une bonne idée si tu veux le passer à qq un qui a excel 97

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Seb" a écrit dans le message de
news:
Hello,

Est il possible de référencer d'une manière définitive un objet comme ADO
3.6 sur tous les fichiers Excel nouvellement crées.

Merci de vos réponses...


Avatar
Pierre CFI [mvp]
.../...
notre ami a parlé de ADO, pas de DAO, c'est pour çà
en plus effectivement la différence des chemins suivant l'os

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"michdenis" a écrit dans le message de news:%
Bonjour Pierre,

Si tu utilises la façon de faire dans mon premier message, tu ne devrais pas éprouvé aucune des difficultés que tu
mentionnes que la version soit excel 97 ou 2003 ou que tu as windows 98 ou windows Xp... Nonobstant où le chemin où le
fichier (.dll) peut se retrouver sur le disque dur) .



Salutations!



"Pierre CFI [mvp]" a écrit dans le message de news:
bonjour
tu peux toujours te faire un modéle, nommé classeur.xlt
mais c'est pas forcement une bonne idée si tu veux le passer à qq un qui a excel 97

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Seb" a écrit dans le message de
news:
Hello,

Est il possible de référencer d'une manière définitive un objet comme ADO
3.6 sur tous les fichiers Excel nouvellement crées.

Merci de vos réponses...







Avatar
michdenis
Bonjour Pierre,

L'ami parlait : un objet comme ADO 3.6

A )
Je connais une version de DAO 3.5 (excel 97) ou DAO 3.6 (autres versions) , mais je connais pas d'ADO 3.6

Je suppose qu'un exemple avec l'un ou l'autre était suffisant !

B ) La bibliothèque ADO n'existe pas dans la version originale excel 97. Ce serait difficile d'imaginer un truc pour
quelque chose qui n'existe pas. Il n'est pas dit qu'il soit impossible d'installer cette bibliothèque sur une version
excel 97.

C ) "la différence des chemins suivant l'os" Lorsque tu utilises le GUID pour insérer des nouvelles références, comme
dans l'exemple que j'ai donné, cette procédure se fout complètement des chemins où sont logés les fichiers, donc elle
s'applique à tous les systèmes d'exploitations Windows.(Jamais testé ça sur des versions windows 3.1 et plus ancien !)

De plus, même si la "Description de la bibliothèque (l'appellation dans la fenêtre référence) à changer, si son nom de
bibliothèque est demeuré le même(voir explorateur d'objet dans la fenêtre VBE) , même si cette bibliothèque a subi des
mises à jour comme celle de DAO 3.5 à 3.6, la procédure s'applique très bien sans aucune difficulté.

IL y a seulement une petite exception, c'est lorsque Microsoft décide de modifier le nom de la bibliothèque.

Et pour ceux qui se demandent comment on peut faire pour savoir et connaître les propriétés de ces Guids afin de saisir
la ligne de commande :

Cette procédure affiche toutes les propriétés Quid (Globally Unique Identifier) des références qu'un projet VBA contient
:
'------------------------------------------
Sub AfficherLesGuids_Propriétés()

Dim n As Integer

Sheets.Add
ActiveSheet.Name = "GUIDS"

On Error Resume Next

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

For n = 2 To ActiveWorkbook.VBProject.References.Count
Cells(n, 1) = ActiveWorkbook.VBProject.References.Item(n).Name
Cells(n, 2) = ActiveWorkbook.VBProject.References.Item(n).Description
Cells(n, 3) = ActiveWorkbook.VBProject.References.Item(n).GUID
Cells(n, 4) = ActiveWorkbook.VBProject.References.Item(n).Major
Cells(n, 5) = ActiveWorkbook.VBProject.References.Item(n).Minor
Cells(n, 6) = ActiveWorkbook.VBProject.References.Item(n).fullpath
Next n
Range("A1").Resize(, 6).EntireColumn.AutoFit

End Sub
'------------------------------------------


Salutations!




"Pierre CFI [mvp]" a écrit dans le message de news:
%
.../...
notre ami a parlé de ADO, pas de DAO, c'est pour çà
en plus effectivement la différence des chemins suivant l'os

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"michdenis" a écrit dans le message de news:%
Bonjour Pierre,

Si tu utilises la façon de faire dans mon premier message, tu ne devrais pas éprouvé aucune des difficultés que tu
mentionnes que la version soit excel 97 ou 2003 ou que tu as windows 98 ou windows Xp... Nonobstant où le chemin où le
fichier (.dll) peut se retrouver sur le disque dur) .



Salutations!



"Pierre CFI [mvp]" a écrit dans le message de news:

bonjour
tu peux toujours te faire un modéle, nommé classeur.xlt
mais c'est pas forcement une bonne idée si tu veux le passer à qq un qui a excel 97

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Seb" a écrit dans le message de
news:
Hello,

Est il possible de référencer d'une manière définitive un objet comme ADO
3.6 sur tous les fichiers Excel nouvellement crées.

Merci de vos réponses...