Activer les macros automatiquement

Bonjour,

J'aimerais savoir, est-ce qu'on peut 'Activer les macros' automatiquement dans un fichier .xslm.

Je ne veux pas que l'utilisateur clique sur 'Activer les macros' lorsqu'il reçoit mon formulaire de saisie de données.

Il arrive que l'utilisateur oublie de cliquer sur 'Activer les macros' et il ne saisie pas les données voulues.

Merci à la personne qui m'aidera dans la résolution de problème.

Bonsoir,

Il n'y a pas de possibilité de mettre "en marche" les macros car c'est une question de sécurité.

Il faut "jouer malin" :
En partant du principe que les macros sont acceptées, il faut mettre dans le code de fermeture du classeur un code qui affiche une feuille "spéciale" où il est demandé de mettre en "marche" les macros et qui masque "veryhidden" toutes les autres feuilles.

Dans le module d'ouverture du classeur un code opposé sera inscrit, il affichera toutes les feuilles "utiles" du classeur et masquera la feuille spéciale.

Si ce fichier fermé, et ouvert sur un ordinateur dont le niveau de sécurité bloque les macros, alors c'est la feuille spéciale qui demande la mise en marche des macros qui sera affichée, et il ne sera pas possible d'aller sur les autres feuilles car elles sont masquées.

S'il est ouvert sur un ordinateur ayant un niveau de macro plus faible, alors le module d'ouverture sera lancé et les classeur sera affiché de façon "utilisable".

Pour une protection supérieur de ceci, mettre un mot de passe sur le code VBA.

@ bientôt

LouReeD

Voici un fichier un peu plus "complexe" mais l'idée du message précédent y est !

Ce qu'il fait de plus si l'on enlève les commentaires ici et là ? Il y a le test de présence d'un fichier "particulier" sur une clé USB, du coup si le fichier est lancé sur un ordinateur dont le niveau de protection sur les macros est élevé, il demandera d'accepter les macro et qu'il faut les activer.
Une fois ceci fait, lors de l'ouverture, la macro de test de présence du fichier sur une clé USB est fait, si le fichier est absent, alors le fichier se ferme, si le fichier est présent alors il s'ouvre avec le système de masquage et d'affichage des feuilles.

En plus il y a la mise en temporisation de la fermeture du fichier au bout de 5 minutes si rien ne s'y passe... (enfin je crois )

@ bientôt

LouReeD

Pas pire ton idée d'ouvrir les onglets seulement si 'Activer les macros' a été cliqué…

Au lieu que ce soit écrit 'Activer les macros', est-ce que ça peut être un pop-up qui s'affiche en ouvrant Excel ?

Aussi, est-ce qu'on peut enlever la partie clé usb ?

capture d ecran 2021 01 09 155418

Bonsoir,

"Au lieu que ce soit écrit 'Activer les macros', est-ce que ça peut être un pop-up qui s'affiche en ouvrant Excel ?"
Ben non, puisque les macros ne sont pas activées !

J'essaie de vous faire un fichier "plus propre"

@ bientôt

LouReeD

Fichier simplifié :

93active-macro.xlsm (171.24 Ko)

Une feuille "Start" qui est affichée si les macros ne sont pas activées, et 5 feuilles visibles si elles le sont.

@ bientôt

LouReeD

Super, merci, j'aimerais regarder ton code pour apprendre, mais il y a un mot de passe.

Est-ce que je peux avoir une version déverrouillée ? Merci !!

Oups ! Pardon, je crois que c'est LRD, non j'en suis sur !

Pas de soucis sur les codes, je ne les cache pas d'habitude, mais sur une protection de fichier avec macro, il faut empêcher l'accès au code VBA sinon ça n'a plus lieu d'être. Et encore, c'est une protection pour les débrouillards novices...

@ bientôt

LouReeD

Salut,

Est-ce qu'on peut mettre le fond de la page en blanc au lieu de noir ? J'ai essayé et je n'ai pas accès.

Merci

Il faut juste aller dans mise en page et supprimer l'arrière plan.

@ bientôt

LouReeD

Salut,

Est-ce qu'on peut lui dire dans le code qu'ils affichent seulement l'onglet Identification et Formulaire ?

J'ai masqué des onglets et je ne voudrais pas qu'ils s'ouvrent…

Oui on peut le faire...

@ bientôt

LouReeD

Voilà, c'est fait...

A vérifier comme même au cas où... Le fichier :

48active-macro.xlsm (170.16 Ko)

@ bientôt

LouReeD

Salut,

J'avais déjà une procédure Private Sub Workbook_BeforeClose

J'ai essayé de fusionner les deux procédures ensemble mais le fichier n'ouvre pas mes feuilles

Est-ce qu'on fusionner ta procédure :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim ws As Worksheet
    Sheets("Important").Visible = xlSheetVisible
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name <> "Important" Then
            ws.Visible = xlVeryHidden
        End If
    Next ws
    ActiveWorkbook.Save
End Sub

Avec ma procédure:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim x As Double, Answer As VbMsgBoxResult, Message As String

    x = Me.Worksheets("Validation").Cells(10).Value
    Answer = MsgBox("Voulez-vous quitter le fichier ?", vbYesNo + vbQuestion, "Quitter")
    Select Case True
        Case Answer = vbYes And Worksheets("Validation").Range("F1").Value = 28:
            If Me.Saved = False Then Me.Save
            Cancel = False
        Case Answer = vbYes And Worksheets("Validation").Range("F1").Value = 0:
            If Me.Saved = False Then Me.Save
        Case Answer = vbYes And Worksheets("Validation").Range("F1").Value < 28:
            Message = "Vous n'avez pas complété tous les champs obligatoires (*)." & Chr(10)
            Message = Message & "Vous devez compléter la section d'identification, sélectionner votre établissement et répondre aux questions obligatoires (*) avant de quitter le fichier."
            MsgBox Message, 64, "Information"
            Cancel = True
        Case Else:
            Cancel = True
    End Select
End Sub

Merci beaucoup de ta collaboration.

Bonjour,

J'ai fusionné les deux Workbook_BeforeClose mais l'onglet Start (ou Important, je l'ai renommé) ne s'ouvre plus.

Est-ce que quelqu'un est capable de m'aider à résoudre le problème ?

Merci!

Private Sub Workbook_BeforeClose(Cancel As Boolean)
 Dim x As Double, Answer As VbMsgBoxResult, Message As String
 Dim ws As Worksheet

    If Sheets("Important").Visible = xlSheetVisible Then
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name <> "Important" Then
            ws.Visible = xlVeryHidden
        End If
    Next ws
    ActiveWorkbook.Save

    Else

    x = Me.Worksheets("Validation").Cells(10).Value
    Answer = MsgBox("Voulez-vous quitter le fichier ?", vbYesNo + vbQuestion, "Quitter")
    Select Case True
        Case Answer = vbYes And Worksheets("Validation").Range("F1").Value = 28:
            If Me.Saved = False Then Me.Save
            Cancel = False
        Case Answer = vbYes And Worksheets("Validation").Range("F1").Value = 0:
            If Me.Saved = False Then Me.Save
        Case Answer = vbYes And Worksheets("Validation").Range("F1").Value < 28:
            Message = "Vous n'avez pas complété tous les champs obligatoires (*)." & Chr(10)
            Message = Message & "Vous devez compléter la section d'identification, sélectionner votre établissement et répondre aux questions obligatoires (*) avant de quitter le fichier."
            MsgBox Message, 64, "Information"
        Cancel = True
        Case Else:
            Cancel = True
    End Select

    End If
End Sub

Bonjour,

Je voulais que le fichier ouvre l'onglet "Important" qui dit d'activer les macros si les macros n'ont pas été activés. (Les autres onglets sont masqués).

Si les macros ont été activé, l'onglet "Important" est masqué et les autres onglets sont visibles.

Mais j'avais 2 Workbook_BeforeClose et rien ne fonctionné, il fallait les fusionner pour en créer seulement un.

Et depuis, la partie qui vérifie si les macros sont activés ne fonctionnent pas.

Voici mon fichier:

Est-ce que quelqu'un peut m'aider ? Merci!

23exemple2.xlsm (187.20 Ko)

Bonjour,

Votre fichier modifié :

42active-macro-2.xlsm (191.04 Ko)

@ bientôt

LouReeD

Bonjour et merci,

Est-ce que tu as intégré la procédure Private Sub Workbook_BeforeSave dans le nouveau code car cette procédure ne fonctionne plus ?

Merci!!!

Il vous suffit de la copier/coller, dans l'exemple envoyé elle ne servait à rien je crois donc je l'ai supprimée...

@ bientôt

LouReed

Merci de ta précieuse collaboration.

Rechercher des sujets similaires à "activer macros automatiquement"