Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/08/2011, 15h34   #1
Invité de passage
 
Inscription : avril 2010
Messages : 15
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 15
Points : 1
Points : 1
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
Philindy26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2011, 15h39   #2
Membre habitué
 
Homme Ludo
Inscription : février 2010
Messages : 104
Détails du profil
Informations personnelles :
Nom : Homme Ludo
Localisation : France

Informations forums :
Inscription : février 2010
Messages : 104
Points : 135
Points : 135
Bonjour,

Des exemples:

Code :
1
2
Label1.Caption = "toto"
Label2.Caption = Range("C2").Value
__________________
Cordialement
LouiMz est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/08/2011, 15h40   #3
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 398
Points : 14 398
Envoyer un message via Skype™ à Pierre Fauconnier
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 :
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)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2011, 15h41   #4
Membre actif
 
Inscription : novembre 2008
Messages : 188
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 188
Points : 194
Points : 194
Et pour écarter d'éventuelles erreurs de conversion de type (c'est toujours mieux quand c'est explicite):

Code :
monUserForm.Caption=CStr(Range("  ").Value)
Sclarckone est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/08/2011, 15h42   #5
Invité de passage
 
Inscription : janvier 2009
Messages : 12
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 12
Points : 4
Points : 4
Tu peux tout à fait définir ton label à partir de la valeur d'une cellule

Code :
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,...
langeard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2011, 15h47   #6
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 398
Points : 14 398
Envoyer un message via Skype™ à Pierre Fauconnier
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 :
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)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2011, 15h59   #7
Membre actif
 
Inscription : novembre 2008
Messages : 188
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 188
Points : 194
Points : 194
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!
Sclarckone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2011, 16h12   #8
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 398
Points : 14 398
Envoyer un message via Skype™ à Pierre Fauconnier
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)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/08/2011, 21h26   #9
Invité de passage
 
Inscription : avril 2010
Messages : 15
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 15
Points : 1
Points : 1
Par défaut Renommer un Label dans un Userform

Merci beaucoup pour toutes ces réponses.
Et encore bravo pour votre aide
Philindy
Philindy26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2011, 12h52   #10
Modérateur
 
Avatar de AlainTech
 
Homme Alain Gerard
Consultant informatique
Inscription : mai 2005
Messages : 3 675
Détails du profil
Informations personnelles :
Nom : Homme Alain Gerard
Âge : 58
Localisation : Belgique

Informations professionnelles :
Activité : Consultant informatique
Secteur : Finance

Informations forums :
Inscription : mai 2005
Messages : 3 675
Points : 7 668
Points : 7 668
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 :
monUserForm.Caption=CStr(Range("  ").Value)
En plus de la remarque de Pierre, on peut faire encore mieux:
Code :
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!
AlainTech est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h10.


 
 
 
 
Partenaires

Hébergement Web