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 :

Renommer un Label dans un Userform [XL-2000]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 20
    Par défaut Renommer un Label dans un Userform
    Bonjour,

    Je suis assez débutant dans excel; c'est pourquoi je me rapproche de vous.

    Sur un Userform, est-ce que l'on peut définir ou modifier le nom d'un Label (caption) en utilisant la valeur d'une cellule ?

    Exemple :
    Sur Userform1, j'ai plusieurs Label (label1, label2, label3, ...)
    Et sur une feuille nommée "Info", j'ai des données sur les cellules A1, A2, A3, ...

    j' aimerais que les valeurs des cellules se reportent sur les Labels :
    Le nom du labe1 = valeur de A1
    Le nom du labe2 = valeur de A2
    Le nom du labe3 = valeur de A3

    Et que par la suite, le changement de valeur d'une cellule sur reporte sur le label.

    Merci beaucoup d'avance
    Philindy26

  2. #2
    Membre éprouvé Avatar de LouiMz
    Homme Profil pro
    Inscrit en
    Février 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 104
    Par défaut
    Bonjour,

    Des exemples:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Label1.Caption = "toto"
    Label2.Caption = Range("C2").Value

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Tu peux intercepter l'événement Activate du userform

    Par exemple, ce code placé dans le module du userform, adaptera les caption des étiquettes Label1, Label2, Label3 en leur attribuant les valeurs des cellules A1, A2 et A3 de Feuil3.

    Les noms doivent évidemment être adaptés à ton cas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub UserForm_Activate()
      Label1.Caption = Feuil3.Range("a1").Value
      Label2.Caption = Feuil3.Range("a2").Value
      Label3.Caption = Feuil3.Range("a3").Value
    End Sub
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 207
    Par défaut
    Et pour écarter d'éventuelles erreurs de conversion de type (c'est toujours mieux quand c'est explicite):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monUserForm.Caption=CStr(Range("  ").Value)

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par Sclarckone Voir le message
    Et pour écarter d'éventuelles erreurs de conversion de type (c'est toujours mieux quand c'est explicite):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monUserForm.Caption=CStr(Range("  ").Value)
    Ce n'est pas faux... Alors, tant qu'on y est, il est préférable de préfixer l'objet Range de l'objet worksheet qui le supporte, car si c'est une feuille graphique qui est active au moment de l'exécution du code => plantage...

    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 207
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    Ce n'est pas faux... Alors, tant qu'on y est, il est préférable de préfixer l'objet Range de l'objet worksheet qui le supporte, car si c'est une feuille graphique qui est active au moment de l'exécution du code => plantage...

    Tout à fait...honte à moi!

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par Sclarckone Voir le message
    Tout à fait...honte à moi!
    Non non, n'aie pas honte

    Ton souci de ne pas planter le code (ou envoyer des données "exotiques" au caption) est tout à fait opportun.

    On oublie souvent ce petit détail du Range non préfixé, et on cherche parfois longtemps le pourquoi du plantage, puisqu'il n'apparaît pas à tous les coups. C'est pourquoi j'ai cru bon de le souligner, en marge de l'amélioration que tu proposais.

    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 20
    Par défaut Renommer un Label dans un Userform
    Merci beaucoup pour toutes ces réponses.
    Et encore bravo pour votre aide
    Philindy

  9. #9
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Citation Envoyé par Sclarckone Voir le message
    Et pour écarter d'éventuelles erreurs de conversion de type (c'est toujours mieux quand c'est explicite):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monUserForm.Caption=CStr(Range("  ").Value)
    En plus de la remarque de Pierre, on peut faire encore mieux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monUserForm.Caption = Range("  ").Text
    Pas besoin d'une conversion en String.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  10. #10
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 21
    Par défaut
    Tu peux tout à fait définir ton label à partir de la valeur d'une cellule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    label.caption = Worksheets("ton nom de feuille").Range("A1").Value
    Si tu souhaites que le label se rappoprte toujours a la valeur de ta cellule, le mieux serait d'associer le code précédent à un evenement donné (à définir selon la configuration)

    Par ex: changement de selection, activation de la feuille,...

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

Discussions similaires

  1. [XL-2010] Créer un Label dans un Userform avec le crochet (Wingdings) comme Caption
    Par Archampi dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 22/08/2014, 17h14
  2. [XL-2010] nommer une serie de labels dans un userform
    Par norman5 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/03/2012, 12h56
  3. [XL-2003] Calculer dans un userform et label
    Par dlight dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/01/2011, 23h48
  4. Utiliser un "groupe" de labels sur clic souris dans un Userform
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/04/2008, 02h01
  5. Format label dans un userform
    Par fmris dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/09/2007, 17h41

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