BJR,
je désire livrer une appli sous XL2000, qui nécessite des références VBA
particulières.Quand je copie le classeur sur une machine, souvent il manque
le lien avec ces références !
Elles sont paramétrées dans l'appli. Est-ce que seulement en copiant les dll
ou ocx dans les dossiers cela suffit ou bien l'activation de ces références
est liée à XL lui-même ???
Merci
Eliot
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour Éliot,
Ta question n'est pas claire ...
A ) si tu veux ajouter une référence à un projet qui fait déjà parti du système d'exploitatiion
(Ici on ajoute une référence à Access 2000) ThisWorkbook.VBProject.References.AddFromFile("C:Program FilesMicrosoft OfficeOfficeMSCACC9.OLB")
B ) Si tu veux tester la présence d'une Dll ou Ocx sur un autre ordinateur et installer le fichier si il est manquant, essaie ceci : Tu n'auras qu'à renseigner la Const "Ref" dans ce module avec le nom du fichier dll que tu veux installer
P.S. Cette procédure, je ne l'ai pas vraiment testé ... si il y a problème revient ...!
Dans le ThisWorkbook du classeur , copie ceci :
'------------------- Private Sub Workbook_Open() 'à l'ouverture du classeur, lancement de 'la procédure d'installation du fichier
OuverturePremièrefois
End Sub '-------------------
Dans un module standard de ton projet : Ceci
'Déclaration Api dans le haut du module Private Declare Function GetSystemDirectory Lib "kernel32.dll" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
'Cette constante représente le fichier que tu veux copier 'à adapter selon le fichier à copier Const Ref As String = "Gif89.dll"
'-------------------------------------- Sub OuverturePremièrefois()
Dim ChFile As String
'Vérifie si la présence du fichier dans le 'répertoire système du nouvel ordinateur ChFile = CheminSystem & "" If Dir(ChFile & Ref) = "" Then 'Vérifie la présence de la dll 'dans le répertoire source de ce fichier. If Dir(ThisWorkbook.Path & "" & Ref) = "" Then MsgBox "Le fichier à installer est absent." & _ " Placer ce fichier " & Ref & " dans le ce " & _ "répertoire : " & ThisWorkbook.Path 'Si fichier(dll) n'est pas dans le répertoire 'de ce classeur, fin de la procédure. Exit Sub End If 'si le fichier n'existe pas, copie du fichier CopierUnFichier ChFile 'Procédure InitialerBaseDeRegistre 'Procédure End If
On Error Resume Next ThisWorkbook.VBProject.References.AddFromFile _ ThisWorkbook.Path & "" & Ref
End Sub '-------------------------------------- Sub CopierUnFichier(Destination As String)
'copie du fichier dans le répertoire système FileCopy ThisWorkbook.Path & "" & Ref, Destination
End Sub '-------------------------------------- Sub InitialerBaseDeRegistre()
Dim Comp As Object, NoLigne As Integer Dim Comp As Object Set Comp = ThisWorkbook.VBProject.VBComponents("Module1")
'Initialise la base de régistre Shell "command.com /c regsvr32.exe c:windowssystem" & Ref
'Supprimer le module1 en entier ThisWorkbook.VBProject.VBComponents.Remove Comp 'Libère l'espace mémoire Set Comp = Nothing End Sub '-------------------------------------- Function CheminSystem() Dim RetVal As Long Dim SysDir As String
If RetVal <> 0 Then CheminSystem = Left$(SysDir, RetVal) End If End Function '--------------------------------------
Salutations!
"EliotNaiss" a écrit dans le message de news: BJR, je désire livrer une appli sous XL2000, qui nécessite des références VBA particulières.Quand je copie le classeur sur une machine, souvent il manque le lien avec ces références ! Elles sont paramétrées dans l'appli. Est-ce que seulement en copiant les dll ou ocx dans les dossiers cela suffit ou bien l'activation de ces références est liée à XL lui-même ??? Merci Eliot
Bonjour Éliot,
Ta question n'est pas claire ...
A ) si tu veux ajouter une référence à un projet qui fait déjà parti du système d'exploitatiion
(Ici on ajoute une référence à Access 2000)
ThisWorkbook.VBProject.References.AddFromFile("C:Program FilesMicrosoft
OfficeOfficeMSCACC9.OLB")
B ) Si tu veux tester la présence d'une Dll ou Ocx sur un autre ordinateur et installer le fichier si il est manquant,
essaie ceci :
Tu n'auras qu'à renseigner la Const "Ref" dans ce module avec le nom du fichier dll que tu veux installer
P.S. Cette procédure, je ne l'ai pas vraiment testé ... si il y a problème revient ...!
Dans le ThisWorkbook du classeur , copie ceci :
'-------------------
Private Sub Workbook_Open()
'à l'ouverture du classeur, lancement de
'la procédure d'installation du fichier
OuverturePremièrefois
End Sub
'-------------------
Dans un module standard de ton projet : Ceci
'Déclaration Api dans le haut du module
Private Declare Function GetSystemDirectory Lib "kernel32.dll" Alias _
"GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
'Cette constante représente le fichier que tu veux copier
'à adapter selon le fichier à copier
Const Ref As String = "Gif89.dll"
'--------------------------------------
Sub OuverturePremièrefois()
Dim ChFile As String
'Vérifie si la présence du fichier dans le
'répertoire système du nouvel ordinateur
ChFile = CheminSystem & ""
If Dir(ChFile & Ref) = "" Then
'Vérifie la présence de la dll
'dans le répertoire source de ce fichier.
If Dir(ThisWorkbook.Path & "" & Ref) = "" Then
MsgBox "Le fichier à installer est absent." & _
" Placer ce fichier " & Ref & " dans le ce " & _
"répertoire : " & ThisWorkbook.Path
'Si fichier(dll) n'est pas dans le répertoire
'de ce classeur, fin de la procédure.
Exit Sub
End If
'si le fichier n'existe pas, copie du fichier
CopierUnFichier ChFile 'Procédure
InitialerBaseDeRegistre 'Procédure
End If
On Error Resume Next
ThisWorkbook.VBProject.References.AddFromFile _
ThisWorkbook.Path & "" & Ref
End Sub
'--------------------------------------
Sub CopierUnFichier(Destination As String)
'copie du fichier dans le répertoire système
FileCopy ThisWorkbook.Path & "" & Ref, Destination
End Sub
'--------------------------------------
Sub InitialerBaseDeRegistre()
Dim Comp As Object, NoLigne As Integer
Dim Comp As Object
Set Comp = ThisWorkbook.VBProject.VBComponents("Module1")
'Initialise la base de régistre
Shell "command.com /c regsvr32.exe c:windowssystem" & Ref
'Supprimer le module1 en entier
ThisWorkbook.VBProject.VBComponents.Remove Comp
'Libère l'espace mémoire
Set Comp = Nothing
End Sub
'--------------------------------------
Function CheminSystem()
Dim RetVal As Long
Dim SysDir As String
If RetVal <> 0 Then
CheminSystem = Left$(SysDir, RetVal)
End If
End Function
'--------------------------------------
Salutations!
"EliotNaiss" <eliotn@laposteraie.net> a écrit dans le message de news:ufStXAGUEHA.2944@tk2msftngp13.phx.gbl...
BJR,
je désire livrer une appli sous XL2000, qui nécessite des références VBA
particulières.Quand je copie le classeur sur une machine, souvent il manque
le lien avec ces références !
Elles sont paramétrées dans l'appli. Est-ce que seulement en copiant les dll
ou ocx dans les dossiers cela suffit ou bien l'activation de ces références
est liée à XL lui-même ???
Merci
Eliot
A ) si tu veux ajouter une référence à un projet qui fait déjà parti du système d'exploitatiion
(Ici on ajoute une référence à Access 2000) ThisWorkbook.VBProject.References.AddFromFile("C:Program FilesMicrosoft OfficeOfficeMSCACC9.OLB")
B ) Si tu veux tester la présence d'une Dll ou Ocx sur un autre ordinateur et installer le fichier si il est manquant, essaie ceci : Tu n'auras qu'à renseigner la Const "Ref" dans ce module avec le nom du fichier dll que tu veux installer
P.S. Cette procédure, je ne l'ai pas vraiment testé ... si il y a problème revient ...!
Dans le ThisWorkbook du classeur , copie ceci :
'------------------- Private Sub Workbook_Open() 'à l'ouverture du classeur, lancement de 'la procédure d'installation du fichier
OuverturePremièrefois
End Sub '-------------------
Dans un module standard de ton projet : Ceci
'Déclaration Api dans le haut du module Private Declare Function GetSystemDirectory Lib "kernel32.dll" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
'Cette constante représente le fichier que tu veux copier 'à adapter selon le fichier à copier Const Ref As String = "Gif89.dll"
'-------------------------------------- Sub OuverturePremièrefois()
Dim ChFile As String
'Vérifie si la présence du fichier dans le 'répertoire système du nouvel ordinateur ChFile = CheminSystem & "" If Dir(ChFile & Ref) = "" Then 'Vérifie la présence de la dll 'dans le répertoire source de ce fichier. If Dir(ThisWorkbook.Path & "" & Ref) = "" Then MsgBox "Le fichier à installer est absent." & _ " Placer ce fichier " & Ref & " dans le ce " & _ "répertoire : " & ThisWorkbook.Path 'Si fichier(dll) n'est pas dans le répertoire 'de ce classeur, fin de la procédure. Exit Sub End If 'si le fichier n'existe pas, copie du fichier CopierUnFichier ChFile 'Procédure InitialerBaseDeRegistre 'Procédure End If
On Error Resume Next ThisWorkbook.VBProject.References.AddFromFile _ ThisWorkbook.Path & "" & Ref
End Sub '-------------------------------------- Sub CopierUnFichier(Destination As String)
'copie du fichier dans le répertoire système FileCopy ThisWorkbook.Path & "" & Ref, Destination
End Sub '-------------------------------------- Sub InitialerBaseDeRegistre()
Dim Comp As Object, NoLigne As Integer Dim Comp As Object Set Comp = ThisWorkbook.VBProject.VBComponents("Module1")
'Initialise la base de régistre Shell "command.com /c regsvr32.exe c:windowssystem" & Ref
'Supprimer le module1 en entier ThisWorkbook.VBProject.VBComponents.Remove Comp 'Libère l'espace mémoire Set Comp = Nothing End Sub '-------------------------------------- Function CheminSystem() Dim RetVal As Long Dim SysDir As String
If RetVal <> 0 Then CheminSystem = Left$(SysDir, RetVal) End If End Function '--------------------------------------
Salutations!
"EliotNaiss" a écrit dans le message de news: BJR, je désire livrer une appli sous XL2000, qui nécessite des références VBA particulières.Quand je copie le classeur sur une machine, souvent il manque le lien avec ces références ! Elles sont paramétrées dans l'appli. Est-ce que seulement en copiant les dll ou ocx dans les dossiers cela suffit ou bien l'activation de ces références est liée à XL lui-même ??? Merci Eliot