OVH Cloud OVH Cloud

Instal de macro complémentaires

14 réponses
Avatar
Daniel
Bonjour à tout le groupe!

J'ai fait une application Excel. J'ai une macro complémentaire qui se lance
à chaque ouverture du classeur principale. Elle se déclenche à l'ouverture du
classeur. Mais de la manière dont l'application est faites, il se peut que le
classeur principal se ferme et s'ouvre!! Le résultat est que la macro
compléméntaire se réinstalle à chaque fois!!!!

quelle serait la macro qui vérifie si l;a macro est installé, et qui
l'insatlle s'il le faut ?

Le nom et le chemin d'accès de la macro est : Range("LIEN!C29") &
"LotusSendMail.xla"

Merci à vous!!!

10 réponses

1 2
Avatar
isabelle
bonjour Daniel,

Application.DisplayAlerts = False
If Not AddIns("LotusSendMail").Installed Then
AddIns.Add Filename:= Range("LIEN!C29") & "LotusSendMail.xla"
AddIns("LotusSendMail").Installed = True
End If
Application.DisplayAlerts = True

isabelle


Bonjour à tout le groupe!

J'ai fait une application Excel. J'ai une macro complémentaire qui se lance
à chaque ouverture du classeur principale. Elle se déclenche à l'ouverture du
classeur. Mais de la manière dont l'application est faites, il se peut que le
classeur principal se ferme et s'ouvre!! Le résultat est que la macro
compléméntaire se réinstalle à chaque fois!!!!

quelle serait la macro qui vérifie si l;a macro est installé, et qui
l'insatlle s'il le faut ?

Le nom et le chemin d'accès de la macro est : Range("LIEN!C29") &
"LotusSendMail.xla"

Merci à vous!!!


Avatar
Daniel
Bonjour Isabelle et merci pour le code

Par contre il ne passe pas la ligne :
If Not AddIns("LotusSendMail").Installed Then

Il marque "Erreur d'exécution 9. L'indice n'appartient pas à la selection"

??? j'ai essayé aussi en rajoutant l'extension : If Not
AddIns("LotusSendMail.xla"").Installed Then mais c'est pareil.

Pour info, elle s'installe habituellement de cette manière :
Workbooks.Open Range("LIEN!C29") & "LotusSendMail.xla"










bonjour Daniel,

Application.DisplayAlerts = False
If Not AddIns("LotusSendMail").Installed Then
AddIns.Add Filename:= Range("LIEN!C29") & "LotusSendMail.xla"
AddIns("LotusSendMail").Installed = True
End If
Application.DisplayAlerts = True

isabelle


Bonjour à tout le groupe!

J'ai fait une application Excel. J'ai une macro complémentaire qui se lance
à chaque ouverture du classeur principale. Elle se déclenche à l'ouverture du
classeur. Mais de la manière dont l'application est faites, il se peut que le
classeur principal se ferme et s'ouvre!! Le résultat est que la macro
compléméntaire se réinstalle à chaque fois!!!!

quelle serait la macro qui vérifie si l;a macro est installé, et qui
l'insatlle s'il le faut ?

Le nom et le chemin d'accès de la macro est : Range("LIEN!C29") &
"LotusSendMail.xla"

Merci à vous!!!





Avatar
isabelle
bonjour Daniel,

est ce que la cellule Range("LIEN!C29") contient le chemin d'accès ou un lien hypertexte ?

isabelle


Bonjour Isabelle et merci pour le code

Par contre il ne passe pas la ligne :
If Not AddIns("LotusSendMail").Installed Then

Il marque "Erreur d'exécution 9. L'indice n'appartient pas à la selection"

??? j'ai essayé aussi en rajoutant l'extension : If Not
AddIns("LotusSendMail.xla"").Installed Then mais c'est pareil.

Pour info, elle s'installe habituellement de cette manière :
Workbooks.Open Range("LIEN!C29") & "LotusSendMail.xla"











bonjour Daniel,

Application.DisplayAlerts = False
If Not AddIns("LotusSendMail").Installed Then
AddIns.Add Filename:= Range("LIEN!C29") & "LotusSendMail.xla"
AddIns("LotusSendMail").Installed = True
End If
Application.DisplayAlerts = True

isabelle



Bonjour à tout le groupe!

J'ai fait une application Excel. J'ai une macro complémentaire qui se lance
à chaque ouverture du classeur principale. Elle se déclenche à l'ouverture du
classeur. Mais de la manière dont l'application est faites, il se peut que le
classeur principal se ferme et s'ouvre!! Le résultat est que la macro
compléméntaire se réinstalle à chaque fois!!!!

quelle serait la macro qui vérifie si l;a macro est installé, et qui
l'insatlle s'il le faut ?

Le nom et le chemin d'accès de la macro est : Range("LIEN!C29") &
"LotusSendMail.xla"

Merci à vous!!!







Avatar
Daniel
La cellule contient cette information :
I:LOGISTIQUEETIQUETTESADMINISTRATIONLOTUS

Mais la macro bloque avant d'en arriver là !!!




bonjour Daniel,

est ce que la cellule Range("LIEN!C29") contient le chemin d'accès ou un lien hypertexte ?

isabelle


Bonjour Isabelle et merci pour le code

Par contre il ne passe pas la ligne :
If Not AddIns("LotusSendMail").Installed Then

Il marque "Erreur d'exécution 9. L'indice n'appartient pas à la selection"

??? j'ai essayé aussi en rajoutant l'extension : If Not
AddIns("LotusSendMail.xla"").Installed Then mais c'est pareil.

Pour info, elle s'installe habituellement de cette manière :
Workbooks.Open Range("LIEN!C29") & "LotusSendMail.xla"











bonjour Daniel,

Application.DisplayAlerts = False
If Not AddIns("LotusSendMail").Installed Then
AddIns.Add Filename:= Range("LIEN!C29") & "LotusSendMail.xla"
AddIns("LotusSendMail").Installed = True
End If
Application.DisplayAlerts = True

isabelle



Bonjour à tout le groupe!

J'ai fait une application Excel. J'ai une macro complémentaire qui se lance
à chaque ouverture du classeur principale. Elle se déclenche à l'ouverture du
classeur. Mais de la manière dont l'application est faites, il se peut que le
classeur principal se ferme et s'ouvre!! Le résultat est que la macro
compléméntaire se réinstalle à chaque fois!!!!

quelle serait la macro qui vérifie si l;a macro est installé, et qui
l'insatlle s'il le faut ?

Le nom et le chemin d'accès de la macro est : Range("LIEN!C29") &
"LotusSendMail.xla"

Merci à vous!!!










Avatar
isabelle
peut être que cette instruction bloque parce que LotusSendMail n'est pas dans la liste des macro complémentaire.
essai en inversant les commandes,

Application.DisplayAlerts = False
AddIns.Add Filename:= Range("LIEN!C29") & "LotusSendMail.xla"
If Not AddIns("LotusSendMail").Installed Then
AddIns("LotusSendMail").Installed = True
End If
Application.DisplayAlerts = True

isabelle


La cellule contient cette information :
I:LOGISTIQUEETIQUETTESADMINISTRATIONLOTUS

Mais la macro bloque avant d'en arriver là !!!





bonjour Daniel,

est ce que la cellule Range("LIEN!C29") contient le chemin d'accès ou un lien hypertexte ?

isabelle



Bonjour Isabelle et merci pour le code

Par contre il ne passe pas la ligne :
If Not AddIns("LotusSendMail").Installed Then

Il marque "Erreur d'exécution 9. L'indice n'appartient pas à la selection"

??? j'ai essayé aussi en rajoutant l'extension : If Not
AddIns("LotusSendMail.xla"").Installed Then mais c'est pareil.

Pour info, elle s'installe habituellement de cette manière :
Workbooks.Open Range("LIEN!C29") & "LotusSendMail.xla"












bonjour Daniel,

Application.DisplayAlerts = False
If Not AddIns("LotusSendMail").Installed Then
AddIns.Add Filename:= Range("LIEN!C29") & "LotusSendMail.xla"
AddIns("LotusSendMail").Installed = True
End If
Application.DisplayAlerts = True

isabelle




Bonjour à tout le groupe!

J'ai fait une application Excel. J'ai une macro complémentaire qui se lance
à chaque ouverture du classeur principale. Elle se déclenche à l'ouverture du
classeur. Mais de la manière dont l'application est faites, il se peut que le
classeur principal se ferme et s'ouvre!! Le résultat est que la macro
compléméntaire se réinstalle à chaque fois!!!!

quelle serait la macro qui vérifie si l;a macro est installé, et qui
l'insatlle s'il le faut ?

Le nom et le chemin d'accès de la macro est : Range("LIEN!C29") &
"LotusSendMail.xla"

Merci à vous!!!











Avatar
Daniel
Heu ça marche mais maintenant l'installation est définitive ? Comment
l'enlver si je veux ??




peut être que cette instruction bloque parce que LotusSendMail n'est pas dans la liste des macro complémentaire.
essai en inversant les commandes,

Application.DisplayAlerts = False
AddIns.Add Filename:= Range("LIEN!C29") & "LotusSendMail.xla"
If Not AddIns("LotusSendMail").Installed Then
AddIns("LotusSendMail").Installed = True
End If
Application.DisplayAlerts = True

isabelle


La cellule contient cette information :
I:LOGISTIQUEETIQUETTESADMINISTRATIONLOTUS

Mais la macro bloque avant d'en arriver là !!!





bonjour Daniel,

est ce que la cellule Range("LIEN!C29") contient le chemin d'accès ou un lien hypertexte ?

isabelle



Bonjour Isabelle et merci pour le code

Par contre il ne passe pas la ligne :
If Not AddIns("LotusSendMail").Installed Then

Il marque "Erreur d'exécution 9. L'indice n'appartient pas à la selection"

??? j'ai essayé aussi en rajoutant l'extension : If Not
AddIns("LotusSendMail.xla"").Installed Then mais c'est pareil.

Pour info, elle s'installe habituellement de cette manière :
Workbooks.Open Range("LIEN!C29") & "LotusSendMail.xla"












bonjour Daniel,

Application.DisplayAlerts = False
If Not AddIns("LotusSendMail").Installed Then
AddIns.Add Filename:= Range("LIEN!C29") & "LotusSendMail.xla"
AddIns("LotusSendMail").Installed = True
End If
Application.DisplayAlerts = True

isabelle




Bonjour à tout le groupe!

J'ai fait une application Excel. J'ai une macro complémentaire qui se lance
à chaque ouverture du classeur principale. Elle se déclenche à l'ouverture du
classeur. Mais de la manière dont l'application est faites, il se peut que le
classeur principal se ferme et s'ouvre!! Le résultat est que la macro
compléméntaire se réinstalle à chaque fois!!!!

quelle serait la macro qui vérifie si l;a macro est installé, et qui
l'insatlle s'il le faut ?

Le nom et le chemin d'accès de la macro est : Range("LIEN!C29") &
"LotusSendMail.xla"

Merci à vous!!!














Avatar
isabelle
bonjour Daniel,

il faut fermer excel, enlever le fichier.xla du disque dur, relancer excel,
aller au menu, Outils, Macro complémentaire, cocher la macro,
et là tu aura un message te disant que le fichier est introuvable et la possibilité d'effacer ce lien.
mais je ne voie pas pourquoi tu veux effacer ce lien.

isabelle

Heu ça marche mais maintenant l'installation est définitive ? Comment
l'enlver si je veux ??





peut être que cette instruction bloque parce que LotusSendMail n'est pas dans la liste des macro complémentaire.
essai en inversant les commandes,

Application.DisplayAlerts = False
AddIns.Add Filename:= Range("LIEN!C29") & "LotusSendMail.xla"
If Not AddIns("LotusSendMail").Installed Then
AddIns("LotusSendMail").Installed = True
End If
Application.DisplayAlerts = True

isabelle



La cellule contient cette information :
I:LOGISTIQUEETIQUETTESADMINISTRATIONLOTUS

Mais la macro bloque avant d'en arriver là !!!






bonjour Daniel,

est ce que la cellule Range("LIEN!C29") contient le chemin d'accès ou un lien hypertexte ?

isabelle




Bonjour Isabelle et merci pour le code

Par contre il ne passe pas la ligne :
If Not AddIns("LotusSendMail").Installed Then

Il marque "Erreur d'exécution 9. L'indice n'appartient pas à la selection"

??? j'ai essayé aussi en rajoutant l'extension : If Not
AddIns("LotusSendMail.xla"").Installed Then mais c'est pareil.

Pour info, elle s'installe habituellement de cette manière :
Workbooks.Open Range("LIEN!C29") & "LotusSendMail.xla"













bonjour Daniel,

Application.DisplayAlerts = False
If Not AddIns("LotusSendMail").Installed Then
AddIns.Add Filename:= Range("LIEN!C29") & "LotusSendMail.xla"
AddIns("LotusSendMail").Installed = True
End If
Application.DisplayAlerts = True

isabelle





Bonjour à tout le groupe!

J'ai fait une application Excel. J'ai une macro complémentaire qui se lance
à chaque ouverture du classeur principale. Elle se déclenche à l'ouverture du
classeur. Mais de la manière dont l'application est faites, il se peut que le
classeur principal se ferme et s'ouvre!! Le résultat est que la macro
compléméntaire se réinstalle à chaque fois!!!!

quelle serait la macro qui vérifie si l;a macro est installé, et qui
l'insatlle s'il le faut ?

Le nom et le chemin d'accès de la macro est : Range("LIEN!C29") &
"LotusSendMail.xla"

Merci à vous!!!















Avatar
Daniel
En fait ça ne marche qu'une fois ? dès que la macro est installé, au
demarrage suivant ça plante !!!!!!

HELP!!


Heu ça marche mais maintenant l'installation est définitive ? Comment
l'enlver si je veux ??




peut être que cette instruction bloque parce que LotusSendMail n'est pas dans la liste des macro complémentaire.
essai en inversant les commandes,

Application.DisplayAlerts = False
AddIns.Add Filename:= Range("LIEN!C29") & "LotusSendMail.xla"
If Not AddIns("LotusSendMail").Installed Then
AddIns("LotusSendMail").Installed = True
End If
Application.DisplayAlerts = True

isabelle


La cellule contient cette information :
I:LOGISTIQUEETIQUETTESADMINISTRATIONLOTUS

Mais la macro bloque avant d'en arriver là !!!





bonjour Daniel,

est ce que la cellule Range("LIEN!C29") contient le chemin d'accès ou un lien hypertexte ?

isabelle



Bonjour Isabelle et merci pour le code

Par contre il ne passe pas la ligne :
If Not AddIns("LotusSendMail").Installed Then

Il marque "Erreur d'exécution 9. L'indice n'appartient pas à la selection"

??? j'ai essayé aussi en rajoutant l'extension : If Not
AddIns("LotusSendMail.xla"").Installed Then mais c'est pareil.

Pour info, elle s'installe habituellement de cette manière :
Workbooks.Open Range("LIEN!C29") & "LotusSendMail.xla"












bonjour Daniel,

Application.DisplayAlerts = False
If Not AddIns("LotusSendMail").Installed Then
AddIns.Add Filename:= Range("LIEN!C29") & "LotusSendMail.xla"
AddIns("LotusSendMail").Installed = True
End If
Application.DisplayAlerts = True

isabelle




Bonjour à tout le groupe!

J'ai fait une application Excel. J'ai une macro complémentaire qui se lance
à chaque ouverture du classeur principale. Elle se déclenche à l'ouverture du
classeur. Mais de la manière dont l'application est faites, il se peut que le
classeur principal se ferme et s'ouvre!! Le résultat est que la macro
compléméntaire se réinstalle à chaque fois!!!!

quelle serait la macro qui vérifie si l;a macro est installé, et qui
l'insatlle s'il le faut ?

Le nom et le chemin d'accès de la macro est : Range("LIEN!C29") &
"LotusSendMail.xla"

Merci à vous!!!
















Avatar
Daniel
La raison est que c'est une application sur un disque partagé. Pliusieurs
utilisateurs vont l'utiliser (normal lol). Ainsi, la solution est d'avoir
cette macro à l'ouverture du classeur avec la macro qui fait le test pour
savoir si oui ou non elle installe cette macro complémentaire sur le poste!
Sachant que si la macro n'y est pas ==> elle s'installe, et si elle y est
déjà, elle passeà la suite!

Actuellement le code que j'utilise est celui ci : Workbooks.Open
Range("LIEN!C29") & "LotusSendMail.xla"
il est dans la macro Private Sub Workbook_Open(). Mais comme je l'ai
expliquer (je sais, mes explications ne sont pas très claires je l'avoue). De
la manière dont l'application est faites, il se peut que le classeur
principal se ferme et s'ouvre!!
Et en fait la macro complémentaire est installée à l'ouverture. Mais si
j'ouvre un nouveaux classeur, le nouveaux classeur à la macro d'installé
aussi ... jusque là OK! Ensuite je ferme mon application mais pas l'autre
classeur! La macro reste installé sur le nouveuax classeur. Et donc si je
réouvre mon application, la macro s'installe 2 fois! Oula! peut être encore
moin clair comme explications ça !



bonjour Daniel,

il faut fermer excel, enlever le fichier.xla du disque dur, relancer excel,
aller au menu, Outils, Macro complémentaire, cocher la macro,
et là tu aura un message te disant que le fichier est introuvable et la possibilité d'effacer ce lien.
mais je ne voie pas pourquoi tu veux effacer ce lien.

isabelle

Heu ça marche mais maintenant l'installation est définitive ? Comment
l'enlver si je veux ??





peut être que cette instruction bloque parce que LotusSendMail n'est pas dans la liste des macro complémentaire.
essai en inversant les commandes,

Application.DisplayAlerts = False
AddIns.Add Filename:= Range("LIEN!C29") & "LotusSendMail.xla"
If Not AddIns("LotusSendMail").Installed Then
AddIns("LotusSendMail").Installed = True
End If
Application.DisplayAlerts = True

isabelle



La cellule contient cette information :
I:LOGISTIQUEETIQUETTESADMINISTRATIONLOTUS

Mais la macro bloque avant d'en arriver là !!!






bonjour Daniel,

est ce que la cellule Range("LIEN!C29") contient le chemin d'accès ou un lien hypertexte ?

isabelle




Bonjour Isabelle et merci pour le code

Par contre il ne passe pas la ligne :
If Not AddIns("LotusSendMail").Installed Then

Il marque "Erreur d'exécution 9. L'indice n'appartient pas à la selection"

??? j'ai essayé aussi en rajoutant l'extension : If Not
AddIns("LotusSendMail.xla"").Installed Then mais c'est pareil.

Pour info, elle s'installe habituellement de cette manière :
Workbooks.Open Range("LIEN!C29") & "LotusSendMail.xla"













bonjour Daniel,

Application.DisplayAlerts = False
If Not AddIns("LotusSendMail").Installed Then
AddIns.Add Filename:= Range("LIEN!C29") & "LotusSendMail.xla"
AddIns("LotusSendMail").Installed = True
End If
Application.DisplayAlerts = True

isabelle





Bonjour à tout le groupe!

J'ai fait une application Excel. J'ai une macro complémentaire qui se lance
à chaque ouverture du classeur principale. Elle se déclenche à l'ouverture du
classeur. Mais de la manière dont l'application est faites, il se peut que le
classeur principal se ferme et s'ouvre!! Le résultat est que la macro
compléméntaire se réinstalle à chaque fois!!!!

quelle serait la macro qui vérifie si l;a macro est installé, et qui
l'insatlle s'il le faut ?

Le nom et le chemin d'accès de la macro est : Range("LIEN!C29") &
"LotusSendMail.xla"

Merci à vous!!!


















Avatar
michdenis
Bonjour Daniel,

Voici une proposition de Frédéric Sigonneau :


Les SendKeys qui sont dans la structure With...End With servent d'abord à se
mettre en début de la liste des macros complémentaires pour sélectionner la
première (SendKeys "{HOME}") puis à "descendre" dans la liste pour les
sélectionner une par une (SendKeys "{DOWN}").
Une fois la macro "manquante" (puisque déplacée en début de macro, ou supprimée
comme dans le code original) repérée le dernier SendKeys sert à répondre Oui à
la boite de dialogue qui informe qu'on ne trouve pas la macro complémentaire et
demande si on veut la supprimer de la liste puis à "sortir" de la liste avant de
refermer la boite de dialogue.

Cette version légèrement retravaillée pour déplacer la macro complémentaire à
supprimer de la liste sans la supprimer du disque dur pour autant fonctionne
chez moi avec Excel 2002 :

ce n'est pas le nom de la macro complémentaire (= le nom de son
fichier) qu'il faut passer en paramètre, mais son titre (c'est à dire son nom
tel qu'il s'affiche dans la boite de dialogue OutilsMacros complémentaires)

Appel cette macro à partir de l'interface de la feuille de calcul et non
de la fenêtre VBA.

Sub Test()
SupprimerMacroComplémentaire SonNom
End Sub

'================= Sub SupprimerMacroComplémentaire(Nom As String)
Dim I As Integer, De$, Vers$
'dossier de stockage de la macro supprimée de la liste
If Dir("c:MesMacros", vbDirectory) = "" Then MkDir "c:MesMacros"
With AddIns
.Item(Nom).Installed = False
De = .Item(Nom).FullName
Vers = "c:MesMacros" & .Item(Nom).Name
Name De As Vers
DoEvents
SendKeys "{HOME}"
For I = 1 To .Count
If .Item(I).Name = Nom Then Exit Sub
SendKeys "{DOWN}"
Next I
End With
SendKeys "~{ESC}"
Application.CommandBars.FindControl(ID:”3).Execute
DoEvents
End Sub
'===================

Salutations!



"Daniel" a écrit dans le message de news:
En fait ça ne marche qu'une fois ? dès que la macro est installé, au
demarrage suivant ça plante !!!!!!

HELP!!


Heu ça marche mais maintenant l'installation est définitive ? Comment
l'enlver si je veux ??




peut être que cette instruction bloque parce que LotusSendMail n'est pas dans la liste des macro complémentaire.
essai en inversant les commandes,

Application.DisplayAlerts = False
AddIns.Add Filename:= Range("LIEN!C29") & "LotusSendMail.xla"
If Not AddIns("LotusSendMail").Installed Then
AddIns("LotusSendMail").Installed = True
End If
Application.DisplayAlerts = True

isabelle


La cellule contient cette information :
I:LOGISTIQUEETIQUETTESADMINISTRATIONLOTUS

Mais la macro bloque avant d'en arriver là !!!





bonjour Daniel,

est ce que la cellule Range("LIEN!C29") contient le chemin d'accès ou un lien hypertexte ?

isabelle



Bonjour Isabelle et merci pour le code

Par contre il ne passe pas la ligne :
If Not AddIns("LotusSendMail").Installed Then

Il marque "Erreur d'exécution 9. L'indice n'appartient pas à la selection"

??? j'ai essayé aussi en rajoutant l'extension : If Not
AddIns("LotusSendMail.xla"").Installed Then mais c'est pareil.

Pour info, elle s'installe habituellement de cette manière :
Workbooks.Open Range("LIEN!C29") & "LotusSendMail.xla"












bonjour Daniel,

Application.DisplayAlerts = False
If Not AddIns("LotusSendMail").Installed Then
AddIns.Add Filename:= Range("LIEN!C29") & "LotusSendMail.xla"
AddIns("LotusSendMail").Installed = True
End If
Application.DisplayAlerts = True

isabelle




Bonjour à tout le groupe!

J'ai fait une application Excel. J'ai une macro complémentaire qui se lance
à chaque ouverture du classeur principale. Elle se déclenche à l'ouverture du
classeur. Mais de la manière dont l'application est faites, il se peut que le
classeur principal se ferme et s'ouvre!! Le résultat est que la macro
compléméntaire se réinstalle à chaque fois!!!!

quelle serait la macro qui vérifie si l;a macro est installé, et qui
l'insatlle s'il le faut ?

Le nom et le chemin d'accès de la macro est : Range("LIEN!C29") &
"LotusSendMail.xla"

Merci à vous!!!
















1 2