Bonjour,
Avec vba, je voudrais charger automatiquement une macro complémentaire
'mesmacros.xla' à l'ouverture de CERTAINSclasseurs et la décharger à la
fermeture de ces mêmes classeurs. Ceci pour deux raisons :
- Dans le cas général (classeurs pour lesquels ce n'est pas prévu) les
macros contenues dans 'mesmacros.xla' ne doivent pas être accessibles.
- Le temps de chargement est relativement long.
Quel serait le code à insérer dans les classeurs nécessitant la macro pour
faire l'équivalent du menu Outils>Macro complémentaires ?
Bonne journée à tous
cmoi
Bonjour,
Avec vba, je voudrais charger automatiquement une macro complémentaire
'mesmacros.xla' à l'ouverture de CERTAINSclasseurs et la décharger à la
fermeture de ces mêmes classeurs. Ceci pour deux raisons :
- Dans le cas général (classeurs pour lesquels ce n'est pas prévu) les
macros contenues dans 'mesmacros.xla' ne doivent pas être accessibles.
- Le temps de chargement est relativement long.
Quel serait le code à insérer dans les classeurs nécessitant la macro pour
faire l'équivalent du menu Outils>Macro complémentaires ?
Bonne journée à tous
cmoi
Bonjour,
Avec vba, je voudrais charger automatiquement une macro complémentaire
'mesmacros.xla' à l'ouverture de CERTAINSclasseurs et la décharger à la
fermeture de ces mêmes classeurs. Ceci pour deux raisons :
- Dans le cas général (classeurs pour lesquels ce n'est pas prévu) les
macros contenues dans 'mesmacros.xla' ne doivent pas être accessibles.
- Le temps de chargement est relativement long.
Quel serait le code à insérer dans les classeurs nécessitant la macro pour
faire l'équivalent du menu Outils>Macro complémentaires ?
Bonne journée à tous
cmoi
Bonjour
Si ta XLA est déjà présente dans la liste :
Application.AddIns("Macro complémentaire").Installed = True
En remplaçant par le nom apparaissant dans la liste quand tu fais Outils,
Macros Complémentaires
Sinon, il faut au préalable l'ajouter à la liste :
Application.AddIns.Add ("C:totomacrocomp.xla")
Cordialement
Pascal
"cmoi" a écrit dans le message de news:
47f35407$0$870$Bonjour,
Avec vba, je voudrais charger automatiquement une macro complémentaire
'mesmacros.xla' à l'ouverture de CERTAINSclasseurs et la décharger à la
fermeture de ces mêmes classeurs. Ceci pour deux raisons :
- Dans le cas général (classeurs pour lesquels ce n'est pas prévu) les
macros contenues dans 'mesmacros.xla' ne doivent pas être accessibles.
- Le temps de chargement est relativement long.
Quel serait le code à insérer dans les classeurs nécessitant la macro
pour faire l'équivalent du menu Outils>Macro complémentaires ?
Bonne journée à tous
cmoi
Bonjour
Si ta XLA est déjà présente dans la liste :
Application.AddIns("Macro complémentaire").Installed = True
En remplaçant par le nom apparaissant dans la liste quand tu fais Outils,
Macros Complémentaires
Sinon, il faut au préalable l'ajouter à la liste :
Application.AddIns.Add ("C:totomacrocomp.xla")
Cordialement
Pascal
"cmoi" <moimp@orange.fr> a écrit dans le message de news:
47f35407$0$870$ba4acef3@news.orange.fr...
Bonjour,
Avec vba, je voudrais charger automatiquement une macro complémentaire
'mesmacros.xla' à l'ouverture de CERTAINSclasseurs et la décharger à la
fermeture de ces mêmes classeurs. Ceci pour deux raisons :
- Dans le cas général (classeurs pour lesquels ce n'est pas prévu) les
macros contenues dans 'mesmacros.xla' ne doivent pas être accessibles.
- Le temps de chargement est relativement long.
Quel serait le code à insérer dans les classeurs nécessitant la macro
pour faire l'équivalent du menu Outils>Macro complémentaires ?
Bonne journée à tous
cmoi
Bonjour
Si ta XLA est déjà présente dans la liste :
Application.AddIns("Macro complémentaire").Installed = True
En remplaçant par le nom apparaissant dans la liste quand tu fais Outils,
Macros Complémentaires
Sinon, il faut au préalable l'ajouter à la liste :
Application.AddIns.Add ("C:totomacrocomp.xla")
Cordialement
Pascal
"cmoi" a écrit dans le message de news:
47f35407$0$870$Bonjour,
Avec vba, je voudrais charger automatiquement une macro complémentaire
'mesmacros.xla' à l'ouverture de CERTAINSclasseurs et la décharger à la
fermeture de ces mêmes classeurs. Ceci pour deux raisons :
- Dans le cas général (classeurs pour lesquels ce n'est pas prévu) les
macros contenues dans 'mesmacros.xla' ne doivent pas être accessibles.
- Le temps de chargement est relativement long.
Quel serait le code à insérer dans les classeurs nécessitant la macro
pour faire l'équivalent du menu Outils>Macro complémentaires ?
Bonne journée à tous
cmoi
Bonjour,
Avec vba, je voudrais charger automatiquement une macro complémentaire
'mesmacros.xla' à l'ouverture de CERTAINSclasseurs et la décharger à la
fermeture de ces mêmes classeurs. Ceci pour deux raisons :
- Dans le cas général (classeurs pour lesquels ce n'est pas prévu) les
macros contenues dans 'mesmacros.xla' ne doivent pas être accessibles.
- Le temps de chargement est relativement long.
Quel serait le code à insérer dans les classeurs nécessitant la macro pour
faire l'équivalent du menu Outils>Macro complémentaires ?
Bonne journée à tous
cmoi
Bonjour,
Avec vba, je voudrais charger automatiquement une macro complémentaire
'mesmacros.xla' à l'ouverture de CERTAINSclasseurs et la décharger à la
fermeture de ces mêmes classeurs. Ceci pour deux raisons :
- Dans le cas général (classeurs pour lesquels ce n'est pas prévu) les
macros contenues dans 'mesmacros.xla' ne doivent pas être accessibles.
- Le temps de chargement est relativement long.
Quel serait le code à insérer dans les classeurs nécessitant la macro pour
faire l'équivalent du menu Outils>Macro complémentaires ?
Bonne journée à tous
cmoi
Bonjour,
Avec vba, je voudrais charger automatiquement une macro complémentaire
'mesmacros.xla' à l'ouverture de CERTAINSclasseurs et la décharger à la
fermeture de ces mêmes classeurs. Ceci pour deux raisons :
- Dans le cas général (classeurs pour lesquels ce n'est pas prévu) les
macros contenues dans 'mesmacros.xla' ne doivent pas être accessibles.
- Le temps de chargement est relativement long.
Quel serait le code à insérer dans les classeurs nécessitant la macro pour
faire l'équivalent du menu Outils>Macro complémentaires ?
Bonne journée à tous
cmoi
Une autre approche pourrait être de laisser ta macro complémentaire
disponible en permanence (=cochée dans la liste de la boite de dialogue
'OutilsMacros complémentaires...'), et de la rendre disponible aux
classeurs qui t'intéresse en établissant une référence vers cette macro à
l'ouverture des classeurs voulus et en la supprimant à leur fermeture.
Les bouts de code pour établir et supprimer une référence :
'======================== > Sub AjouteRéférence2()
'nom du classeur auquel renvoie la référence (à adapter):
' "D: 6OfficeVBAClasseurTestXla.Xla"
'nom du projet VBA de ce classeur (à adapter):
' "ClasseurTestXla(ClasseurTestXla.Xla)"
ThisWorkbook.VBProject.References.AddFromFile _
"D: 6OfficeVBAClasseurTestXla.Xla"
End Sub
Sub EnlèveRéférence2()
With ThisWorkbook.VBProject.References
.Remove .Item("ClasseurTestXla")
End With
End Sub
'======================== >
FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.frBonjour,
Avec vba, je voudrais charger automatiquement une macro complémentaire
'mesmacros.xla' à l'ouverture de CERTAINSclasseurs et la décharger à la
fermeture de ces mêmes classeurs. Ceci pour deux raisons :
- Dans le cas général (classeurs pour lesquels ce n'est pas prévu) les
macros contenues dans 'mesmacros.xla' ne doivent pas être accessibles.
- Le temps de chargement est relativement long.
Quel serait le code à insérer dans les classeurs nécessitant la macro
pour faire l'équivalent du menu Outils>Macro complémentaires ?
Bonne journée à tous
cmoi
Une autre approche pourrait être de laisser ta macro complémentaire
disponible en permanence (=cochée dans la liste de la boite de dialogue
'OutilsMacros complémentaires...'), et de la rendre disponible aux
classeurs qui t'intéresse en établissant une référence vers cette macro à
l'ouverture des classeurs voulus et en la supprimant à leur fermeture.
Les bouts de code pour établir et supprimer une référence :
'======================== > Sub AjouteRéférence2()
'nom du classeur auquel renvoie la référence (à adapter):
' "D: 6OfficeVBAClasseurTestXla.Xla"
'nom du projet VBA de ce classeur (à adapter):
' "ClasseurTestXla(ClasseurTestXla.Xla)"
ThisWorkbook.VBProject.References.AddFromFile _
"D: 6OfficeVBAClasseurTestXla.Xla"
End Sub
Sub EnlèveRéférence2()
With ThisWorkbook.VBProject.References
.Remove .Item("ClasseurTestXla")
End With
End Sub
'======================== >
FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.fr
Bonjour,
Avec vba, je voudrais charger automatiquement une macro complémentaire
'mesmacros.xla' à l'ouverture de CERTAINSclasseurs et la décharger à la
fermeture de ces mêmes classeurs. Ceci pour deux raisons :
- Dans le cas général (classeurs pour lesquels ce n'est pas prévu) les
macros contenues dans 'mesmacros.xla' ne doivent pas être accessibles.
- Le temps de chargement est relativement long.
Quel serait le code à insérer dans les classeurs nécessitant la macro
pour faire l'équivalent du menu Outils>Macro complémentaires ?
Bonne journée à tous
cmoi
Une autre approche pourrait être de laisser ta macro complémentaire
disponible en permanence (=cochée dans la liste de la boite de dialogue
'OutilsMacros complémentaires...'), et de la rendre disponible aux
classeurs qui t'intéresse en établissant une référence vers cette macro à
l'ouverture des classeurs voulus et en la supprimant à leur fermeture.
Les bouts de code pour établir et supprimer une référence :
'======================== > Sub AjouteRéférence2()
'nom du classeur auquel renvoie la référence (à adapter):
' "D: 6OfficeVBAClasseurTestXla.Xla"
'nom du projet VBA de ce classeur (à adapter):
' "ClasseurTestXla(ClasseurTestXla.Xla)"
ThisWorkbook.VBProject.References.AddFromFile _
"D: 6OfficeVBAClasseurTestXla.Xla"
End Sub
Sub EnlèveRéférence2()
With ThisWorkbook.VBProject.References
.Remove .Item("ClasseurTestXla")
End With
End Sub
'======================== >
FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.frBonjour,
Avec vba, je voudrais charger automatiquement une macro complémentaire
'mesmacros.xla' à l'ouverture de CERTAINSclasseurs et la décharger à la
fermeture de ces mêmes classeurs. Ceci pour deux raisons :
- Dans le cas général (classeurs pour lesquels ce n'est pas prévu) les
macros contenues dans 'mesmacros.xla' ne doivent pas être accessibles.
- Le temps de chargement est relativement long.
Quel serait le code à insérer dans les classeurs nécessitant la macro
pour faire l'équivalent du menu Outils>Macro complémentaires ?
Bonne journée à tous
cmoi
Si possible, j'aimerais mieux faire marcher la méthode :
Application.AddIns("Macro complémentaire").Installed = True
Que faire ?
Bonsoir,
D'une part cette méthode ne me convient pas vraiment pour les deux raisons
indiquées dans mon premier post du 2 avril.
D'autre part elle provoque deux erreurs:
- Si la macro complémentaire est disponible, j'obtiens une erreur 32813: Nom
de module, de projet ou de bibliothèque d'objet déjà utilisé.
- Dans le cas contraire, j'ai une erreur 48: Erreur de chargement de la dll.
Si possible, j'aimerais mieux faire marcher la méthode :
Application.AddIns("Macro complémentaire").Installed = True
Que faire ?
cmoi
"Frédéric Sigonneau" a écrit dans le message de news:Une autre approche pourrait être de laisser ta macro complémentaire
disponible en permanence (=cochée dans la liste de la boite de dialogue
'OutilsMacros complémentaires...'), et de la rendre disponible aux
classeurs qui t'intéresse en établissant une référence vers cette macro à
l'ouverture des classeurs voulus et en la supprimant à leur fermeture.
Les bouts de code pour établir et supprimer une référence :
'======================== >> Sub AjouteRéférence2()
'nom du classeur auquel renvoie la référence (à adapter):
' "D: 6OfficeVBAClasseurTestXla.Xla"
'nom du projet VBA de ce classeur (à adapter):
' "ClasseurTestXla(ClasseurTestXla.Xla)"
ThisWorkbook.VBProject.References.AddFromFile _
"D: 6OfficeVBAClasseurTestXla.Xla"
End Sub
Sub EnlèveRéférence2()
With ThisWorkbook.VBProject.References
.Remove .Item("ClasseurTestXla")
End With
End Sub
'======================== >>
FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.frBonjour,
Avec vba, je voudrais charger automatiquement une macro complémentaire
'mesmacros.xla' à l'ouverture de CERTAINSclasseurs et la décharger à la
fermeture de ces mêmes classeurs. Ceci pour deux raisons :
- Dans le cas général (classeurs pour lesquels ce n'est pas prévu) les
macros contenues dans 'mesmacros.xla' ne doivent pas être accessibles.
- Le temps de chargement est relativement long.
Quel serait le code à insérer dans les classeurs nécessitant la macro
pour faire l'équivalent du menu Outils>Macro complémentaires ?
Bonne journée à tous
cmoi
Si possible, j'aimerais mieux faire marcher la méthode :
Application.AddIns("Macro complémentaire").Installed = True
Que faire ?
Bonsoir,
D'une part cette méthode ne me convient pas vraiment pour les deux raisons
indiquées dans mon premier post du 2 avril.
D'autre part elle provoque deux erreurs:
- Si la macro complémentaire est disponible, j'obtiens une erreur 32813: Nom
de module, de projet ou de bibliothèque d'objet déjà utilisé.
- Dans le cas contraire, j'ai une erreur 48: Erreur de chargement de la dll.
Si possible, j'aimerais mieux faire marcher la méthode :
Application.AddIns("Macro complémentaire").Installed = True
Que faire ?
cmoi
"Frédéric Sigonneau" <nospam@nospam> a écrit dans le message de news:
Obd5nyblIHA.464@TK2MSFTNGP02.phx.gbl...
Une autre approche pourrait être de laisser ta macro complémentaire
disponible en permanence (=cochée dans la liste de la boite de dialogue
'OutilsMacros complémentaires...'), et de la rendre disponible aux
classeurs qui t'intéresse en établissant une référence vers cette macro à
l'ouverture des classeurs voulus et en la supprimant à leur fermeture.
Les bouts de code pour établir et supprimer une référence :
'======================== >> Sub AjouteRéférence2()
'nom du classeur auquel renvoie la référence (à adapter):
' "D: 6OfficeVBAClasseurTestXla.Xla"
'nom du projet VBA de ce classeur (à adapter):
' "ClasseurTestXla(ClasseurTestXla.Xla)"
ThisWorkbook.VBProject.References.AddFromFile _
"D: 6OfficeVBAClasseurTestXla.Xla"
End Sub
Sub EnlèveRéférence2()
With ThisWorkbook.VBProject.References
.Remove .Item("ClasseurTestXla")
End With
End Sub
'======================== >>
FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.fr
Bonjour,
Avec vba, je voudrais charger automatiquement une macro complémentaire
'mesmacros.xla' à l'ouverture de CERTAINSclasseurs et la décharger à la
fermeture de ces mêmes classeurs. Ceci pour deux raisons :
- Dans le cas général (classeurs pour lesquels ce n'est pas prévu) les
macros contenues dans 'mesmacros.xla' ne doivent pas être accessibles.
- Le temps de chargement est relativement long.
Quel serait le code à insérer dans les classeurs nécessitant la macro
pour faire l'équivalent du menu Outils>Macro complémentaires ?
Bonne journée à tous
cmoi
Si possible, j'aimerais mieux faire marcher la méthode :
Application.AddIns("Macro complémentaire").Installed = True
Que faire ?
Bonsoir,
D'une part cette méthode ne me convient pas vraiment pour les deux raisons
indiquées dans mon premier post du 2 avril.
D'autre part elle provoque deux erreurs:
- Si la macro complémentaire est disponible, j'obtiens une erreur 32813: Nom
de module, de projet ou de bibliothèque d'objet déjà utilisé.
- Dans le cas contraire, j'ai une erreur 48: Erreur de chargement de la dll.
Si possible, j'aimerais mieux faire marcher la méthode :
Application.AddIns("Macro complémentaire").Installed = True
Que faire ?
cmoi
"Frédéric Sigonneau" a écrit dans le message de news:Une autre approche pourrait être de laisser ta macro complémentaire
disponible en permanence (=cochée dans la liste de la boite de dialogue
'OutilsMacros complémentaires...'), et de la rendre disponible aux
classeurs qui t'intéresse en établissant une référence vers cette macro à
l'ouverture des classeurs voulus et en la supprimant à leur fermeture.
Les bouts de code pour établir et supprimer une référence :
'======================== >> Sub AjouteRéférence2()
'nom du classeur auquel renvoie la référence (à adapter):
' "D: 6OfficeVBAClasseurTestXla.Xla"
'nom du projet VBA de ce classeur (à adapter):
' "ClasseurTestXla(ClasseurTestXla.Xla)"
ThisWorkbook.VBProject.References.AddFromFile _
"D: 6OfficeVBAClasseurTestXla.Xla"
End Sub
Sub EnlèveRéférence2()
With ThisWorkbook.VBProject.References
.Remove .Item("ClasseurTestXla")
End With
End Sub
'======================== >>
FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.frBonjour,
Avec vba, je voudrais charger automatiquement une macro complémentaire
'mesmacros.xla' à l'ouverture de CERTAINSclasseurs et la décharger à la
fermeture de ces mêmes classeurs. Ceci pour deux raisons :
- Dans le cas général (classeurs pour lesquels ce n'est pas prévu) les
macros contenues dans 'mesmacros.xla' ne doivent pas être accessibles.
- Le temps de chargement est relativement long.
Quel serait le code à insérer dans les classeurs nécessitant la macro
pour faire l'équivalent du menu Outils>Macro complémentaires ?
Bonne journée à tous
cmoi
Si possible, j'aimerais mieux faire marcher la méthode :
Application.AddIns("Macro complémentaire").Installed = True
Que faire ?
D'abord, vérifier que ta macro complémentaire est bien enregistrée au
format .xla : ta réponse à papou laisse un doute à ce sujet.
Pour vérifier : la propriété IsAddin du classeur (module ThisWorkbook)
doit être sur True.
Ensuite, pour manipuler une macro complémentaire dans la collection
Addins, elle doit avoir une propriété Title renseignée (ou alors il faut
passer en revue toutes les macros disponibles pour retrouver son index).
Pour cela, alors que la propriété IsAddin est sur False, dans Excel
dérouler le menu Fichier puis Propriétés et dans l'onglet Résumé
renseigner le champ titre.
Enregistrer.
Tu n'es pas au bout de tes peines.
Si tu as installé ta macro manuellement alors que cette propriété n'était
pas renseignée, elle apparaît dans la liste des macros avec un "faux"
titre (le nom du fichier sans l'extension). Il faut provoquer la
suppression de ce nom.
Pour cela, fermer Excel, dans l'explorateur renommer la macro
complémentaire (de maMacro.xla en __maMacro.xla par ex). Puis réouvrir
Excel. Si la macro était installée avant la fermeture, Excel va la
chercher et ne pas la trouver. Et demander si tu veux la supprimer de la
liste. Répondre Oui. Si elle n'était pas installée, tenter de la faire.
Même réaction d'Excel, même réponse.
Ensuite refermer Excel, retourner dans l'explorateur, redonner à la macro
son nom initial, réouvrir Excel et réinstaller la macro. Elle devrait
maintenant apparaître dans la liste avec le titre que tu lui as donné.
Et pouvoir être installée et désintallée avec le code
Application.AddIns("Titre de la macro").Installed = True
(tout ça pour Excel 2003 mais valide avec 2002, et sans doute 2000 et 97.
Pour 2007 je ne sais pas).
FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.frBonsoir,
D'une part cette méthode ne me convient pas vraiment pour les deux
raisons indiquées dans mon premier post du 2 avril.
D'autre part elle provoque deux erreurs:
- Si la macro complémentaire est disponible, j'obtiens une erreur 32813:
Nom de module, de projet ou de bibliothèque d'objet déjà utilisé.
- Dans le cas contraire, j'ai une erreur 48: Erreur de chargement de la
dll.
Si possible, j'aimerais mieux faire marcher la méthode :
Application.AddIns("Macro complémentaire").Installed = True
Que faire ?
cmoi
"Frédéric Sigonneau" a écrit dans le message de news:Une autre approche pourrait être de laisser ta macro complémentaire
disponible en permanence (=cochée dans la liste de la boite de dialogue
'OutilsMacros complémentaires...'), et de la rendre disponible aux
classeurs qui t'intéresse en établissant une référence vers cette macro
à l'ouverture des classeurs voulus et en la supprimant à leur fermeture.
Les bouts de code pour établir et supprimer une référence :
'======================== >>> Sub AjouteRéférence2()
'nom du classeur auquel renvoie la référence (à adapter):
' "D: 6OfficeVBAClasseurTestXla.Xla"
'nom du projet VBA de ce classeur (à adapter):
' "ClasseurTestXla(ClasseurTestXla.Xla)"
ThisWorkbook.VBProject.References.AddFromFile _
"D: 6OfficeVBAClasseurTestXla.Xla"
End Sub
Sub EnlèveRéférence2()
With ThisWorkbook.VBProject.References
.Remove .Item("ClasseurTestXla")
End With
End Sub
'======================== >>>
FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.frBonjour,
Avec vba, je voudrais charger automatiquement une macro complémentaire
'mesmacros.xla' à l'ouverture de CERTAINSclasseurs et la décharger à la
fermeture de ces mêmes classeurs. Ceci pour deux raisons :
- Dans le cas général (classeurs pour lesquels ce n'est pas prévu) les
macros contenues dans 'mesmacros.xla' ne doivent pas être accessibles.
- Le temps de chargement est relativement long.
Quel serait le code à insérer dans les classeurs nécessitant la macro
pour faire l'équivalent du menu Outils>Macro complémentaires ?
Bonne journée à tous
cmoi
Si possible, j'aimerais mieux faire marcher la méthode :
Application.AddIns("Macro complémentaire").Installed = True
Que faire ?
D'abord, vérifier que ta macro complémentaire est bien enregistrée au
format .xla : ta réponse à papou laisse un doute à ce sujet.
Pour vérifier : la propriété IsAddin du classeur (module ThisWorkbook)
doit être sur True.
Ensuite, pour manipuler une macro complémentaire dans la collection
Addins, elle doit avoir une propriété Title renseignée (ou alors il faut
passer en revue toutes les macros disponibles pour retrouver son index).
Pour cela, alors que la propriété IsAddin est sur False, dans Excel
dérouler le menu Fichier puis Propriétés et dans l'onglet Résumé
renseigner le champ titre.
Enregistrer.
Tu n'es pas au bout de tes peines.
Si tu as installé ta macro manuellement alors que cette propriété n'était
pas renseignée, elle apparaît dans la liste des macros avec un "faux"
titre (le nom du fichier sans l'extension). Il faut provoquer la
suppression de ce nom.
Pour cela, fermer Excel, dans l'explorateur renommer la macro
complémentaire (de maMacro.xla en __maMacro.xla par ex). Puis réouvrir
Excel. Si la macro était installée avant la fermeture, Excel va la
chercher et ne pas la trouver. Et demander si tu veux la supprimer de la
liste. Répondre Oui. Si elle n'était pas installée, tenter de la faire.
Même réaction d'Excel, même réponse.
Ensuite refermer Excel, retourner dans l'explorateur, redonner à la macro
son nom initial, réouvrir Excel et réinstaller la macro. Elle devrait
maintenant apparaître dans la liste avec le titre que tu lui as donné.
Et pouvoir être installée et désintallée avec le code
Application.AddIns("Titre de la macro").Installed = True
(tout ça pour Excel 2003 mais valide avec 2002, et sans doute 2000 et 97.
Pour 2007 je ne sais pas).
FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.fr
Bonsoir,
D'une part cette méthode ne me convient pas vraiment pour les deux
raisons indiquées dans mon premier post du 2 avril.
D'autre part elle provoque deux erreurs:
- Si la macro complémentaire est disponible, j'obtiens une erreur 32813:
Nom de module, de projet ou de bibliothèque d'objet déjà utilisé.
- Dans le cas contraire, j'ai une erreur 48: Erreur de chargement de la
dll.
Si possible, j'aimerais mieux faire marcher la méthode :
Application.AddIns("Macro complémentaire").Installed = True
Que faire ?
cmoi
"Frédéric Sigonneau" <nospam@nospam> a écrit dans le message de news:
Obd5nyblIHA.464@TK2MSFTNGP02.phx.gbl...
Une autre approche pourrait être de laisser ta macro complémentaire
disponible en permanence (=cochée dans la liste de la boite de dialogue
'OutilsMacros complémentaires...'), et de la rendre disponible aux
classeurs qui t'intéresse en établissant une référence vers cette macro
à l'ouverture des classeurs voulus et en la supprimant à leur fermeture.
Les bouts de code pour établir et supprimer une référence :
'======================== >>> Sub AjouteRéférence2()
'nom du classeur auquel renvoie la référence (à adapter):
' "D: 6OfficeVBAClasseurTestXla.Xla"
'nom du projet VBA de ce classeur (à adapter):
' "ClasseurTestXla(ClasseurTestXla.Xla)"
ThisWorkbook.VBProject.References.AddFromFile _
"D: 6OfficeVBAClasseurTestXla.Xla"
End Sub
Sub EnlèveRéférence2()
With ThisWorkbook.VBProject.References
.Remove .Item("ClasseurTestXla")
End With
End Sub
'======================== >>>
FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.fr
Bonjour,
Avec vba, je voudrais charger automatiquement une macro complémentaire
'mesmacros.xla' à l'ouverture de CERTAINSclasseurs et la décharger à la
fermeture de ces mêmes classeurs. Ceci pour deux raisons :
- Dans le cas général (classeurs pour lesquels ce n'est pas prévu) les
macros contenues dans 'mesmacros.xla' ne doivent pas être accessibles.
- Le temps de chargement est relativement long.
Quel serait le code à insérer dans les classeurs nécessitant la macro
pour faire l'équivalent du menu Outils>Macro complémentaires ?
Bonne journée à tous
cmoi
Si possible, j'aimerais mieux faire marcher la méthode :
Application.AddIns("Macro complémentaire").Installed = True
Que faire ?
D'abord, vérifier que ta macro complémentaire est bien enregistrée au
format .xla : ta réponse à papou laisse un doute à ce sujet.
Pour vérifier : la propriété IsAddin du classeur (module ThisWorkbook)
doit être sur True.
Ensuite, pour manipuler une macro complémentaire dans la collection
Addins, elle doit avoir une propriété Title renseignée (ou alors il faut
passer en revue toutes les macros disponibles pour retrouver son index).
Pour cela, alors que la propriété IsAddin est sur False, dans Excel
dérouler le menu Fichier puis Propriétés et dans l'onglet Résumé
renseigner le champ titre.
Enregistrer.
Tu n'es pas au bout de tes peines.
Si tu as installé ta macro manuellement alors que cette propriété n'était
pas renseignée, elle apparaît dans la liste des macros avec un "faux"
titre (le nom du fichier sans l'extension). Il faut provoquer la
suppression de ce nom.
Pour cela, fermer Excel, dans l'explorateur renommer la macro
complémentaire (de maMacro.xla en __maMacro.xla par ex). Puis réouvrir
Excel. Si la macro était installée avant la fermeture, Excel va la
chercher et ne pas la trouver. Et demander si tu veux la supprimer de la
liste. Répondre Oui. Si elle n'était pas installée, tenter de la faire.
Même réaction d'Excel, même réponse.
Ensuite refermer Excel, retourner dans l'explorateur, redonner à la macro
son nom initial, réouvrir Excel et réinstaller la macro. Elle devrait
maintenant apparaître dans la liste avec le titre que tu lui as donné.
Et pouvoir être installée et désintallée avec le code
Application.AddIns("Titre de la macro").Installed = True
(tout ça pour Excel 2003 mais valide avec 2002, et sans doute 2000 et 97.
Pour 2007 je ne sais pas).
FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.frBonsoir,
D'une part cette méthode ne me convient pas vraiment pour les deux
raisons indiquées dans mon premier post du 2 avril.
D'autre part elle provoque deux erreurs:
- Si la macro complémentaire est disponible, j'obtiens une erreur 32813:
Nom de module, de projet ou de bibliothèque d'objet déjà utilisé.
- Dans le cas contraire, j'ai une erreur 48: Erreur de chargement de la
dll.
Si possible, j'aimerais mieux faire marcher la méthode :
Application.AddIns("Macro complémentaire").Installed = True
Que faire ?
cmoi
"Frédéric Sigonneau" a écrit dans le message de news:Une autre approche pourrait être de laisser ta macro complémentaire
disponible en permanence (=cochée dans la liste de la boite de dialogue
'OutilsMacros complémentaires...'), et de la rendre disponible aux
classeurs qui t'intéresse en établissant une référence vers cette macro
à l'ouverture des classeurs voulus et en la supprimant à leur fermeture.
Les bouts de code pour établir et supprimer une référence :
'======================== >>> Sub AjouteRéférence2()
'nom du classeur auquel renvoie la référence (à adapter):
' "D: 6OfficeVBAClasseurTestXla.Xla"
'nom du projet VBA de ce classeur (à adapter):
' "ClasseurTestXla(ClasseurTestXla.Xla)"
ThisWorkbook.VBProject.References.AddFromFile _
"D: 6OfficeVBAClasseurTestXla.Xla"
End Sub
Sub EnlèveRéférence2()
With ThisWorkbook.VBProject.References
.Remove .Item("ClasseurTestXla")
End With
End Sub
'======================== >>>
FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.frBonjour,
Avec vba, je voudrais charger automatiquement une macro complémentaire
'mesmacros.xla' à l'ouverture de CERTAINSclasseurs et la décharger à la
fermeture de ces mêmes classeurs. Ceci pour deux raisons :
- Dans le cas général (classeurs pour lesquels ce n'est pas prévu) les
macros contenues dans 'mesmacros.xla' ne doivent pas être accessibles.
- Le temps de chargement est relativement long.
Quel serait le code à insérer dans les classeurs nécessitant la macro
pour faire l'équivalent du menu Outils>Macro complémentaires ?
Bonne journée à tous
cmoi
Bonsoir et merci
La macro est bien enregistrée au format .xla. Elle s'appelle "MacrosRP.xla"
La propriété IsAddin renvoie bien vrai
J'ai bien un titre défini dans les propriétés (non pas dans Excel car non
accessible, mais dans l'explorateur Windows). Ce titre apparaît bien dans la
liste des macros complémentaires (menu Outils>Macros complémentaires)
Jusqu'ici tout est OK
Mais c'est le code :
Application.AddIns("Titre de la macro").Installed = True
qui pose un problème. Ce code se trouve dans le Workbook_Open d'un modèle
..xlt qui utilise la macro complémentaire .xla
Après exécution, la macro est bien cochée dans le menu Macros
complémentaires avec le bon titre, mais lorsque j'ouvre la fenêtre vba, la
macro apparait comme si c'était un nouveau classeur établi sur un modèle,
c'est à dire "MacrosRP1" sans l'extension .xla (ou "MacrosRP2", "MacrosRP3"
si je ferme et ouvre plusieurs fois mon modèle sans fermer Excel). Ce
phénomène se produit aussi bien quand j'ouvre mon fichier xlt que lorsque je
crée un nouveau classeur basé sur ce modèle.
A l'inverse si je désinstalle la macro, la réinstalle, que je ferme Excel,
puis que je l'ouvre à nouveau, la macro apparait dans la fenêtre vba sous
son vrai nom de fichier "MacrosRP.xla".
Ce qui signifie que si la macro est installée manuellement elle est
correctement installée, si elle est installée par vba, elle s'ouvre en tant
que nouveau fichier non enregistré.
Si je crée un nouveau document basé sur mon modèle .xlt, la macro .xla
n'apparait pas du tout dans la fenêtre vba.
Enfin et c'est là que c'est gênant le code qui suit l'installation ne
s'exécute pas:
Dans la macro appelante, j'ai:
Private Sub Workbook_Open()
Application.AddIns("Titre de la macro").Installed = True
End Sub
Private Sub Workbook_Activate()
If Application.AddIns("Macros Réflexe-Partage").Installed Then
MsgBox "MacrosRP installée" 'Ce message s'affiche
Else
MsgBox "MacrosRP NON installée" 'Ce message ne s'affiche pas
End If
Une_routine_de_la_macro_complémentaire ' Cette routine ne s'exécute pas
End Sub
Si j'arrête l'exécution et que j'appelle
Une_routine_de_la_macro_complémentaire à partir du menu Outils>Macro>Macros,
elle s'exécute normalement.
J'espère qu'après tout ça, je n'embêtrais plus personne avec ce problème.
cmoi
"Frédéric Sigonneau" a écrit dans le message de news:Si possible, j'aimerais mieux faire marcher la méthode :
Application.AddIns("Macro complémentaire").Installed = True
Que faire ?
D'abord, vérifier que ta macro complémentaire est bien enregistrée au
format .xla : ta réponse à papou laisse un doute à ce sujet.
Pour vérifier : la propriété IsAddin du classeur (module ThisWorkbook)
doit être sur True.
Ensuite, pour manipuler une macro complémentaire dans la collection
Addins, elle doit avoir une propriété Title renseignée (ou alors il faut
passer en revue toutes les macros disponibles pour retrouver son index).
Pour cela, alors que la propriété IsAddin est sur False, dans Excel
dérouler le menu Fichier puis Propriétés et dans l'onglet Résumé
renseigner le champ titre.
Enregistrer.
Tu n'es pas au bout de tes peines.
Si tu as installé ta macro manuellement alors que cette propriété n'était
pas renseignée, elle apparaît dans la liste des macros avec un "faux"
titre (le nom du fichier sans l'extension). Il faut provoquer la
suppression de ce nom.
Pour cela, fermer Excel, dans l'explorateur renommer la macro
complémentaire (de maMacro.xla en __maMacro.xla par ex). Puis réouvrir
Excel. Si la macro était installée avant la fermeture, Excel va la
chercher et ne pas la trouver. Et demander si tu veux la supprimer de la
liste. Répondre Oui. Si elle n'était pas installée, tenter de la faire.
Même réaction d'Excel, même réponse.
Ensuite refermer Excel, retourner dans l'explorateur, redonner à la macro
son nom initial, réouvrir Excel et réinstaller la macro. Elle devrait
maintenant apparaître dans la liste avec le titre que tu lui as donné.
Et pouvoir être installée et désintallée avec le code
Application.AddIns("Titre de la macro").Installed = True
(tout ça pour Excel 2003 mais valide avec 2002, et sans doute 2000 et 97.
Pour 2007 je ne sais pas).
FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.frBonsoir,
D'une part cette méthode ne me convient pas vraiment pour les deux
raisons indiquées dans mon premier post du 2 avril.
D'autre part elle provoque deux erreurs:
- Si la macro complémentaire est disponible, j'obtiens une erreur 32813:
Nom de module, de projet ou de bibliothèque d'objet déjà utilisé.
- Dans le cas contraire, j'ai une erreur 48: Erreur de chargement de la
dll.
Si possible, j'aimerais mieux faire marcher la méthode :
Application.AddIns("Macro complémentaire").Installed = True
Que faire ?
cmoi
"Frédéric Sigonneau" a écrit dans le message de news:Une autre approche pourrait être de laisser ta macro complémentaire
disponible en permanence (=cochée dans la liste de la boite de dialogue
'OutilsMacros complémentaires...'), et de la rendre disponible aux
classeurs qui t'intéresse en établissant une référence vers cette macro
à l'ouverture des classeurs voulus et en la supprimant à leur fermeture.
Les bouts de code pour établir et supprimer une référence :
'======================== >>>> Sub AjouteRéférence2()
'nom du classeur auquel renvoie la référence (à adapter):
' "D: 6OfficeVBAClasseurTestXla.Xla"
'nom du projet VBA de ce classeur (à adapter):
' "ClasseurTestXla(ClasseurTestXla.Xla)"
ThisWorkbook.VBProject.References.AddFromFile _
"D: 6OfficeVBAClasseurTestXla.Xla"
End Sub
Sub EnlèveRéférence2()
With ThisWorkbook.VBProject.References
.Remove .Item("ClasseurTestXla")
End With
End Sub
'======================== >>>>
FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.frBonjour,
Avec vba, je voudrais charger automatiquement une macro complémentaire
'mesmacros.xla' à l'ouverture de CERTAINSclasseurs et la décharger à la
fermeture de ces mêmes classeurs. Ceci pour deux raisons :
- Dans le cas général (classeurs pour lesquels ce n'est pas prévu) les
macros contenues dans 'mesmacros.xla' ne doivent pas être accessibles.
- Le temps de chargement est relativement long.
Quel serait le code à insérer dans les classeurs nécessitant la macro
pour faire l'équivalent du menu Outils>Macro complémentaires ?
Bonne journée à tous
cmoi
Bonsoir et merci
La macro est bien enregistrée au format .xla. Elle s'appelle "MacrosRP.xla"
La propriété IsAddin renvoie bien vrai
J'ai bien un titre défini dans les propriétés (non pas dans Excel car non
accessible, mais dans l'explorateur Windows). Ce titre apparaît bien dans la
liste des macros complémentaires (menu Outils>Macros complémentaires)
Jusqu'ici tout est OK
Mais c'est le code :
Application.AddIns("Titre de la macro").Installed = True
qui pose un problème. Ce code se trouve dans le Workbook_Open d'un modèle
..xlt qui utilise la macro complémentaire .xla
Après exécution, la macro est bien cochée dans le menu Macros
complémentaires avec le bon titre, mais lorsque j'ouvre la fenêtre vba, la
macro apparait comme si c'était un nouveau classeur établi sur un modèle,
c'est à dire "MacrosRP1" sans l'extension .xla (ou "MacrosRP2", "MacrosRP3"
si je ferme et ouvre plusieurs fois mon modèle sans fermer Excel). Ce
phénomène se produit aussi bien quand j'ouvre mon fichier xlt que lorsque je
crée un nouveau classeur basé sur ce modèle.
A l'inverse si je désinstalle la macro, la réinstalle, que je ferme Excel,
puis que je l'ouvre à nouveau, la macro apparait dans la fenêtre vba sous
son vrai nom de fichier "MacrosRP.xla".
Ce qui signifie que si la macro est installée manuellement elle est
correctement installée, si elle est installée par vba, elle s'ouvre en tant
que nouveau fichier non enregistré.
Si je crée un nouveau document basé sur mon modèle .xlt, la macro .xla
n'apparait pas du tout dans la fenêtre vba.
Enfin et c'est là que c'est gênant le code qui suit l'installation ne
s'exécute pas:
Dans la macro appelante, j'ai:
Private Sub Workbook_Open()
Application.AddIns("Titre de la macro").Installed = True
End Sub
Private Sub Workbook_Activate()
If Application.AddIns("Macros Réflexe-Partage").Installed Then
MsgBox "MacrosRP installée" 'Ce message s'affiche
Else
MsgBox "MacrosRP NON installée" 'Ce message ne s'affiche pas
End If
Une_routine_de_la_macro_complémentaire ' Cette routine ne s'exécute pas
End Sub
Si j'arrête l'exécution et que j'appelle
Une_routine_de_la_macro_complémentaire à partir du menu Outils>Macro>Macros,
elle s'exécute normalement.
J'espère qu'après tout ça, je n'embêtrais plus personne avec ce problème.
cmoi
"Frédéric Sigonneau" <nospam@nospam> a écrit dans le message de news:
ePsCwy8lIHA.944@TK2MSFTNGP05.phx.gbl...
Si possible, j'aimerais mieux faire marcher la méthode :
Application.AddIns("Macro complémentaire").Installed = True
Que faire ?
D'abord, vérifier que ta macro complémentaire est bien enregistrée au
format .xla : ta réponse à papou laisse un doute à ce sujet.
Pour vérifier : la propriété IsAddin du classeur (module ThisWorkbook)
doit être sur True.
Ensuite, pour manipuler une macro complémentaire dans la collection
Addins, elle doit avoir une propriété Title renseignée (ou alors il faut
passer en revue toutes les macros disponibles pour retrouver son index).
Pour cela, alors que la propriété IsAddin est sur False, dans Excel
dérouler le menu Fichier puis Propriétés et dans l'onglet Résumé
renseigner le champ titre.
Enregistrer.
Tu n'es pas au bout de tes peines.
Si tu as installé ta macro manuellement alors que cette propriété n'était
pas renseignée, elle apparaît dans la liste des macros avec un "faux"
titre (le nom du fichier sans l'extension). Il faut provoquer la
suppression de ce nom.
Pour cela, fermer Excel, dans l'explorateur renommer la macro
complémentaire (de maMacro.xla en __maMacro.xla par ex). Puis réouvrir
Excel. Si la macro était installée avant la fermeture, Excel va la
chercher et ne pas la trouver. Et demander si tu veux la supprimer de la
liste. Répondre Oui. Si elle n'était pas installée, tenter de la faire.
Même réaction d'Excel, même réponse.
Ensuite refermer Excel, retourner dans l'explorateur, redonner à la macro
son nom initial, réouvrir Excel et réinstaller la macro. Elle devrait
maintenant apparaître dans la liste avec le titre que tu lui as donné.
Et pouvoir être installée et désintallée avec le code
Application.AddIns("Titre de la macro").Installed = True
(tout ça pour Excel 2003 mais valide avec 2002, et sans doute 2000 et 97.
Pour 2007 je ne sais pas).
FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.fr
Bonsoir,
D'une part cette méthode ne me convient pas vraiment pour les deux
raisons indiquées dans mon premier post du 2 avril.
D'autre part elle provoque deux erreurs:
- Si la macro complémentaire est disponible, j'obtiens une erreur 32813:
Nom de module, de projet ou de bibliothèque d'objet déjà utilisé.
- Dans le cas contraire, j'ai une erreur 48: Erreur de chargement de la
dll.
Si possible, j'aimerais mieux faire marcher la méthode :
Application.AddIns("Macro complémentaire").Installed = True
Que faire ?
cmoi
"Frédéric Sigonneau" <nospam@nospam> a écrit dans le message de news:
Obd5nyblIHA.464@TK2MSFTNGP02.phx.gbl...
Une autre approche pourrait être de laisser ta macro complémentaire
disponible en permanence (=cochée dans la liste de la boite de dialogue
'OutilsMacros complémentaires...'), et de la rendre disponible aux
classeurs qui t'intéresse en établissant une référence vers cette macro
à l'ouverture des classeurs voulus et en la supprimant à leur fermeture.
Les bouts de code pour établir et supprimer une référence :
'======================== >>>> Sub AjouteRéférence2()
'nom du classeur auquel renvoie la référence (à adapter):
' "D: 6OfficeVBAClasseurTestXla.Xla"
'nom du projet VBA de ce classeur (à adapter):
' "ClasseurTestXla(ClasseurTestXla.Xla)"
ThisWorkbook.VBProject.References.AddFromFile _
"D: 6OfficeVBAClasseurTestXla.Xla"
End Sub
Sub EnlèveRéférence2()
With ThisWorkbook.VBProject.References
.Remove .Item("ClasseurTestXla")
End With
End Sub
'======================== >>>>
FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.fr
Bonjour,
Avec vba, je voudrais charger automatiquement une macro complémentaire
'mesmacros.xla' à l'ouverture de CERTAINSclasseurs et la décharger à la
fermeture de ces mêmes classeurs. Ceci pour deux raisons :
- Dans le cas général (classeurs pour lesquels ce n'est pas prévu) les
macros contenues dans 'mesmacros.xla' ne doivent pas être accessibles.
- Le temps de chargement est relativement long.
Quel serait le code à insérer dans les classeurs nécessitant la macro
pour faire l'équivalent du menu Outils>Macro complémentaires ?
Bonne journée à tous
cmoi
Bonsoir et merci
La macro est bien enregistrée au format .xla. Elle s'appelle "MacrosRP.xla"
La propriété IsAddin renvoie bien vrai
J'ai bien un titre défini dans les propriétés (non pas dans Excel car non
accessible, mais dans l'explorateur Windows). Ce titre apparaît bien dans la
liste des macros complémentaires (menu Outils>Macros complémentaires)
Jusqu'ici tout est OK
Mais c'est le code :
Application.AddIns("Titre de la macro").Installed = True
qui pose un problème. Ce code se trouve dans le Workbook_Open d'un modèle
..xlt qui utilise la macro complémentaire .xla
Après exécution, la macro est bien cochée dans le menu Macros
complémentaires avec le bon titre, mais lorsque j'ouvre la fenêtre vba, la
macro apparait comme si c'était un nouveau classeur établi sur un modèle,
c'est à dire "MacrosRP1" sans l'extension .xla (ou "MacrosRP2", "MacrosRP3"
si je ferme et ouvre plusieurs fois mon modèle sans fermer Excel). Ce
phénomène se produit aussi bien quand j'ouvre mon fichier xlt que lorsque je
crée un nouveau classeur basé sur ce modèle.
A l'inverse si je désinstalle la macro, la réinstalle, que je ferme Excel,
puis que je l'ouvre à nouveau, la macro apparait dans la fenêtre vba sous
son vrai nom de fichier "MacrosRP.xla".
Ce qui signifie que si la macro est installée manuellement elle est
correctement installée, si elle est installée par vba, elle s'ouvre en tant
que nouveau fichier non enregistré.
Si je crée un nouveau document basé sur mon modèle .xlt, la macro .xla
n'apparait pas du tout dans la fenêtre vba.
Enfin et c'est là que c'est gênant le code qui suit l'installation ne
s'exécute pas:
Dans la macro appelante, j'ai:
Private Sub Workbook_Open()
Application.AddIns("Titre de la macro").Installed = True
End Sub
Private Sub Workbook_Activate()
If Application.AddIns("Macros Réflexe-Partage").Installed Then
MsgBox "MacrosRP installée" 'Ce message s'affiche
Else
MsgBox "MacrosRP NON installée" 'Ce message ne s'affiche pas
End If
Une_routine_de_la_macro_complémentaire ' Cette routine ne s'exécute pas
End Sub
Si j'arrête l'exécution et que j'appelle
Une_routine_de_la_macro_complémentaire à partir du menu Outils>Macro>Macros,
elle s'exécute normalement.
J'espère qu'après tout ça, je n'embêtrais plus personne avec ce problème.
cmoi
"Frédéric Sigonneau" a écrit dans le message de news:Si possible, j'aimerais mieux faire marcher la méthode :
Application.AddIns("Macro complémentaire").Installed = True
Que faire ?
D'abord, vérifier que ta macro complémentaire est bien enregistrée au
format .xla : ta réponse à papou laisse un doute à ce sujet.
Pour vérifier : la propriété IsAddin du classeur (module ThisWorkbook)
doit être sur True.
Ensuite, pour manipuler une macro complémentaire dans la collection
Addins, elle doit avoir une propriété Title renseignée (ou alors il faut
passer en revue toutes les macros disponibles pour retrouver son index).
Pour cela, alors que la propriété IsAddin est sur False, dans Excel
dérouler le menu Fichier puis Propriétés et dans l'onglet Résumé
renseigner le champ titre.
Enregistrer.
Tu n'es pas au bout de tes peines.
Si tu as installé ta macro manuellement alors que cette propriété n'était
pas renseignée, elle apparaît dans la liste des macros avec un "faux"
titre (le nom du fichier sans l'extension). Il faut provoquer la
suppression de ce nom.
Pour cela, fermer Excel, dans l'explorateur renommer la macro
complémentaire (de maMacro.xla en __maMacro.xla par ex). Puis réouvrir
Excel. Si la macro était installée avant la fermeture, Excel va la
chercher et ne pas la trouver. Et demander si tu veux la supprimer de la
liste. Répondre Oui. Si elle n'était pas installée, tenter de la faire.
Même réaction d'Excel, même réponse.
Ensuite refermer Excel, retourner dans l'explorateur, redonner à la macro
son nom initial, réouvrir Excel et réinstaller la macro. Elle devrait
maintenant apparaître dans la liste avec le titre que tu lui as donné.
Et pouvoir être installée et désintallée avec le code
Application.AddIns("Titre de la macro").Installed = True
(tout ça pour Excel 2003 mais valide avec 2002, et sans doute 2000 et 97.
Pour 2007 je ne sais pas).
FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.frBonsoir,
D'une part cette méthode ne me convient pas vraiment pour les deux
raisons indiquées dans mon premier post du 2 avril.
D'autre part elle provoque deux erreurs:
- Si la macro complémentaire est disponible, j'obtiens une erreur 32813:
Nom de module, de projet ou de bibliothèque d'objet déjà utilisé.
- Dans le cas contraire, j'ai une erreur 48: Erreur de chargement de la
dll.
Si possible, j'aimerais mieux faire marcher la méthode :
Application.AddIns("Macro complémentaire").Installed = True
Que faire ?
cmoi
"Frédéric Sigonneau" a écrit dans le message de news:Une autre approche pourrait être de laisser ta macro complémentaire
disponible en permanence (=cochée dans la liste de la boite de dialogue
'OutilsMacros complémentaires...'), et de la rendre disponible aux
classeurs qui t'intéresse en établissant une référence vers cette macro
à l'ouverture des classeurs voulus et en la supprimant à leur fermeture.
Les bouts de code pour établir et supprimer une référence :
'======================== >>>> Sub AjouteRéférence2()
'nom du classeur auquel renvoie la référence (à adapter):
' "D: 6OfficeVBAClasseurTestXla.Xla"
'nom du projet VBA de ce classeur (à adapter):
' "ClasseurTestXla(ClasseurTestXla.Xla)"
ThisWorkbook.VBProject.References.AddFromFile _
"D: 6OfficeVBAClasseurTestXla.Xla"
End Sub
Sub EnlèveRéférence2()
With ThisWorkbook.VBProject.References
.Remove .Item("ClasseurTestXla")
End With
End Sub
'======================== >>>>
FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.frBonjour,
Avec vba, je voudrais charger automatiquement une macro complémentaire
'mesmacros.xla' à l'ouverture de CERTAINSclasseurs et la décharger à la
fermeture de ces mêmes classeurs. Ceci pour deux raisons :
- Dans le cas général (classeurs pour lesquels ce n'est pas prévu) les
macros contenues dans 'mesmacros.xla' ne doivent pas être accessibles.
- Le temps de chargement est relativement long.
Quel serait le code à insérer dans les classeurs nécessitant la macro
pour faire l'équivalent du menu Outils>Macro complémentaires ?
Bonne journée à tous
cmoi