Avant d'ouvir un fichier excel , je veux désactiver toutes les macro
complémentaires que l'utilisateur à définit dans son application excel.
Jusque là pas de problème, grâce à une réponse reçue ici, je parcours la
liste des AddIns et je les mets à "false".
Mon problème réside à la fermeture du fichier ... j'aimerai restaurer les
macros que j'ai désactivées à l'ouverture. Je veux que cela reste
transparent pour l'utilisateur.
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
Hervé
Salut John, Utilise des variables publiques (déclarées dans un module standard) pour stocker le nom de la macro afin de la réactiver à la fermeture ou au changement de classeur. '----------------------- Option Explicit
'Variable tableau déclarée publique Public TblAddins() As AddIn
'Macro à appeler à l'ouverture du classeur Sub Desactiver() Dim I As Integer, J As Integer With Application For I = 1 To .AddIns.Count If .AddIns(I).Installed Then J = J + 1 ReDim Preserve TblAddins(1 To J) Set TblAddins(J) = .AddIns(I) End If Next I End With End Sub
'Macro à appeler à la fermeture du classeur Sub Activer() Dim I As Integer 'si aucune installée On Error Resume Next For I = 1 To UBound(TblAddins) TblAddins(I).Installed = True Next I End Sub '-------------------------
Hervé.
"John" a écrit dans le message news:
Bonjour,
Avant d'ouvir un fichier excel , je veux désactiver toutes les macro complémentaires que l'utilisateur à définit dans son application excel. Jusque là pas de problème, grâce à une réponse reçue ici, je parcours la liste des AddIns et je les mets à "false". Mon problème réside à la fermeture du fichier ... j'aimerai restaurer les macros que j'ai désactivées à l'ouverture. Je veux que cela reste transparent pour l'utilisateur.
Merci de vos réponses
Salut John,
Utilise des variables publiques (déclarées dans un module standard) pour
stocker le nom de la macro afin de la réactiver à la fermeture ou au
changement de classeur.
'-----------------------
Option Explicit
'Variable tableau déclarée publique
Public TblAddins() As AddIn
'Macro à appeler à l'ouverture du classeur
Sub Desactiver()
Dim I As Integer, J As Integer
With Application
For I = 1 To .AddIns.Count
If .AddIns(I).Installed Then
J = J + 1
ReDim Preserve TblAddins(1 To J)
Set TblAddins(J) = .AddIns(I)
End If
Next I
End With
End Sub
'Macro à appeler à la fermeture du classeur
Sub Activer()
Dim I As Integer
'si aucune installée
On Error Resume Next
For I = 1 To UBound(TblAddins)
TblAddins(I).Installed = True
Next I
End Sub
'-------------------------
Hervé.
"John" <jac_be@hotmail.com> a écrit dans le message news:
OgaVWxZJFHA.2736@TK2MSFTNGP09.phx.gbl...
Bonjour,
Avant d'ouvir un fichier excel , je veux désactiver toutes les macro
complémentaires que l'utilisateur à définit dans son application excel.
Jusque là pas de problème, grâce à une réponse reçue ici, je parcours la
liste des AddIns et je les mets à "false".
Mon problème réside à la fermeture du fichier ... j'aimerai restaurer les
macros que j'ai désactivées à l'ouverture. Je veux que cela reste
transparent pour l'utilisateur.
Salut John, Utilise des variables publiques (déclarées dans un module standard) pour stocker le nom de la macro afin de la réactiver à la fermeture ou au changement de classeur. '----------------------- Option Explicit
'Variable tableau déclarée publique Public TblAddins() As AddIn
'Macro à appeler à l'ouverture du classeur Sub Desactiver() Dim I As Integer, J As Integer With Application For I = 1 To .AddIns.Count If .AddIns(I).Installed Then J = J + 1 ReDim Preserve TblAddins(1 To J) Set TblAddins(J) = .AddIns(I) End If Next I End With End Sub
'Macro à appeler à la fermeture du classeur Sub Activer() Dim I As Integer 'si aucune installée On Error Resume Next For I = 1 To UBound(TblAddins) TblAddins(I).Installed = True Next I End Sub '-------------------------
Hervé.
"John" a écrit dans le message news:
Bonjour,
Avant d'ouvir un fichier excel , je veux désactiver toutes les macro complémentaires que l'utilisateur à définit dans son application excel. Jusque là pas de problème, grâce à une réponse reçue ici, je parcours la liste des AddIns et je les mets à "false". Mon problème réside à la fermeture du fichier ... j'aimerai restaurer les macros que j'ai désactivées à l'ouverture. Je veux que cela reste transparent pour l'utilisateur.
Merci de vos réponses
Hervé
Oups, Dans la proc "Desactiver" j'ai justement oublié de désactiver :
Sub Desactiver() Dim I As Integer, J As Integer With Application For I = 1 To .AddIns.Count If .AddIns(I).Installed Then J = J + 1 ReDim Preserve TblAddins(1 To J) Set TblAddins(J) = .AddIns(I) .AddIns(I).Installed = False End If Next I End With End Sub
Hervé.
"Hervé" a écrit dans le message news:
Salut John, Utilise des variables publiques (déclarées dans un module standard) pour stocker le nom de la macro afin de la réactiver à la fermeture ou au changement de classeur. '----------------------- Option Explicit
'Variable tableau déclarée publique Public TblAddins() As AddIn
'Macro à appeler à l'ouverture du classeur Sub Desactiver() Dim I As Integer, J As Integer With Application For I = 1 To .AddIns.Count If .AddIns(I).Installed Then J = J + 1 ReDim Preserve TblAddins(1 To J) Set TblAddins(J) = .AddIns(I) End If Next I End With End Sub
'Macro à appeler à la fermeture du classeur Sub Activer() Dim I As Integer 'si aucune installée On Error Resume Next For I = 1 To UBound(TblAddins) TblAddins(I).Installed = True Next I End Sub '-------------------------
Hervé.
"John" a écrit dans le message news:
Bonjour,
Avant d'ouvir un fichier excel , je veux désactiver toutes les macro complémentaires que l'utilisateur à définit dans son application excel. Jusque là pas de problème, grâce à une réponse reçue ici, je parcours la liste des AddIns et je les mets à "false". Mon problème réside à la fermeture du fichier ... j'aimerai restaurer les
macros que j'ai désactivées à l'ouverture. Je veux que cela reste transparent pour l'utilisateur.
Merci de vos réponses
Oups,
Dans la proc "Desactiver" j'ai justement oublié de désactiver :
Sub Desactiver()
Dim I As Integer, J As Integer
With Application
For I = 1 To .AddIns.Count
If .AddIns(I).Installed Then
J = J + 1
ReDim Preserve TblAddins(1 To J)
Set TblAddins(J) = .AddIns(I)
.AddIns(I).Installed = False
End If
Next I
End With
End Sub
Hervé.
"Hervé" <hmsilve@wanadoo.fr> a écrit dans le message news:
ehjsr0aJFHA.616@TK2MSFTNGP10.phx.gbl...
Salut John,
Utilise des variables publiques (déclarées dans un module standard) pour
stocker le nom de la macro afin de la réactiver à la fermeture ou au
changement de classeur.
'-----------------------
Option Explicit
'Variable tableau déclarée publique
Public TblAddins() As AddIn
'Macro à appeler à l'ouverture du classeur
Sub Desactiver()
Dim I As Integer, J As Integer
With Application
For I = 1 To .AddIns.Count
If .AddIns(I).Installed Then
J = J + 1
ReDim Preserve TblAddins(1 To J)
Set TblAddins(J) = .AddIns(I)
End If
Next I
End With
End Sub
'Macro à appeler à la fermeture du classeur
Sub Activer()
Dim I As Integer
'si aucune installée
On Error Resume Next
For I = 1 To UBound(TblAddins)
TblAddins(I).Installed = True
Next I
End Sub
'-------------------------
Hervé.
"John" <jac_be@hotmail.com> a écrit dans le message news:
OgaVWxZJFHA.2736@TK2MSFTNGP09.phx.gbl...
Bonjour,
Avant d'ouvir un fichier excel , je veux désactiver toutes les macro
complémentaires que l'utilisateur à définit dans son application excel.
Jusque là pas de problème, grâce à une réponse reçue ici, je parcours la
liste des AddIns et je les mets à "false".
Mon problème réside à la fermeture du fichier ... j'aimerai restaurer
les
macros que j'ai désactivées à l'ouverture. Je veux que cela reste
transparent pour l'utilisateur.
Oups, Dans la proc "Desactiver" j'ai justement oublié de désactiver :
Sub Desactiver() Dim I As Integer, J As Integer With Application For I = 1 To .AddIns.Count If .AddIns(I).Installed Then J = J + 1 ReDim Preserve TblAddins(1 To J) Set TblAddins(J) = .AddIns(I) .AddIns(I).Installed = False End If Next I End With End Sub
Hervé.
"Hervé" a écrit dans le message news:
Salut John, Utilise des variables publiques (déclarées dans un module standard) pour stocker le nom de la macro afin de la réactiver à la fermeture ou au changement de classeur. '----------------------- Option Explicit
'Variable tableau déclarée publique Public TblAddins() As AddIn
'Macro à appeler à l'ouverture du classeur Sub Desactiver() Dim I As Integer, J As Integer With Application For I = 1 To .AddIns.Count If .AddIns(I).Installed Then J = J + 1 ReDim Preserve TblAddins(1 To J) Set TblAddins(J) = .AddIns(I) End If Next I End With End Sub
'Macro à appeler à la fermeture du classeur Sub Activer() Dim I As Integer 'si aucune installée On Error Resume Next For I = 1 To UBound(TblAddins) TblAddins(I).Installed = True Next I End Sub '-------------------------
Hervé.
"John" a écrit dans le message news:
Bonjour,
Avant d'ouvir un fichier excel , je veux désactiver toutes les macro complémentaires que l'utilisateur à définit dans son application excel. Jusque là pas de problème, grâce à une réponse reçue ici, je parcours la liste des AddIns et je les mets à "false". Mon problème réside à la fermeture du fichier ... j'aimerai restaurer les
macros que j'ai désactivées à l'ouverture. Je veux que cela reste transparent pour l'utilisateur.