Message d'alerte

Résolu
The_boss_68 Messages postés 959 Date d'inscription   Statut Membre Dernière intervention   -  
The_boss_68 Messages postés 959 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Serait-il possible de créer un message d'alerte à l'ouverture d'un fichier Excel sans passer par la vba.
Je m'explique, sur office Excel 2007 ou 2010 le message Avertissement de sécurité "les macros ont été désactivées" n'est pas toujours visible aux yeux, au premier regard des personnes n'ayant pas l'habitude de travailler sur ce logiciel, ce qui crée souvent des problèmes quand des macros sont présentent, mais pas activé. donc je souhaiterais mettre un message d'alerte bien visible sur l'écran qu'il faut activer les macros pour que le fichier fonctionne correctement es-ce possible?

Merci de votre réponse

Slts

7 réponses

  1. The_boss_68 Messages postés 959 Date d'inscription   Statut Membre Dernière intervention   182
     
    Bonjour Le Pivert

    Tout à fait d'accord avec toi, je ne veux pas réinventer la roue, mais tout simplement sur Excel 2003 le message d'alerte security warning activer les macros flash au yeux au lancement du fichier et le fichier lui-même ne sera pas ouvert sans avoir précédemment appuyé sur activer ou déactiver les macros, tandis que sur office 2010 le fichier s'ouvre directement et le message d'alerte Avertissement sécurité est fondu dans le ruban d'office donc plus difficile à l'apercevoir.

    Cordialement

    Henri
    1
  2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Je comprends ton problème, voici donc un code a mettre dans ThisWorkbook. Il affichera la feuille où se trouve le message d'activer les macros si les macros sont déactivées. Sinon il affiche les autres feuilles

    Option Explicit
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ThisWorkbook.Sheets("Feuil1").Visible = xlSheetVisible 'adapter le nom de la feuille qui contient le message
    Dim curSheet As Worksheet
    For Each curSheet In ThisWorkbook.Sheets
        If curSheet.Name <> "Feuil1" Then curSheet.Visible = xlSheetVeryHidden
    Next curSheet
    ThisWorkbook.Save
    End Sub
    Private Sub Workbook_Open()
    Dim curSheet As Worksheet
    For Each curSheet In ThisWorkbook.Sheets
        If curSheet.Name <> "Feuil1" Then curSheet.Visible = xlSheetVisible
    Next curSheet
    ThisWorkbook.Sheets("Feuil1").Visible = xlSheetVeryHidden
    End Sub
    

    1
    1. The_boss_68 Messages postés 959 Date d'inscription   Statut Membre Dernière intervention   182
       
      Bonsoir Le Pivert

      Comme d'habitude je suis bluffé par ton savoir, et je te remercie infiniment pour ton code qui fonctionne très bien, et même au de là de mes espérances.

      Merci beaucoup et à charge de revanche

      PS Je rigole quand je parle de charge de revanche, puisque mon savoir n'arrive même pas à tes chevilles.

      Bon dimanche

      Henri
      0
      1. tom > The_boss_68 Messages postés 959 Date d'inscription   Statut Membre Dernière intervention  
         
        Bonjour,

        Ce poste m'a beaucoup aidé, mais lorsque la macro se lance la macro j'obtiens:
        "Erreur d'exécution '1004':
        Impossible de définir la propriété Visible de la classe Worksheet
        Quand je regarde le débogage, cela viendrais de cette ligne:

        ThisWorkbook.Sheets("Base de données").Visible = xlSheetVeryHidden

        merci de votre aide
        0
      2. The_boss_68 Messages postés 959 Date d'inscription   Statut Membre Dernière intervention   182 > tom
         
        Bonjour tom

        Pas de souci chez moi, peux-tu mettre ton fichier sur Cjoint en version alléger sans truc confidentielle pour voir éventuellement ton problème et peut-être y remédier.

        Slts
        0
  3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Et le message fait avec du code qui ne pourra pas s'executer car macros desactivees!!!!! Est-ce bien reflechi ?
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. The_boss_68 Messages postés 959 Date d'inscription   Statut Membre Dernière intervention   182
     
    Bonsoir Le Pivert

    Merci pour ta proposition, mais je ne pense pas la mettre en oeuvre, puisque personne ne prendra le l’initiative de cliquer sur ce lien, alors du coup je laisserais comme c'est actuellement, et tant pis pour les ceux qui n'aurons pas activé les macros ou alors je vais bucher pour trouver une autre parade.

    Merci

    Bonne soirée

    Henri
    0
  6. Raymond PENTIER Messages postés 58211 Date d'inscription   Statut Contributeur Dernière intervention   17 480
     
    Salut, The_Boss_68.

    Ma philosophie personnelle est d'aller toujours au plus simple.
    De plus, pour ne pas répondre à côté, j'aime bien faire préciser le problème, et si possible son contexte.

    "pas toujours visible aux yeux, au premier regard des personnes n'ayant pas l'habitude de travailler sur ce logiciel" sous-entend que tu travailles avec des personnes âgées ? des mal-voyants ? des gens distraits ou pressés ?
    D'autre part les fichiers Excel en question ne sont pas de ta fabrication ?
    Tu ne peux pas les modifier ?

    Parce que les parades sont multiples, suivant ton organisation :
    - Travailler avec un zoom/écran >100%
    - Placer une feuille d'accueil dans chaque fichier avec la mention "Activer la macro"
    - Prévoir une affichette pour chaque accès à l'ordinateur ou chaque remise de clé USB, rappelant la nécessité d'activer les macros
    - Au début de la session, rappeler verbalement les consignes
    - ...
    0
  7. The_boss_68 Messages postés 959 Date d'inscription   Statut Membre Dernière intervention   182
     
    Bonsoir Raymond PENTIER

    Sympa ta philosophie, du coup je vais aller au plus simple et apposer tout simplement une affichette rappelant la nécessité d'activer les macros à l'ouverture du fichier.

    Merci

    Bonne soirée

    Slts
    0
    1. The_boss_68 Messages postés 959 Date d'inscription   Statut Membre Dernière intervention   182
       
      Bonjour,

      En fait j'ai trouvé un petit code vba qui normalement doit inciter la personne qui ouvre ce fichier, d'activer les Macros puisque tous les Onglets sont cachés mis à part celui avec le message (onglet Début).
      Le hic c'est quand j'ouvre le fichier la première fois avec office 2010 ça marche, j'active alors les macros, et lorsque je referme le fichier, et que je rouvre le fichier il ne s'ouvre plus sur (l'onglet Début) mais les onglets qui étaient cachés auparavant.
      Le problème vient-il du code? si quelqu'un peut m'aider

      Merci

      Private Sub Workbook_Open()
      Sheets("1").Visible = -1
      Sheets("2").Visible = -1
      Sheets("3").Visible = -1
      Sheets("4").Visible = -1
      Sheets("5").Visible = -1
      Sheets("Début").Visible = 2
      End Sub
      Private Sub Workbook_BeforeClose(Cancel As Boolean)
      Sheets("Début").Visible = -1
      Sheets("1").Visible = 2
      Sheets("2").Visible = 2
      Sheets("3").Visible = 2
      Sheets("4").Visible = 2
      Sheets("5").Visible = 2
      End Sub

      Voir Fichier
      http://www.cjoint.com/c/FBgmzHyADfs

      Slts
      0
    2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Je ne comprends pas cette démarche après ta demande:

      Serait-il possible de créer un message d'alerte à l'ouverture d'un fichier Excel sans passer par la vba.

      Je crois que tu veux réinventer la roue. Excel a tout prévu, si les macros ne sont pas activées, un message s'affiche que personne ne peux ignorer!

      C'est pour cela que je t'ai conseillé ce lien Web qui sera beaucoup plus utile aux néophytes pour activer les macros!

      Bon courage

      @+ Le Pivert
      0