[Excel-VBA] Bibliothèques
Armojax
Messages postés
1916
Statut
Membre
-
moni -
moni -
Bonjour,
J'ai réalisé pour un copain une petite appli avec Excel-VBA. Elle fonctionnait bien chez moi, et plantait chez mon ami avec un message du genre : Projet ou librairie non disponible.
En regardant dans VBA (Outils/Références…), il y avait, dans la liste des références, une ligne cochée :
MANQUANT : AudioControl ActiveX Control Module
Il a suffi de décocher cette ligne pour que tout fonctionne. Le problème est donc résolu.
Question : pourquoi VBA estimait-il avoir besoin de cette bibliothèque (AudioControl.ocx je suppose) ? Il déduit ça en analysant quel contexte ?
Si quelqu'un a une réponse ?
J'ai réalisé pour un copain une petite appli avec Excel-VBA. Elle fonctionnait bien chez moi, et plantait chez mon ami avec un message du genre : Projet ou librairie non disponible.
En regardant dans VBA (Outils/Références…), il y avait, dans la liste des références, une ligne cochée :
MANQUANT : AudioControl ActiveX Control Module
Il a suffi de décocher cette ligne pour que tout fonctionne. Le problème est donc résolu.
Question : pourquoi VBA estimait-il avoir besoin de cette bibliothèque (AudioControl.ocx je suppose) ? Il déduit ça en analysant quel contexte ?
Si quelqu'un a une réponse ?
A voir également:
- [Excel-VBA] Bibliothèques
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
- Excel compter cellule couleur sans vba - Guide
9 réponses
Bonjour,
j'ai codé un classeur qui charge une référence pour des objets
"Excel VBAProjet" afin de tester, et de lire du code VBA.
Donc à l'ouverture du classeur, je valide par un test d'écriture
si la référence est chargé, si elle ne l'est pas, je charge la
référence. Elle devient comme une macro complémentaire
activé.
Lupin
j'ai codé un classeur qui charge une référence pour des objets
"Excel VBAProjet" afin de tester, et de lire du code VBA.
Donc à l'ouverture du classeur, je valide par un test d'écriture
si la référence est chargé, si elle ne l'est pas, je charge la
référence. Elle devient comme une macro complémentaire
activé.
Lupin
Bonjour Lupin,
Tu peux en dire plus ?
quand tu "valides par un test d'écriture" par exemple, ça ressemble à quoi ?
tu travailles sur les modules ?
bref, raconte!
A+
Tu peux en dire plus ?
quand tu "valides par un test d'écriture" par exemple, ça ressemble à quoi ?
tu travailles sur les modules ?
bref, raconte!
A+
bjrs jvdo,
tout d'abord, je dois dire que j'ai utilisé beaucoup de partel de code
venu du net avant de tout mettre en oeuvre, disons que j'ai modelé
un classeur que j'ai publié sur exceldownload (merci à tous).
Voici la fonction qui valide la présence de la librairie "références":
pour jouer sur les objets eux-mêmes, j'entends les objets VBA et EXCEL, vois par toi-même le classeur, c'est assez simple je crois!
http://www.excel-downloads.com/telechargements/utilitaires/5-4.htm
fichier VizioXLA
Auteur : Arsene Lupin
c'est en fait les lignes :
'vbext_ct_StdModule provoque un erreur si
et
'VBA Extensibility 5.3 n'est pas installée..
qui sont la clé !
ensuite on peut manipuler tous les objets VBA ayant installé cette référence.
Lupin
tout d'abord, je dois dire que j'ai utilisé beaucoup de partel de code
venu du net avant de tout mettre en oeuvre, disons que j'ai modelé
un classeur que j'ai publié sur exceldownload (merci à tous).
Voici la fonction qui valide la présence de la librairie "références":
Public Function PresenceExtension() As Boolean
' Vérification de la présence d'une librairie
Const StdModule = "vbext_ct_StdModule"
Dim Chemin, Texte As String
On Error Resume Next
PresenceExtension = False
With ThisWorkbook.VBProject.VBComponents
'vbext_ct_StdModule provoque un erreur si
'VBA Extensibility 5.3 n'est pas installée..
.Add(vbext_ct_StdModule).Name = "TestVBA"
If (Err <> 0) Then
Texte = "Bibliothèque manquante" & vbCrLf
Texte = Texte & "Cette application va tenter d'installer la bibliothèque manquante."
MsgBox Texte
'Installe la bibliothèque manquante
Chemin = Application.Path
Chemin = Mid(Chemin, 1, 1)
Chemin = Chemin & ":\Program Files\Fichiers communs\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB"
.Parent.References.AddFromFile Chemin
PresenceExtension = True
MsgBox "Opération d'ajout réussi."
Else
.Remove .Item("TestVBA")
PresenceExtension = True
End If
End With
End Function
'
pour jouer sur les objets eux-mêmes, j'entends les objets VBA et EXCEL, vois par toi-même le classeur, c'est assez simple je crois!
http://www.excel-downloads.com/telechargements/utilitaires/5-4.htm
fichier VizioXLA
Auteur : Arsene Lupin
c'est en fait les lignes :
'vbext_ct_StdModule provoque un erreur si
et
'VBA Extensibility 5.3 n'est pas installée..
qui sont la clé !
ensuite on peut manipuler tous les objets VBA ayant installé cette référence.
Lupin
suite :
VBA reconnaît les objets qui lui sont déclarés, de façon dynamique
ou statique, parfois ceux si sont incorporés tel que démontré dans
le code, soit on les oublis, soit on ne réalise pas leur présence
jusqu'au jours ou on conflit entre en jeu pour le manque ou la
nuisance d'un objet secondaire, ou même une version différente.
Par défaut, je crois qu'il y a 4 références de base.
Pour les macros complémentaires, je ne me souviens plus, mais
le même principe s'applique pour l'auto-installation, j'arrive
même à le faire sous VBS.
Lupin
VBA reconnaît les objets qui lui sont déclarés, de façon dynamique
ou statique, parfois ceux si sont incorporés tel que démontré dans
le code, soit on les oublis, soit on ne réalise pas leur présence
jusqu'au jours ou on conflit entre en jeu pour le manque ou la
nuisance d'un objet secondaire, ou même une version différente.
Par défaut, je crois qu'il y a 4 références de base.
Pour les macros complémentaires, je ne me souviens plus, mais
le même principe s'applique pour l'auto-installation, j'arrive
même à le faire sous VBS.
Lupin
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
je n'ai pas eu l'occasion de tester pour l'instant mais je crois bien que vais en avoir besoin bientôt.
merci pour les infos
je n'ai pas eu l'occasion de tester pour l'instant mais je crois bien que vais en avoir besoin bientôt.
merci pour les infos
Absent quelques jours...
Merci Lupin.A pour ton code. Je ne l'ai pas encore essayé, mais je l'ajoute à ma boîte à outils...
La question initiale était moins de s'attacher une référence utile et absente, que de détacher une référence inutile et déclarée - à tort - nécessaire dans un autre environnement.
Merci à tous et bonne semaine.
Merci Lupin.A pour ton code. Je ne l'ai pas encore essayé, mais je l'ajoute à ma boîte à outils...
La question initiale était moins de s'attacher une référence utile et absente, que de détacher une référence inutile et déclarée - à tort - nécessaire dans un autre environnement.
Merci à tous et bonne semaine.
Bonjour Armojax,
sachant que les références peuvent être chargés dynaniquement,
une recherche de la méthode [ .Add ] des xlas ou tout autre classeur ouvert par défaut pourrait cibler une référence chargé à ton insu !
Lupin
sachant que les références peuvent être chargés dynaniquement,
une recherche de la méthode [ .Add ] des xlas ou tout autre classeur ouvert par défaut pourrait cibler une référence chargé à ton insu !
Lupin
Bonjour,
j'ai aussi ce genre de situation.
Ca correspond généralement aux référencements que j'ai faits sur mon environnement de développement, référencements qui sont embarqués avec l'appli et qui apparaissent manquants dans l'environnement cible de l'utilisateur.
A+
j'ai aussi ce genre de situation.
Ca correspond généralement aux référencements que j'ai faits sur mon environnement de développement, référencements qui sont embarqués avec l'appli et qui apparaissent manquants dans l'environnement cible de l'utilisateur.
A+
Salut JvDo,
C'est sans doute un truc comme ça. Il y a juste que je ne vois pas trop comment cette bibliothèque serait venue s'intégrer à mon environnement VBA.
Le module en question est connu de Nero, OK, mais où est le rapport ?
Merci en tout cas de ta réponse. De toutes façons ça n'est pas bloquant...
C'est sans doute un truc comme ça. Il y a juste que je ne vois pas trop comment cette bibliothèque serait venue s'intégrer à mon environnement VBA.
Le module en question est connu de Nero, OK, mais où est le rapport ?
Merci en tout cas de ta réponse. De toutes façons ça n'est pas bloquant...