Renommer en masse Label dans 5 Frames

  • Initiateur de la discussion Initiateur de la discussion carlos
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

carlos

XLDnaute Impliqué
Bonjour

j'ai une userform avec 5 frames nommées FrameA,frameB etc...

Sur chacune des frame il y a 50 petits Labels qui changent de couleur en fonction de valeurs(bref)
j'ai renommé manuellement la premiere serie de label sur la FrameA :
Alabel1,Alabel2,Alabel3,.........................Alabel50

j'aimerai trouver un moyen rapide pour renommer les autres .
Sur la frame B ce serait:
BLabel1,BLabel2 etc....

Etc jusqu'a la frameC

merci
 
Re : Renommer en masse Label dans 5 Frames

Bonjour Carlos

essaye avec le code ci dessous :

Code:
Private Sub UserForm_Initialize()
Dim f As Control, c As Control, i As Integer
For Each c In Me.Controls
    If TypeOf c Is MSForms.Frame Then
        i = 1
        For Each l In c.Controls
            If TypeOf l Is MSForms.Label Then l.Name = Mid(c.Name, 6, 1) & Label & i: _
                i = i + 1
        Next l
    End If
Next c
End Sub

bonne journée
@+

Edition : regarde peut être ce fil, utilisation de la propriété "tag" et module de classe. A mon avis pas sur d'être obligé de renommer...
https://www.excel-downloads.com/threads/plusieurs-option-button.84971/
 
Dernière édition:
Re : Renommer en masse Label dans 5 Frames

Salut Pierrot93, le forum

Deja , merci pour ta proposition

j'ai 2 questions
1 - le l n'est pas déclaré,je pense que c'est: Dim l As Control
2 - Le Label du code : "Mid(c.Name, 6, 1) & Label & i: _ "
n'est pas une variable déclaréee non plus ? comment la declarer?

Si tu peux encore me renseigner pour cela.
PS : j'ai deja des modules de classe et des tags dans mon projet mais ceux ci ne m'aide pas pour cette question.

Merci

Carlos
 
Re : Renommer en masse Label dans 5 Frames

Re

essaye comme ci dessous, attention c'est la propriété "caption" qui est modifiée, a priori on ne peut pas modifier le nom d'un controle lors de l'execution d'un code, cf aide vba ci dessous, enfin si j'ai bien compris.

Vous pouvez définir la propriété Name d'un contrôle depuis la feuille de propriétés de celui-ci ou, pour des contrôles ajoutés au moment de l'exécution, en utilisant des instructions du programme. Si vous ajoutez un contrôle au moment de la conception, vous ne pouvez pas modifier sa propriété Name au moment de l'exécution.


Code:
Private Sub UserForm_Initialize()
Dim f As Control, c As Control, l As Control, i As Integer
For Each c In Me.Controls
    If TypeOf c Is MSForms.Frame Then
        i = 1
        For Each l In c.Controls
            If TypeOf l Is MSForms.Label Then l.Caption = Mid(c.Name, 6, 1) & "label" & i: _
                i = i + 1
        Next l
    End If
Next c
End Sub

bonne soirée
@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

N
Réponses
5
Affichages
3 K
Nicocotte125
N
J
Réponses
4
Affichages
1 K
jmten92
J
N
Réponses
9
Affichages
1 K
Julien01
J
H
Réponses
3
Affichages
1 K
N
Réponses
3
Affichages
2 K
N
D
Réponses
17
Affichages
2 K
Defcom60
D
O
Réponses
0
Affichages
2 K
okidaccord
O
Retour