Est-ce possible d'ajouter une référence comme Microsoft Word 11.0 Object
Library dans un projet via du code VBA.
Exemple :
But :
Tester si référence existe existe sinon ajouter référence
Sub ajoutREf() With ThisWorkbook.VBProject.References .AddFromFile "C:Program Files..." End With End Sub
Cordialement.
lSteph On 4 juil, 10:27, "RENAUD Eric" <erenaud(retirerceci)@fr.fm> wrote:
Bonjour,
Est-ce possible d'ajouter une référence comme Microsoft Word 11.0 Obj ect Library dans un projet via du code VBA. Exemple : But : Tester si référence existe existe sinon ajouter référence
D'avance rmerci
Bonjour,
si c'est juste pour une variable ....as object
t'en dispensera
Sub ajoutREf()
With ThisWorkbook.VBProject.References
.AddFromFile "C:Program Files..."
End With
End Sub
Cordialement.
lSteph
On 4 juil, 10:27, "RENAUD Eric" <erenaud(retirerceci)@fr.fm> wrote:
Bonjour,
Est-ce possible d'ajouter une référence comme Microsoft Word 11.0 Obj ect
Library dans un projet via du code VBA.
Exemple :
But :
Tester si référence existe existe sinon ajouter référence
Sub ajoutREf() With ThisWorkbook.VBProject.References .AddFromFile "C:Program Files..." End With End Sub
Cordialement.
lSteph On 4 juil, 10:27, "RENAUD Eric" <erenaud(retirerceci)@fr.fm> wrote:
Bonjour,
Est-ce possible d'ajouter une référence comme Microsoft Word 11.0 Obj ect Library dans un projet via du code VBA. Exemple : But : Tester si référence existe existe sinon ajouter référence
D'avance rmerci
lSteph
...
Tester si référence existe existe sinon ajouter référence pour éluder le pb (ex pour office Word97)
Sub ajoutREf() On Error Resume Next With ThisWorkbook.VBProject.References Application.DisplayAlerts = False .AddFromFile "C:Program FilesMicrosoft OfficeOfficeMSWORD8.OLB" End With Application.DisplayAlerts = True On Error GoTo 0 '..la suite End Sub
On 4 juil, 10:27, "RENAUD Eric" <erenaud(retirerceci)@fr.fm> wrote:
Bonjour,
Est-ce possible d'ajouter une référence comme Microsoft Word 11.0 Obj ect Library dans un projet via du code VBA. Exemple : But : Tester si référence existe existe sinon ajouter référence
D'avance rmerci
...
Tester si référence existe existe sinon ajouter référence
pour éluder le pb (ex pour office Word97)
Sub ajoutREf()
On Error Resume Next
With ThisWorkbook.VBProject.References
Application.DisplayAlerts = False
.AddFromFile "C:Program FilesMicrosoft OfficeOfficeMSWORD8.OLB"
End With
Application.DisplayAlerts = True
On Error GoTo 0
'..la suite
End Sub
On 4 juil, 10:27, "RENAUD Eric" <erenaud(retirerceci)@fr.fm> wrote:
Bonjour,
Est-ce possible d'ajouter une référence comme Microsoft Word 11.0 Obj ect
Library dans un projet via du code VBA.
Exemple :
But :
Tester si référence existe existe sinon ajouter référence
Tester si référence existe existe sinon ajouter référence pour éluder le pb (ex pour office Word97)
Sub ajoutREf() On Error Resume Next With ThisWorkbook.VBProject.References Application.DisplayAlerts = False .AddFromFile "C:Program FilesMicrosoft OfficeOfficeMSWORD8.OLB" End With Application.DisplayAlerts = True On Error GoTo 0 '..la suite End Sub
On 4 juil, 10:27, "RENAUD Eric" <erenaud(retirerceci)@fr.fm> wrote:
Bonjour,
Est-ce possible d'ajouter une référence comme Microsoft Word 11.0 Obj ect Library dans un projet via du code VBA. Exemple : But : Tester si référence existe existe sinon ajouter référence
D'avance rmerci
MichDenis
Explication à partir d'une référence exemple : "MsForms" qui s'ajoute dans une application dès que tu ajoutes un formulaire...(userform)
A ) C'est toujours une bonne idée de s'assurer que l'application développé ne contient pas des références qui sont inutiles, le cas échéant.
B ) La problématique qui se pose avec les références est qu'elles ne sont pas nécessairement situées au même endroit dans l'arborescence des fichiers de Windows. Selon le système d'exploitation utilisé, la référence dont il est question peut se retrouver à différent endroit :
Fm20.dll => fichier responsable de la référence
windows 98 et Millénium : C:WindowsSystemFm20.dll Windows2000 C:WinntSystem32Fm20.dll Windows Xp C:WindowsSystem32Frm20.dll
Conclusion évidente : Au chargement de l'application, Excel peut éprouver de la difficulté à localiser la référence ... et envoie un message d'erreur
C ) Solution 1
Dans le ThisWorkbook, tu utilises la procédure événementielle suivante afin de t'assurer que le chemin de la référence est bonne : '--------------------------------- Private Sub Workbook_Open() TesterBibliothequeFormulaire End Sub '---------------------------------
Dans un module Standard de ton application. copie ce qui suit :
'Haut de ton module, Déclaration de l'API Private Declare Function GetSystemDirectory Lib "kernel32" _ Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As Long '-------------------------------- Function CheminSystem() Dim RetVal As Long Dim SysDir As String
If RetVal <> 0 Then CheminSystem = Left$(SysDir, RetVal) End If End Function '-------------------------------- Sub TesterBibliothequeFormulaire()
Dim File As String File = CheminSystem & "FM20.DLL" On Error Resume Next ThisWorkbook.VBProject.References.AddFromFile File End Sub '--------------------------------
Solution II
Cette solution ne requiert pas d'API, mais tu dois connaître le GUID.
Guid : Global Unique Identifier => il est extrait directement à partir de la base de registre de Windows. Un numéro qui a cette forme : {0D452EE1-E08F-101A-852E-02608C4D0BB4}
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, 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 ça arrive à l'occasion ....En conséquence, peu importe la façon utilisée, il faut faire les recherches nécessaires et s'assurer que les références utilisées seront chargés adéquatement à l'ouverture de l'application. Exemple : la bibliothèque "Visual Basic Extensibility 5.3" qui a changé d'Excel 97 à Excel 2000
Sub TesterBibliothequeFormulaire2() On Error Resume Next ThisWorkbook.VBProject.References.AddFromGuid _ GUID:="{0D452EE1-E08F-101A-852E-02608C4D0BB4}", major:=2, minor:=0 End Sub '--------------------------------
Comment trouver les paramètres : Guid, major et minor :
Attention : Le nom de la bibliothèque, tu peux le trouver à l'aide de l'explorateur d'objets de la fenêtre "Éditeur de code" de visual basic (raccourci clavier F2) . Son nom est celui que tu peux sélectionner dans la liste déroulante "Toutes les bibliothèques". Dès que tu sélectionnes une des bibliothèques, observe dans le bas de la fenêtre, la location et le nom du fichier qui en est responable. Ne pas mélanger "Nom de la biblothèque" avec l'appellation descriptive qui se trouve dans la fenêtre : outils / références /
'-------------------------- Sub IdentifierParametreDuneReference()
Et si tu désires enlever cette référence au formulaire, A ) Supprimer tous les formulaires B ) utiliser cette petite procédure : '-------------------------------- Sub SupprimerUneReference() 'MsForms est le nom de la référence chargé par 'Microsoft Forms 2.0 object librairy" Dim Ref As Object With ThisWorkbook.VBProject Set Ref = .References("MsForms") .References.Remove Ref End With
End Sub '--------------------------------
Explication à partir d'une référence exemple : "MsForms" qui s'ajoute
dans une application dès que tu ajoutes un formulaire...(userform)
A ) C'est toujours une bonne idée de s'assurer que l'application développé ne contient pas
des références qui sont inutiles, le cas échéant.
B ) La problématique qui se pose avec les références est qu'elles ne sont pas nécessairement
situées au même endroit dans l'arborescence des fichiers de Windows. Selon le système
d'exploitation utilisé, la référence dont il est question peut se retrouver à différent endroit
:
Fm20.dll => fichier responsable de la référence
windows 98 et Millénium : C:WindowsSystemFm20.dll
Windows2000 C:WinntSystem32Fm20.dll
Windows Xp C:WindowsSystem32Frm20.dll
Conclusion évidente : Au chargement de l'application, Excel peut éprouver de la
difficulté à localiser la référence ... et envoie un message d'erreur
C ) Solution 1
Dans le ThisWorkbook, tu utilises la procédure événementielle suivante afin de
t'assurer que le chemin de la référence est bonne :
'---------------------------------
Private Sub Workbook_Open()
TesterBibliothequeFormulaire
End Sub
'---------------------------------
Dans un module Standard de ton application. copie ce qui suit :
'Haut de ton module, Déclaration de l'API
Private Declare Function GetSystemDirectory Lib "kernel32" _
Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, _
ByVal nSize As Long) As Long
'--------------------------------
Function CheminSystem()
Dim RetVal As Long
Dim SysDir As String
If RetVal <> 0 Then
CheminSystem = Left$(SysDir, RetVal)
End If
End Function
'--------------------------------
Sub TesterBibliothequeFormulaire()
Dim File As String
File = CheminSystem & "FM20.DLL"
On Error Resume Next
ThisWorkbook.VBProject.References.AddFromFile File
End Sub
'--------------------------------
Solution II
Cette solution ne requiert pas d'API, mais tu dois connaître le GUID.
Guid : Global Unique Identifier => il est extrait directement à partir de
la base de registre de Windows. Un numéro qui a cette forme :
{0D452EE1-E08F-101A-852E-02608C4D0BB4}
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,
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 ça arrive à l'occasion ....En conséquence, peu importe la façon utilisée,
il faut faire les recherches nécessaires et s'assurer que les références utilisées seront chargés
adéquatement à l'ouverture de l'application.
Exemple : la bibliothèque "Visual Basic Extensibility 5.3"
qui a changé d'Excel 97 à Excel 2000
Sub TesterBibliothequeFormulaire2()
On Error Resume Next
ThisWorkbook.VBProject.References.AddFromGuid _
GUID:="{0D452EE1-E08F-101A-852E-02608C4D0BB4}", major:=2, minor:=0
End Sub
'--------------------------------
Comment trouver les paramètres : Guid, major et minor :
Attention : Le nom de la bibliothèque, tu peux le trouver à l'aide
de l'explorateur d'objets de la fenêtre "Éditeur de code" de visual basic
(raccourci clavier F2) . Son nom est celui que tu peux sélectionner
dans la liste déroulante "Toutes les bibliothèques". Dès que tu sélectionnes
une des bibliothèques, observe dans le bas de la fenêtre, la location et le nom
du fichier qui en est responable. Ne pas mélanger "Nom de la biblothèque"
avec l'appellation descriptive qui se trouve dans la fenêtre : outils / références /
'--------------------------
Sub IdentifierParametreDuneReference()
Et si tu désires enlever cette référence au formulaire,
A ) Supprimer tous les formulaires
B ) utiliser cette petite procédure :
'--------------------------------
Sub SupprimerUneReference()
'MsForms est le nom de la référence chargé par
'Microsoft Forms 2.0 object librairy"
Dim Ref As Object
With ThisWorkbook.VBProject
Set Ref = .References("MsForms")
.References.Remove Ref
End With
Explication à partir d'une référence exemple : "MsForms" qui s'ajoute dans une application dès que tu ajoutes un formulaire...(userform)
A ) C'est toujours une bonne idée de s'assurer que l'application développé ne contient pas des références qui sont inutiles, le cas échéant.
B ) La problématique qui se pose avec les références est qu'elles ne sont pas nécessairement situées au même endroit dans l'arborescence des fichiers de Windows. Selon le système d'exploitation utilisé, la référence dont il est question peut se retrouver à différent endroit :
Fm20.dll => fichier responsable de la référence
windows 98 et Millénium : C:WindowsSystemFm20.dll Windows2000 C:WinntSystem32Fm20.dll Windows Xp C:WindowsSystem32Frm20.dll
Conclusion évidente : Au chargement de l'application, Excel peut éprouver de la difficulté à localiser la référence ... et envoie un message d'erreur
C ) Solution 1
Dans le ThisWorkbook, tu utilises la procédure événementielle suivante afin de t'assurer que le chemin de la référence est bonne : '--------------------------------- Private Sub Workbook_Open() TesterBibliothequeFormulaire End Sub '---------------------------------
Dans un module Standard de ton application. copie ce qui suit :
'Haut de ton module, Déclaration de l'API Private Declare Function GetSystemDirectory Lib "kernel32" _ Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As Long '-------------------------------- Function CheminSystem() Dim RetVal As Long Dim SysDir As String
If RetVal <> 0 Then CheminSystem = Left$(SysDir, RetVal) End If End Function '-------------------------------- Sub TesterBibliothequeFormulaire()
Dim File As String File = CheminSystem & "FM20.DLL" On Error Resume Next ThisWorkbook.VBProject.References.AddFromFile File End Sub '--------------------------------
Solution II
Cette solution ne requiert pas d'API, mais tu dois connaître le GUID.
Guid : Global Unique Identifier => il est extrait directement à partir de la base de registre de Windows. Un numéro qui a cette forme : {0D452EE1-E08F-101A-852E-02608C4D0BB4}
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, 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 ça arrive à l'occasion ....En conséquence, peu importe la façon utilisée, il faut faire les recherches nécessaires et s'assurer que les références utilisées seront chargés adéquatement à l'ouverture de l'application. Exemple : la bibliothèque "Visual Basic Extensibility 5.3" qui a changé d'Excel 97 à Excel 2000
Sub TesterBibliothequeFormulaire2() On Error Resume Next ThisWorkbook.VBProject.References.AddFromGuid _ GUID:="{0D452EE1-E08F-101A-852E-02608C4D0BB4}", major:=2, minor:=0 End Sub '--------------------------------
Comment trouver les paramètres : Guid, major et minor :
Attention : Le nom de la bibliothèque, tu peux le trouver à l'aide de l'explorateur d'objets de la fenêtre "Éditeur de code" de visual basic (raccourci clavier F2) . Son nom est celui que tu peux sélectionner dans la liste déroulante "Toutes les bibliothèques". Dès que tu sélectionnes une des bibliothèques, observe dans le bas de la fenêtre, la location et le nom du fichier qui en est responable. Ne pas mélanger "Nom de la biblothèque" avec l'appellation descriptive qui se trouve dans la fenêtre : outils / références /
'-------------------------- Sub IdentifierParametreDuneReference()
Et si tu désires enlever cette référence au formulaire, A ) Supprimer tous les formulaires B ) utiliser cette petite procédure : '-------------------------------- Sub SupprimerUneReference() 'MsForms est le nom de la référence chargé par 'Microsoft Forms 2.0 object librairy" Dim Ref As Object With ThisWorkbook.VBProject Set Ref = .References("MsForms") .References.Remove Ref End With
End Sub '--------------------------------
RENAUD Eric
Merci Par contre je ne trouve pas la méthode pour retirer cette référence ?
"lSteph" a écrit dans le message de news:
...
Tester si référence existe existe sinon ajouter référence pour éluder le pb (ex pour office Word97)
Sub ajoutREf() On Error Resume Next With ThisWorkbook.VBProject.References Application.DisplayAlerts = False .AddFromFile "C:Program FilesMicrosoft OfficeOfficeMSWORD8.OLB" End With Application.DisplayAlerts = True On Error GoTo 0 '..la suite End Sub
On 4 juil, 10:27, "RENAUD Eric" <erenaud(retirerceci)@fr.fm> wrote:
Bonjour,
Est-ce possible d'ajouter une référence comme Microsoft Word 11.0 Object Library dans un projet via du code VBA. Exemple : But : Tester si référence existe existe sinon ajouter référence
D'avance rmerci
Merci
Par contre je ne trouve pas la méthode pour retirer cette référence ?
"lSteph" <gmLSteph@gmail.com> a écrit dans le message de news:
1183541797.268555.142870@o61g2000hsh.googlegroups.com...
...
Tester si référence existe existe sinon ajouter référence
pour éluder le pb (ex pour office Word97)
Sub ajoutREf()
On Error Resume Next
With ThisWorkbook.VBProject.References
Application.DisplayAlerts = False
.AddFromFile "C:Program FilesMicrosoft OfficeOfficeMSWORD8.OLB"
End With
Application.DisplayAlerts = True
On Error GoTo 0
'..la suite
End Sub
On 4 juil, 10:27, "RENAUD Eric" <erenaud(retirerceci)@fr.fm> wrote:
Bonjour,
Est-ce possible d'ajouter une référence comme Microsoft Word 11.0 Object
Library dans un projet via du code VBA.
Exemple :
But :
Tester si référence existe existe sinon ajouter référence
Merci Par contre je ne trouve pas la méthode pour retirer cette référence ?
"lSteph" a écrit dans le message de news:
...
Tester si référence existe existe sinon ajouter référence pour éluder le pb (ex pour office Word97)
Sub ajoutREf() On Error Resume Next With ThisWorkbook.VBProject.References Application.DisplayAlerts = False .AddFromFile "C:Program FilesMicrosoft OfficeOfficeMSWORD8.OLB" End With Application.DisplayAlerts = True On Error GoTo 0 '..la suite End Sub
On 4 juil, 10:27, "RENAUD Eric" <erenaud(retirerceci)@fr.fm> wrote:
Bonjour,
Est-ce possible d'ajouter une référence comme Microsoft Word 11.0 Object Library dans un projet via du code VBA. Exemple : But : Tester si référence existe existe sinon ajouter référence
D'avance rmerci
lSteph
Sub suppreF() Dim oRef As Object
Set oRef = ThisWorkbook.VBProject.References("Word") ThisWorkbook.VBProject.References.Remove oRef
End Sub
'Cordialement.
'lSteph
On 4 juil, 14:09, "RENAUD Eric" <erenaud(retirerceci)@fr.fm> wrote:
Merci Par contre je ne trouve pas la méthode pour retirer cette référence ?
Sub suppreF()
Dim oRef As Object
Set oRef = ThisWorkbook.VBProject.References("Word")
ThisWorkbook.VBProject.References.Remove oRef
End Sub
'Cordialement.
'lSteph
On 4 juil, 14:09, "RENAUD Eric" <erenaud(retirerceci)@fr.fm> wrote:
Merci
Par contre je ne trouve pas la méthode pour retirer cette référence ?
Set oRef = ThisWorkbook.VBProject.References("Word") ThisWorkbook.VBProject.References.Remove oRef
End Sub
'Cordialement.
'lSteph
On 4 juil, 14:09, "RENAUD Eric" <erenaud(retirerceci)@fr.fm> wrote:
Merci Par contre je ne trouve pas la méthode pour retirer cette référence ?
RENAUD Eric
Bonsoir, Merci à tous pour votre collaboration Eric
Bonjour,
Est-ce possible d'ajouter une référence comme Microsoft Word 11.0 Object Library dans un projet via du code VBA. Exemple : But : Tester si référence existe existe sinon ajouter référence
D'avance rmerci
Bonsoir,
Merci à tous pour votre collaboration
Eric
Bonjour,
Est-ce possible d'ajouter une référence comme Microsoft Word 11.0 Object
Library dans un projet via du code VBA.
Exemple :
But :
Tester si référence existe existe sinon ajouter référence
Bonsoir, Merci à tous pour votre collaboration Eric
Bonjour,
Est-ce possible d'ajouter une référence comme Microsoft Word 11.0 Object Library dans un projet via du code VBA. Exemple : But : Tester si référence existe existe sinon ajouter référence