Forcer l'Activation des macro à l'ouverture du fichier

lyna

XLDnaute Junior
Bonjour le forum :
Après une recherche dans ce forum, j'ai pas trouvé un moyen d'activer automatiquement les macro à l'ouverture d'un classeur.
(sans veux pas que le message de confirmation n'apparaisse)
merci beaucoup de votre aide.
 

lyna

XLDnaute Junior
Re : Forcer l'Activation des macro à l'ouverture du fichier

Merci pour ta réponse.
mais je pense que c'est pas ce qu'il me faut car le fichier est partagé par plusieurs utilisateurs et je ne peux pas changer cette option (sécurité basse sur tout les postes)
car cette option n'est pas liée au fichier mais aux options d'excel.

je voudrai avoir une instrucion à integrer dans (this workbook) à l'ouverture qui va activer les macros sans que le message apparaisse.
merci de vos conseils.
 

Pierrot93

XLDnaute Barbatruc
Re : Forcer l'Activation des macro à l'ouverture du fichier

Bonjour Lyna, PierreJean, Dixit

ca doit être impossible si le niveau de sécurité des macros est réglé au minimum sur "moyen" et heureusement d'ailleurs, car sinon bonjour les dégats...

La propriété "DisplayAlerts", elle, empêche certains messages lors de l'éxecution d'une macro mais pas sur la sécurité.

bonne soirée
@+
 

chris

XLDnaute Barbatruc
Re : Forcer l'Activation des macro à l'ouverture du fichier

Bonjour Tatiak
C'est la même logique.
J'étais aussi arrivé à cette logique que j'avais proposée à un client qui voulais informer et forcer les utilisateurs d'un classeur à l'ouvrir avec les macros.
Cependant cette solution a un inconvénient : si l'utilisateur commence à saisir puis change d'avis (il a fait une erreur par exemple) et veux fermer le classeur sans l'enregistrer, celui-ci est néanmoins enregistré en l'état alors que l'utilisateur voudrait retrouver le classeur initial.
Il faudrait donc prévénir l'utilisateur et lui permettre de ne pas enregistrer ce qui complique un peu.
 

chris

XLDnaute Barbatruc
Re : Forcer l'Activation des macro à l'ouverture du fichier

Bonjour

Impec Tatiak. Cela répond dans la majorité des cas et en dépannera plus d'un.

J'avais renoncé dans mon cas car il y pouvait y avoir des sauvegardes intermédiaires changeant ou non le nom du classeur selon des états d'avancement particuliers.
 

Eric 45

XLDnaute Occasionnel
Re : Forcer l'Activation des macro à l'ouverture du fichier

Bonjour à tous

Je te soumets une autre solution Tatiak, qu'en pense tu ?

Code:
Option Explicit

Dim sauver As String
Dim nomfic

Private Sub Workbook_Open()
Application.ScreenUpdating = False
    Application.DisplayAlerts = False
        ActiveWorkbook.SaveAs (ActiveWorkbook.Path & "\" & Replace(ActiveWorkbook.Name, ".xls", ".NEW"))
    Application.DisplayAlerts = True
    Feuil2.Visible = xlSheetVisible
    Feuil3.Visible = xlSheetVisible
    Feuil1.Visible = xlSheetVeryHidden
End Sub



Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ScreenUpdating = False
nomfic = ActiveWorkbook.FullName
    sauver = MsgBox("Voulez-vous enregistrer les modifications apportées à " & _
      Replace(ActiveWorkbook.Name, ".NEW", ".xls") & "?", vbYesNoCancel + vbExclamation)
    Select Case sauver
        Case vbCancel
            Cancel = True
        Case vbYes
            Application.DisplayAlerts = False
                ActiveWorkbook.SaveAs (ActiveWorkbook.Path & "\" & Replace(ActiveWorkbook.Name, ".NEW", ".xls"))
                Kill nomfic
            Application.DisplayAlerts = True
        Case vbNo
            Feuil1.Visible = xlSheetVisible
            Feuil2.Visible = xlSheetVeryHidden
            Feuil3.Visible = xlSheetVeryHidden
            Application.DisplayAlerts = False
                ActiveWorkbook.SaveAs (ActiveWorkbook.Path & "\" & Replace(ActiveWorkbook.Name, ".NEW", ".xls"))
                Kill nomfic
    End Select
End Sub


Elle permet de supprimer le fichier "new" si l'on sauvegarde ou non, et "Microsoft Scriting Runtime" n'a pas à être activé

Bonne fin de we à tous

Eric
 

Bob654.

XLDnaute Nouveau
Re : Forcer l'Activation des macro à l'ouverture du fichier

Bonjour à tous

Je te soumets une autre solution Tatiak, qu'en pense tu ?

Code:
Option Explicit

Dim sauver As String
Dim nomfic

Private Sub Workbook_Open()
Application.ScreenUpdating = False
    Application.DisplayAlerts = False
        ActiveWorkbook.SaveAs (ActiveWorkbook.Path & "\" & Replace(ActiveWorkbook.Name, ".xls", ".NEW"))
    Application.DisplayAlerts = True
    Feuil2.Visible = xlSheetVisible
    Feuil3.Visible = xlSheetVisible
    Feuil1.Visible = xlSheetVeryHidden
End Sub



Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ScreenUpdating = False
nomfic = ActiveWorkbook.FullName
    sauver = MsgBox("Voulez-vous enregistrer les modifications apportées à " & _
      Replace(ActiveWorkbook.Name, ".NEW", ".xls") & "?", vbYesNoCancel + vbExclamation)
    Select Case sauver
        Case vbCancel
            Cancel = True
        Case vbYes
            Application.DisplayAlerts = False
                ActiveWorkbook.SaveAs (ActiveWorkbook.Path & "\" & Replace(ActiveWorkbook.Name, ".NEW", ".xls"))
                Kill nomfic
            Application.DisplayAlerts = True
        Case vbNo
            Feuil1.Visible = xlSheetVisible
            Feuil2.Visible = xlSheetVeryHidden
            Feuil3.Visible = xlSheetVeryHidden
            Application.DisplayAlerts = False
                ActiveWorkbook.SaveAs (ActiveWorkbook.Path & "\" & Replace(ActiveWorkbook.Name, ".NEW", ".xls"))
                Kill nomfic
    End Select
End Sub


Elle permet de supprimer le fichier "new" si l'on sauvegarde ou non, et "Microsoft Scriting Runtime" n'a pas à être activé

Bonne fin de we à tous

Eric

Bonjour,

J'ai essayé ton code, quand on sauvegarde pas de problème, si l'on fait des modifications dans le fichier et on ne les sauvegarde pas, il les enregistre quand même.

Merci de ton aide
 

Pièces jointes

  • Test.xlsb
    16.6 KB · Affichages: 7

Discussions similaires

Statistiques des forums

Discussions
312 211
Messages
2 086 298
Membres
103 171
dernier inscrit
clemm