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 :

Modifier le nom d'un bouton par macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 258
    Par défaut Modifier le nom d'un bouton par macro
    Bonjour,

    Pour gérer l'affichage d'un tableau par mois ou par trimestre j'ai d'abord tenté de mettre 2 boutons.
    mais lorsque je masque les colonnes, les boutons viennent à se superposer et ce n'est visuellement pas propre.

    J'aimerais alors n'avoir qu'un seul bouton mais qui change de nom en fonction de l'affichage.
    J'ai tenté le code ci dessous mais, forcément, ca ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub CB_AFFICHAGE()
     
    If ButtonName = "AFF/mois" Then
     
     Range("C:H,K:P,S:X").EntireColumn.Hidden = False
        ButtonName = "AFF/trimestre"
     
    Else
     
     Range("C:H,K:P,S:X").EntireColumn.Hidden = True
        ButtonName = "AFF/Mois"
    end if    
    End Sub
    Je pense que ButtonName n'est pas bon puisque dans les propriétés, je cherche Caption mais ButtonCaption n'existe apparement pas.

    merci d'avance

  2. #2
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 18
    Par défaut
    Salut,

    ButtonName est le nom de ton objet. Ce que tu veux faire c'est renseigner la propriété "Caption" de ce même objet.

    Donc utilises plutot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Button.Caption = "Lenomdubouton"
    Tout comme tu feras
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Button.OnAction = "macro"
    pour la macro a executer lorsque tu cliques...

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 258
    Par défaut
    j'ai donc modifié le code comme suit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub CB_AFFICHAGE_Click()
     
    If Button.Caption = "AFF/mois" Then
     
     Range("C:H,K:P,S:X").EntireColumn.Hidden = False
        Button.Caption = "AFF/trimestre"
     
    Else
     
     Range("C:H,K:P,S:X").EntireColumn.Hidden = True
        Button.Caption = "AFF/Mois"
    End If
     
    End Sub

    Mais il me bloque sur la boucle if en me disant

    Code erreur 424: Objet requis.

    Faut il lui pointer plus précisément le bouton en question?

    Merci d'avance

  4. #4
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 18
    Par défaut
    Ok,

    Alors il faut déjà le créer.

    Tu vas lui donner un "Name" c'est a dire une sorte d'identifiant, mais ce n'est en rien son "Caption" qui lui sera ce qui sera affiché sur le bouton.

    Tu créées donc ton bouton a l'aide de l'interface graphique d'excel, et tu remplis, le premier attribut (en haut normalement) 'Name' et tu lui donnes le nom que tu veux. (disons ici "Button").

    Et c'est grace a ce nom là que tu vas le reconnaitre lorsque tu l'appelles en tant qu'objet.

    Donc : fais donc bien al différence entre Name (identifiant) et Caption ( affichage)

    Je sais pas si j'ai été clair

  5. #5
    Membre chevronné Avatar de mordrhim
    Inscrit en
    Avril 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Avril 2007
    Messages : 270
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub CB_AFFICHAGE_Click()
     
    If CB_AFFICHAGE.Caption = "AFF/Mois" Then
     
     Range("C:H,K:P,S:X").EntireColumn.Hidden = False
        CB_AFFICHAGE.Caption = "AFF/Trimestre"
     
    Else
     
     Range("C:H,K:P,S:X").EntireColumn.Hidden = True
        CB_AFFICHAGE.Caption = "AFF/Mois"
    End If
     
    End Sub
    Button n'est pas référencé, il faut que tu le remplace par son nom (ici CB_AFFICHAGE) ensuite tu as une erreur dans ton test : VBA respecte la casse donc AFF/mois à remplacer par AFF/Mois

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 258
    Par défaut
    Il a déjà un Name qui est CB_AFFICHAGE

    donc peut etre devrais je mettre

    CB_AFFICHAGE.caption
    à la place de
    Button.caption

    Q'en penses tu?
    Je fais le test en parallele.

  7. #7
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 18
    Par défaut
    Mordrhim +1,

    Comme quoi ca sert a rien de tourner autour du pot

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 258
    Par défaut
    Ca marche

    Donc pour résumer pour les suivants


    Changer le nom d'un bouton via la macro:

    Si la propriété name du bouton s'appelle AFFICHAGE

    AFFICHAGE.caption = "Nouveau nom"


    Merci beaucoup pour les réponses


    @+

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

Discussions similaires

  1. [XL-2007] Création de bouton par macro
    Par djjilou dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 16/04/2012, 09h14
  2. [Toutes versions] le nom de la plage par macro
    Par patricktoulon dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/05/2010, 20h54
  3. Récupérer le nom d'un bouton par son Caption
    Par Duan dans le forum Delphi
    Réponses: 5
    Dernier message: 30/04/2007, 12h04
  4. Modifier la structure d'une table par macro / vba
    Par zermatt dans le forum Access
    Réponses: 8
    Dernier message: 21/01/2007, 15h32
  5. [VBA-E]Modifier la caption d'un label par macro
    Par Gautheron dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/02/2006, 13h07

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