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 :

[E-03] Procédure pour contrôler l'ensemble des objets de type Label


Sujet :

Macros et VBA Excel

  1. #1
    Débutant
    Inscrit en
    Décembre 2007
    Messages
    1 235
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 1 235
    Points : 269
    Points
    269
    Par défaut
    Bonjour, je voudrais savoir quelle procédure utiliser pour gérer l'évenement click de l'ensemble des labels d'une feuille Excel.

    Je veux en fait avoir une procédure, qui quand je clic sur n'importe quel label de ma feuille m'ouvre un UserForm et me met dans une variable public le caption du label sur lequel j'ai cliqué!


    [EDIT]

    J'ai mis un petit fichier si certains ne voient pas ce que je veux faire.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour,

    Pour ce que j'ai compris, tu mets :
    dans ton module1 qui apparemment est vide, pour l'instant, et pour chaque label
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Label1_Click() 'label1 ou 2 ou 3
    i = Label1.Caption
    MsgBox i 'pour vérifier, tu pourras enlever après
    UserForm1.Show
     
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Débutant
    Inscrit en
    Décembre 2007
    Messages
    1 235
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 1 235
    Points : 269
    Points
    269
    Par défaut
    Re, j'ai mis:

    mais je ne sais pas si cela s'utilise comme cela.

    Si tu veux : J'ai des labels sur une feuille, mais imaginons que je peux en avoir dans plusieurs feuilles. Je peux en ajouter autant que je veux ou en retirer autant que je veux.

    Ce que je veux faire:

    Je voudrais avoir une procédure qui me permette d'executer un code sur clic de n'importe quel label. Après clic sur un label x:

    -Je veux récupérer dans une variable i = au caption du label x
    -Ouvir un formulaire qui est en fait un UserForm avec 3 boutons
    -Et en fonction de n'importe quel bouton 1, 2 ou 3 sur lequel je vais cliquer je veux pouvoir récupérer ma variable i pour effectuer des tests. C'est pourquoi je l'avais mis en public, mais la procédure, je veux quelque chose de général. C'est à dire que à la place de:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Label1_click()
     
    Dim i as integer
     
    i=Label1.caption
    Userform1.show
     
    end sub
    Je veux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub NimporteQuelLabelDeMaFeuille_click()
     
    i=LeCaptionDuLabelSurLequelJaiCliqué
    UserForm1.show
     
    end sub
    Merci

  4. #4
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    j'ai cherché et n'ai pas trouvé un code qui permette de renvoyer le nom du label actif, mais si tu nommes tes labels "label1", "label2", il doit y avoir un moyen de contourner le problème, à moins que tu ne trouves.......

    Bonne recherche
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    bonjour moilou2 casefayere le forum je crois que la tu peus passer par un module de classe j insiste un peu vu les anciens posts mais c est une solution viable
    SALUTATIONS

  6. #6
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    re le fil le forum bah!! je vais etre gentille je t es fait un petit exemple a adapter
    attention chaque fois que tu ajoute un label lance la macro Initialisation
    autrement regarde bien le code dans thisworkbook
    j envoi l info dans une msgbox a adapter ta variable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Workbook_Open()
    Initialisation
    End Sub
    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Initialisation
    End Sub
    macro dans module

    Option Explicit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Public Buttons() As New Classe1
    Public ButtonCount As Byte
    Sub Initialisation()
        Dim Obj As OLEObject, Ws As Worksheet
         ButtonCount = 0
            For Each Obj In ActiveSheet.OLEObjects
            If TypeOf Obj.Object Is MSForms.Label Then
                    ButtonCount = ButtonCount + 1
                    ReDim Preserve Buttons(1 To ButtonCount)
                    Set Buttons(ButtonCount).ButtonGroup = Obj.Object
            End If
        Next Obj
        End Sub
    code module de classe

    Option Explicit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public WithEvents ButtonGroup As MSForms.Label
    Private Sub ButtonGroup_Click()
    UserForm1.Show
    MsgBox ButtonGroup.Caption
    End Sub
    je peus pas envoyer de zip histoire de quota moi pas comprendre si quelqu un as une idee!!!!!!!!!!!!!!!!!!!!!!!!!!!
    SALUTATIONS

  7. #7
    Débutant
    Inscrit en
    Décembre 2007
    Messages
    1 235
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 1 235
    Points : 269
    Points
    269
    Par défaut
    Re, laetitia.

    Bon nikel sa marche.

    Je vais essayé maintenant de récupérer mon caption dans une variable.

    Sa je pense que je vais y arriver, mais comment réutiliser cette variable, si je veux la récupérer ensuite dans le code des boutons sur lequels je vais cliquer dans mes UserForm?

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 17/02/2014, 19h11
  2. Réponses: 4
    Dernier message: 06/06/2011, 21h05
  3. [XL-2010] hauteur d'une listBox pour montrer l'ensemble des items
    Par mauriceguillier dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/10/2010, 10h06
  4. Commandes IP pour obtenir l'ensemble des IP de mon reseau
    Par Clotilde dans le forum Administration
    Réponses: 4
    Dernier message: 17/05/2010, 13h41
  5. Fonction pour contrôler la saisie des entiers
    Par Le Pharaon dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 28/09/2006, 14h14

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