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 :

Accéder à des boutons par leur nom [XL-2002]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Par défaut Accéder à des boutons par leur nom
    Bonjour,

    J'ai une liste des noms des boutons dans une feuille, et je souhaiterais pouvoir accéder auxdit boutons de manière à pouvoir modifier leurs propriétés, comme par exemple "Enabled".

    J'ai trouvé un code qui fonctionne pour les formulaires
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Controls("nomducontrol")
    Seulement ceci ne fonctionne pas lorsque les boutons sont sur des feuilles de calculs.

    Connaissez vous un moyen de parvenir à mes fins ?

    Merci par avance de votre aide.

    Cordialement,

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    il me semble avoir vu une réponse d'ucfoutu a ce sujet indiquant d'utiliser Je recherche le lien

    Edit le lien en question :
    http://www.developpez.net/forums/d71...bjet-variable/

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour,
    Si j'ai compris ce que tu explique..
    Si le code est dans le module de la feuille,
    NomDuControle.Enabled = True
    Si dans un module publique, soit activer la feuille soit mettre le nom de la feuille avant.
    A+

  4. #4
    Membre éclairé Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Par défaut
    Merci,
    Citation Envoyé par Krovax Voir le message
    il me semble avoir vu une réponse d'ucfoutu a ce sujet indiquant d'utiliser
    J'avais vu ça ailleurs, mais je dois pas savoir l'utiliser, ni comprendre son fonctionnement, car
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Shapes("lenomducontrole").Enabled = False
    donne une erreur (l'élément portant ce nom est introuvable).

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 81
    Par défaut
    Salut, ce que t'as écrit LeForestier devrait fonctionner.

    Si ton bouton s'appele button1 et qu'il se trouve dans la feuille nommée feuil1 tu peux définir sa propriété enabled dans n'importe quel module de ce classeur via la commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    feuil1.button1.enabled = true
    Bon courage

  6. #6
    Membre éclairé Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Par défaut
    Citation Envoyé par MiXinG Voir le message
    Si ton bouton s'appele button1 et qu'il se trouve dans la feuille nommée feuil1 tu peux définir sa propriété enabled dans n'importe quel module de ce classeur via la commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    feuil1.button1.enabled = true
    Bon courage
    Merci, mais je souhaiterais appeller le nom du bouton dynamiquement, via une variable (et pas en dur dans le code).
    Sinon, en général, j'utilise bien sûr ce moyen pour modifier les propriété des controles

  7. #7
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 81
    Par défaut
    ok!
    autant pour moi

  8. #8
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Re,
    Je ne suis pas parvenu à assigner directement mais tu peu déjà t'inspirer de ce code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub ChangerBT()
    Dim Nom As String
    Dim Num As Long
    Dim Obj As OLEObject
        Num = 1
        Nom = "Bouton" & Num
     
        For Each Obj In Sheets("Feuil3").OLEObjects
            If Obj.Name = Nom Then
                Obj.Enabled = Not Obj.Enabled
                Exit Sub
            End If
        Next Obj
    End Sub
    Si tu a un bouton nommé Bouton1 sur la feuille 3, inverse la valeur Enabled à chaque fois que la macro est appelée.
    Mais toutes les propriétés sont accessibles.

    A+

  9. #9
    Membre éclairé Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Par défaut
    Merci LeForestier, je viens d'essayer rapidement, et bizarement il me trouve pas les boutons, mais uniquement une zone de texte.
    Peut etre que c'est le premier Objet et qu'il s'arrete au premier ?! Pourquoi..??!

    EDIT : Ca venait apparrament du fait que javais regroupé divers éléments entre eux, et notamment les boutons.
    Cependant je n'arrive pas à changer la propriété Enabled d'un bouton...

  10. #10
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    je viens d'essayer rapidement
    Peut-être que tu devrais aller moins vite j'ai tester avant de poster le code et ça fonctionne parfaitement sur un bouton.
    ATTENTION !! bouton de la boite à outils contrôles, pas formulaire.
    Sur les objets formulaires tu n'a pas accès aux propriétés.

  11. #11
    Membre éclairé Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Par défaut
    Citation Envoyé par LeForestier Voir le message
    j'ai tester avant de poster le code et ça fonctionne parfaitement sur un bouton.
    ATTENTION !! bouton de la boite à outils contrôles, pas formulaire.
    Sur les objets formulaires tu n'a pas accès aux propriétés.
    Heu c'est quoi la difference entre les deux boutons ???

  12. #12
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    La barre d'outils que tu utilise pour les créer et les chose que tu peux faire avec

    (sous 2003 mais 2002 devrais être identique)
    La barre
    "Boite a outil Contrôle "
    Ca c'est les bons

    La barre "formulaire"
    a éviter si tu ne fait pas un formulaire

  13. #13
    Membre éclairé Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Par défaut
    Citation Envoyé par LeForestier Voir le message
    ATTENTION !! bouton de la boite à outils contrôles, pas formulaire.
    Sur les objets formulaires tu n'a pas accès aux propriétés.
    Donc j'utilise bien les boutons de la boite à outils contrôles... (Merci Krovax)
    Bizarre.

  14. #14
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bizarre en effet..
    Voir classeur, et puisque tu semble avoir beaucoups de boutons j'y ai ajouter une collection qui permet de les gérer en groupe. (avec une classe)
    Fichiers attachés Fichiers attachés

  15. #15
    Membre éclairé Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Par défaut
    Merci beaucoup LeForestier.

    Après beaucoup de temp d'énergie et d'énervement, j'ai trouvé d'où le problème vennais :
    Je lancais pas la Sub depuis le Workbook_Activate mais depuis le Worksheet_Activate...
    Merci pour ta classe (et la sub Init) mais, après plusieurs minutes pour comprendre à quoi elle servait , pour ma part et à l'heure actuelle, avec les spécificité du fichier actuelle je ne pourrais à priori pas l'utiliser.
    Par contre des lignes qui sont dans ChangerBT() me seront très utiles.

    J'èspère que ca servira à quelqu'un...
    Je mets en place les macros utilisant les "OLEObjects" et si ca marche, je mettrais résolu au post.

    Encore merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/06/2015, 11h23
  2. chart : manipuler des series par leurs noms
    Par petitours dans le forum C#
    Réponses: 2
    Dernier message: 16/03/2012, 08h56
  3. Recherche des fichiers par leurs noms
    Par hackoofr dans le forum Vos Contributions VBScript
    Réponses: 0
    Dernier message: 26/05/2011, 12h08
  4. Tuer des processus par leur nom
    Par tedparker dans le forum Access
    Réponses: 2
    Dernier message: 12/09/2006, 16h19
  5. comment récupere des element par le nom de la balise?
    Par MASSAKA dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/08/2005, 19h59

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