IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Interdire l'interruption d'une macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 154
    Par défaut Interdire l'interruption d'une macro
    Bonjour,

    Oui je sais je sais je sais il ne faut pas désactiver la touche ESC sinon on risque d'être trés mal si la macro par en vrille. Mais, il y a toujours un mais, la macro se lance à l'ouverture et si je laisse ESC active l'utilisateur va interrompre la macro et voir des données sensibles dans les TCD intermédiaires.

    Comment je peux faire ??

    J'ai essayé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.EnableCancelKey = xlDisabled
    comme première ligne de ma macro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sub Auto_Open() 
    End Sub
    mais ça ne fait rien du tout

    Preneur de toutes idées bonnes ou mauvaises

  2. #2
    Membre Expert Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Par défaut
    Hello,

    Au vu que le lancement des Macros peut lui aussi être inhibé à l'ouverture du fichier,je dirais aucune solution réellement fonctionnel.

    A l'heure de PowerQuery ,je dirais de laisser les données sensibles ailleurs que dans ton fichier et de faire faire les différents traitement par PQ.

    De cette manière seul les données, que tu souhaiterais pourrais être visible /importée.
    En sachant qu'en fouillant un peu, l'utilisateur pourra trouver la BD.

    Bat,

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 154
    Par défaut
    Effectivement la solution de le faire à la source c'est l'idéal mais ce n'est pas possible , j'accède à un cube OLAP et je ne peux pas faire un count distinct directement sur le champ qui m'intéresse.

    D'autres solutions ?

  4. #4
    Membre Expert Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Par défaut
    Re,

    Tu pourrais probablement faire ce que tu souhaites, avec une connexion uniquement, via Power query et donc sans importer sur les feuilles les tables.

    Je ne suis pas un utilisateur de cube Olap, cependant si tu arrives à lier Excel à celui-ci, tu pourrais aussi le faire via PQ.

    Bat

  5. #5
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut Ne pas afficher
    Bonjour,

    Pourquoi ne pas raisonner dans l'autre sens, c'est à dire :

    Si les macros ne sont pas actives, ne rien afficher.
    Il te suffit pour ça de cacher les onglets que tu ne souhaite pas montrer et de les afficher par macro à l'ouverture de ton classeur.

  6. #6
    Membre Expert Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Par défaut
    Bonsoir aalex,baime

    Une multitude de pseudos solutions de protection peuvent être imaginée.
    Mais aucune réellement efficace, malheureusement.

    Cacher les feuilles en veryhidden, n'empêchera pas une personne sachant aligner trois mots dans Google de trouver une parade.
    Bloquer la touche échappe non plus.

    Le demandeur parle de TDC , un simple double clique sur un champs ,total par exemple, crée une nouvelle feuille avec la BD correspondante. Un code en plus à mettre pour pallier à cela ? Qui lui aussi pourra être inhibé ?

    Je dirais , à moins que quelqu'un de plus qualifié ait une autre solution, que si des données ne peuvent pas être vue et/ou utilisées, qu'il faut simplement, qu'elles ne soient pas physiquement présentes, donc je ne fournirais en accès qu'un fichier résultat/vue final et non le fichier contenant les Macros et données pour arriver aux résultats finaux.

    Bav,

  7. #7
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    Pour empêcher l'arrêt d'une macro tu peux inhiber le clavier et la souris en début de macro avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Declare Function BlockInput Lib "user32" (ByVal fBlock As Long) As Long
    Sub Bloquer
      DoEvents
      BlockInput True
    End Sub
    ' pour rendre la main :
    Sub Liberer
      DoEvents
      BlockInput False
    End Sub
    Note : pour empêcher l'arrêt (interdire l'interruption), il faut bien évidemment que la macro ait commencé et si on empêche l'exécution de la macro, elle n'accède pas aux données donc pas de risque ...

Discussions similaires

  1. [XL-2016] interdire ouverture d'un excel autre que par une macro
    Par retraite83 dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 28/04/2019, 13h37
  2. Réponses: 8
    Dernier message: 04/03/2016, 10h05
  3. interdire le changement d'onglet sans avoir executer une macro
    Par fibule38 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/12/2015, 11h41
  4. [XL-2007] Interruption soudaine d'une macro sur .INSERT suite au passage de 2003 à 2007
    Par BobDall dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 05/10/2011, 17h22
  5. [E-07] Exécution sans interruption d'une macro automatique de sauvegarde
    Par JMVBAExcel dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/01/2009, 20h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo