Propriété label variable

Résolu
-
 Yoyoblabla -
Bonjours a tous!
Sur une feuille excel je dispose de plusieurs labels (label1,label2,label3...etc)
je voudrais changer leurs intitulés(facile jusque là)mais je voudrais automatiser cette manip a cause du grand nombre de label.
J'ai fais une ébauche en utilisant une boucle For mais je n'arrive pas a écrire ("label" & a).caption = "yoyo"
Si vous avez des idées je suis preneur.
A+

10 réponses

Messages postés
14852
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
26 janvier 2022
160
Bonjour,

Me.Controle("NomControle").Caption="UnTexte"

Avec Me : pour l'objet courant ou alors à remplacer par le nopm de la UserForm.
NomControle, le nom du contrôle.
UnTexte, le texte à afficher.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Monjour, NHenry.
C'est parce qu'il fait chaud, que tu francises ?
Controls
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
14852
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
26 janvier 2022
160
Bonjour Ucfoutu,

Oui, le E et le S sont proches, et parfois, ils s'échangent leur place pour embêter l'utilisateur

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
Salut
j'ai passé ma matinée a triturer la formule avec me.controle mais a chaque fois "Erreur compilation utilisation incorrecte du mot clé Me"
ci joint la macro

Sub Bouton1_Clic()
Dim a As Integer
a = 1001
'Le label sur la feuille excel s'appele Label1001
Me.Controle("Label" & a).Caption = "yoyo"
End Sub

la syntaxe est mauvaise,si tu as des idées.
A+
j'ai cru que tu m'avais sauvé NHenry avec ta réponse car j'ai utilisé controls avec le "S" pendant toute la matinée.
Bonjour et merci Ucfoutu pour la correction .
Il est peut plus simple de comprendre mon problème maintenant que j'ai envoyé ce bout de programme.
Messages postés
14852
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
26 janvier 2022
160
Bonjour,

Non, ça fonctionne :
Dim i As Long
    For i = 1 To 2
        'Me.Controls("Label" & CStr(i)).Caption = Now
        Me.Controls("Label" & i).Caption = Now
    Next i


Avec 2 versions (avec et sans CStr, je te conseil avec, comme ça, tu sais ce que tu fais).

Testé sur Excel 2003.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Ton problème était compris.
Mai_s je vois que tce label n'est pas sur un userform, mais sur la feuille de calcul.
Ce n'est alors pas la collection Controls, mais la collection OLEObjects ...
Tu vas par contre avoir un problème, car les objets de cette collection ne connaissent pas la propriété Caption et j'ignore par quoi elle est éventuellement remplacée.

Regarde ce que fait ceci :
a = "1001"
Me.OLEObjects("Label" & a").Visible = Not Me.OLEObjects("("Label" & a").Visible

Lance plusieurs fois et tu verras. FGonctionne car la propriété Visible existe, pas la propriété Caption . Alors que le contrôle, lui, en a une !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
J'ai utilisé ta syntaxe mais ca ne marche pas!

Sub Bouton53_Clic()
Dim w As Long
Dim a As String
w = 1001
Me.Controls("Label" & CStr(w)).Caption = "yoyo"
End Sub

Des choses me perturbe dans ta réponse/
pourquoi la différence string et long??
Est_ce qu'il ne me manquerai pas quelque chose lors de l'initialisation de "bouton 53.click"(By val quelque chose)
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Erreur de frappe :
Correction ===>>>
Me.OLEObjects("Label" & a).Visible = Not Me.OLEObjects("Label" & a).Visible
Bien évidemment..


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Bonjour tout le monde!
Ca y est ca marche!!!!
Je suis parti sur tes dernières informations Ucfoutu mais j'ai toujours eu le même message d'erreur.
j'ai donc isolé la chaine de caractère du nom du label pour pouvoir l'utiliser après.

Sub Bouton53_Clic()
Dim w As Long
Dim a As String
w = 1001
z = "Label" & w
Worksheets("Feuil1").OLEObjects(z).Object = "yoyo"
End Sub

Je ne peux pas expliquer pourquoi vos exemple marche chez vous et pas chez moi(j'ai excel 2007)mais je fais avec.
Merci beaucoup Ucfoutu et NHenry pour votre aide car j'ai vraiment ramé sur ce sujet
A+