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 :

code VBA pour password sur VBE [XL-2003]


Sujet :

Macros et VBA Excel

  1. #41
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 523
    Points : 147
    Points
    147
    Par défaut
    ok, i'm back!

    alors, j'espique:

    -> l'instruction en question dans mon fichier 2003 fait planter si je l'ouvre en 2007
    -> peut être parce que j'ai testé dans le workbook_open?

    -> alors que je copie le code dans un doc vierge 2007 et que j'exécute, ça marche: ça n'affiche pas l'onglet développeur MAIS directement la partie "sécurité des macros"

    ce que je vais donc faire:
    -> onglet "paramètres": création de 2 boutons (2003 & 2007/2010) d'accès au param de sécurité des macros, avec macro associée
    -> workbook_open: pour le mauvais bouton (xl 2003 n'affiche que bouton 2003, et vice versa)

    par contre maintenant, pour 2003, y a-t-il à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.CommandBars.FindControl(, 3627).Execute


    qd je lance le code dans mon fichier, via le bouton dans 2007, ca plante toujours!!!
    alors que dans un nouveau doc vierge 2007 ça marche(?????)..........

  2. #42
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    A tout hasard... pour la manipulation des barres de menus, il ne faut pas directement insérer le code dans "ThisWorkbook_Open" mais dans un module standard et appeler ce code dans l'évènement "ThisWorkbook_Open".

  3. #43
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 523
    Points : 147
    Points
    147
    Par défaut
    ok, donc dans ma feuille:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub CommandButton3_Click()  'Office 2007/2010
        'Application.CommandBars.FindControl(, 3627).Execute
        Call afficherMacros2007
    End Sub
    et dans module2:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Sub afficherMacros2007()
        Application.CommandBars.FindControl(, 3627).Execute
    End Sub
    mais le résultat est le même, message d'erreur identique...

    par ailleurs, testé à l'instant, je confirme que l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.CommandBars.FindControl(, 3627).Execute
    est également valable pour 2003... pas de différence de syntaxe donc entre les versions!

    par contre, exécution OK uniquement dans un nouveau fichier vierge, pas dans le code globale de mon fichier...

  4. #44
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Serait-il possible d'avoir une copie de ton fichier en supprimant les données personnelles ?

  5. #45
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 523
    Points : 147
    Points
    147
    Par défaut
    j'ai essayé de le laisser en upload qq part, mais ça ne passe pas, blocage de la boite je suppose!

    tu peux m'envoyer ton email en MP?
    à moins que tu aies un FTP qq part?

    ok, email parti!

    j'ai viré petit à petit du code pour tester, desfois que...
    mais là j'en suis arrivé à ne laisser que le code des boutons et tjs HS

    je viens de voir une différence aux niveau des références, si ça venait de là(?):

    dans un doc vierge, il en manque 2 que j'ai moi dans mon fichier
    -> Microsoft Forms 2.0 Object Library
    -> Microsoft Calendar Control 11.0

    si le fait de supprimer la 2ème n'a rien changé, impossible de supprimer forms 2.0 "impossible de supprimer la réf; en cours d'utilisation"

    EDIT:
    j'ai créé un nouveau doc, en ajoutant les 2 réf ci-dessus
    -> ça fonctionne toujours
    -> mauvaise piste donc

  6. #46
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Lorsqu'on lance la macro manuellement via Alt+F8 ça fonctionne par contre via le bouton ça coince et là je ne comprend pas pourquoi
    Je regarderai ça plus en détail ce soir

  7. #47
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 523
    Points : 147
    Points
    147
    Par défaut
    ok, merci.

    EDIT: ah ouais je viens de voir, c'est dingue ça!!

    les cogitations ont l'air intenses!

  8. #48
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Je n'ai malheureusement pas de solution à te proposer.

  9. #49
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 523
    Points : 147
    Points
    147
    Par défaut
    c'est hallucinant ce truc oui!

    idée conne, mais on n'est plus à ça près..............

    -> affecter CTRL+W (par exemple) la macro (puisque lancer la macro au clavier fonctionne)

    -> fct Click du bouton: sendkeys(ctrl+w)

    tu penses que.........?

    et la réponse du test est................................................. NON!

    dans la série "il y a tjs de l'espoir!":

    -> 2003: SendKeys "%O+M+é", True

    -> 2007: SendKeys "%C+AS", True

    -> 2010: SendKeys "%V+AS", True

    simulent l'accès aux menus par les touches de raccourcis et ça marche!

    très bien me direz-vous donc?

    SAUF qu'en passant de 2007 à 2010 ce n'est plus ALT+C pour accéder au bandeau "développeur" mais ALT+V!!!
    -> c'est pas vrai!! ils le font exprès!!
    -> il faut donc pouvoir différencier la version 2007 de 2010

    or le code donné page 2 je crois donnais version >=12 ~> 2007/2010
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        'on contrôle la version de Office, si c'est office 2007 et supérieur
        'ou autre, = 12 pour 2007, = 11 pour 2003, True = 2007, False = 2003
        If Val(Application.Version) >= 12# Then
            VersionChecker = True
            Sheets("paramètres").Shapes("Office20072010").Visible = False
            Sheets("paramètres").Shapes("Office2003").Visible = True
        Else
            VersionChecker = False
            Sheets("paramètres").Shapes("Office2003").Visible = False
            Sheets("paramètres").Shapes("Office20072010").Visible = True
        End If
    il faudrait donc trouver un moyen de différencier 2007 de 2010
    OU
    tester le retour du sendkeys 2007 pour lancer sendkeys de 2010 si echec

    EDIT:
    2003 -> V11
    2007 -> V12
    2010 -> V14

    mais il faut encore se palucher l'activation de l'onglet développeur dans le bandeau (2007 + 2010), sans quoi les sendkeys ne passeront pas...

  10. #50
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Citation Envoyé par steph68b Voir le message
    activation de l'onglet développeur
    Essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Application.SendKeys "%C%"
    Application.SendKeys "{Esc}{Esc}"

  11. #51
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 523
    Points : 147
    Points
    147
    Par défaut
    c'est de la folie.............

    je me suis paluché toute la séquence de touches, TRES longue à trouver pour les 2 versions

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub activerBandeauDeveloppeur()
        If versionXL = 2007 Then
            Application.SendKeys "%F+I+{TAB 13}+{ }+{TAB 5}+{ }", True
        ElseIf versionXL = 2010 Then
            Application.SendKeys "%F+O+{DOWN 6}+{TAB 9}+{DOWN 14}{ }+{TAB 6}+{ }", True
        End If
    End Sub
    et là encore, ctrl+w pour lancer la macro OK, un bouton sur la feuille et ça plante!!!

    mais c'est quoi ces produits de M*******??????
    'tain je suis patient mais y a des limites à TOUT!!


  12. #52
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Je ne sais pas où tu as été chercher ta combinaison de touche mais sous 2007, pour afficher l'onglet Développeur c'est Alt+C
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Application.SendKeys "%C%"
    Application.SendKeys "{Esc}{Esc}"
    Je ne t'encourage pas à continuer dans ce sens, l'utilisation de SendKeys n'est pas fiable, un envoi qui ne passe pas pour une raison x et tout par en vrille.
    J'applaudi ta persévérance mais pour une manip qui ne devra être faite qu'une seule fois tu pourrais très bien te contenter d'une MsgBox avec un petit message expliquant les 2 ou 3 clics que l'utilisateur doit faire pour cocher la case "faire confiance..."

  13. #53
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 523
    Points : 147
    Points
    147
    Par défaut
    alors pour répondre à tes questions:

    1.) j'ai simplement suivi le chemin d'accès qui consiste à ouvrir le bouton office & dérouler les options pour accéder à la case à cocher "menu développeur"

    2.) car chez moi, 2007 comme 2010
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Application.SendKeys "%C%"
    Application.SendKeys "{Esc}{Esc}"
    est inopérant

    cela dit, tu as raison , trop la tête dans le guidon ça ne va pas!!

    là GT parti dans des trucs dignes de la physique nucléaire russe, parce que je voulais des boutons!

    or même là certaines macros appelées par des boutons posaient les mêmes problèmes que le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Application.CommandBars.FindControl(, 3627).Execute
    de départ et qui affiche directement l'écran de sécurité des macros (qq soit la version d'ailleurs!), à savoir:
    -> raccourci clavier OU macros/exécuter: OK
    -> bouton: ERREUR

    donc finalement, quitte à devoir utiliser un raccourci clavier à défaut de la formule bouton qui elle plante, autant utiliser cette UNIQUE instruction!

    sauf que... et oui, encore une connerie "+ t'avances + tu recules"... accrochez-vous!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Sub activerSecuriteMacros()
        'valable qq soit la version
        Application.CommandBars.FindControl(, 3627).Execute
    End Sub
    et dans les options des macros, j'assigne un raccourci clavier (ctrl+j ici).

    en l'état tout fonctionne très bien, là ou ça se complique c'est qu'en essayant de la rendre invisible dans la liste des macros
    -> soit en la déclarant PRIVATE
    -> soit en la déclarant OPTIONAL FACTICE

    hé bien cet ********** d'Excel (et va savoir donc pourquoi!!!) supprime le raccourci clavier(??)!!!

    1.) ctrl+j ne marche plus
    2.) quand je remets la macro visible, dans les option, plus aucune trace de mon ctrl+j

    DONC, comment affecter ce raccourci directement en VBA?
    -> dans le workbook_open par exemple
    -> puisque cela semble être l'unique solution

    bon, j'ai cherché sur le net, mais les critères de recherche (vba raccouci macro) sont si courant que 12 625 pages... pas évident, surtout que 99% concerne l'affectation "manuelle" via la boite macros/options......
    -> et non l'affectation dynamique en VBA

  14. #54
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Tu ne peux pas affecter un raccourci à une Private Sub, que ce soit manuellement ou par macro.
    Pourquoi vouloir la mettre en Private ? Qu'elle soit accessible via Ctrl+Machin ou via Alt+F8 c'est du pareil au même...

  15. #55
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 523
    Points : 147
    Points
    147
    Par défaut
    là encore, tête dans le guidon & perte de la vision GLOBALE!

    c'est vrai, inutile:

    -> je voulais éviter d'avoir 1 porte d'entrée dans mon code via cette macros visible

    -> mais on s'en tape puisqu'avec les divers changements, maintenant je peux mettre un pasword au VBE, plus de code dynamique (bouton, onglet)

    -> donc je me fous que cette macro là, la seule donc, soit visible dans la liste

    merci pour la prise de conscience!

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. [AC-2010] Erreur sur Code VBA pour enregistrement d'un document publiposté word
    Par AudREN dans le forum VBA Access
    Réponses: 3
    Dernier message: 25/09/2014, 13h22
  2. Réponses: 6
    Dernier message: 18/11/2013, 17h48
  3. Code vba pour ouverture en mode calcul sur ordre
    Par ciambe dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/05/2013, 13h01
  4. [XL-2010] Code VBA pour trier sur combobox
    Par duplaly dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/04/2011, 17h56
  5. [XL-2007] code vba pour cliquer sur un bouton dans internet explorer
    Par skipeemed dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/01/2011, 20h21

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