Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment Indexer un Label ?

6 réponses
Avatar
Bartez
Bonjour à tous,

J'ai fait un petit formulaire qui contient pas mal de Label identifiés
"Label1", "Label2"...etc. jusqu'à "Label80".

J'ai besoin de modifier leur contenu, mais sous cette forme, je n'ai pas la
possibilité de faire une boucle du style :

For compteur = 1 to 80
Label(compteur).Caption = compteur
Next

Existe-t-il un moyen de faire quelque chose de similaire, ou suis-je condané
à écrire une suite de : Label1=1 Label2=2...etc ?

Merci de votre aide
Bartez

6 réponses

Avatar
Fredo P
Peut être, pas essayé
For compteur = 1 to 80
Label(compteur).Caption =str(compteur)
Next


"Bartez" a écrit dans le message de
news:
Bonjour à tous,

J'ai fait un petit formulaire qui contient pas mal de Label identifiés
"Label1", "Label2"...etc. jusqu'à "Label80".

J'ai besoin de modifier leur contenu, mais sous cette forme, je n'ai pas
la

possibilité de faire une boucle du style :

For compteur = 1 to 80
Label(compteur).Caption = compteur
Next

Existe-t-il un moyen de faire quelque chose de similaire, ou suis-je
condané

à écrire une suite de : Label1=1 Label2=2...etc ?

Merci de votre aide
Bartez




Avatar
Bartez
Merci Fredo de ton aide, mais si je mets quelque chose comme
Label(compteur), Excel me dit que l'objet n'existe pas :(


"Fredo P" a écrit dans le message de news:

Peut être, pas essayé
For compteur = 1 to 80
Label(compteur).Caption =str(compteur)
Next


"Bartez" a écrit dans le message de
news:
Bonjour à tous,

J'ai fait un petit formulaire qui contient pas mal de Label identifiés
"Label1", "Label2"...etc. jusqu'à "Label80".

J'ai besoin de modifier leur contenu, mais sous cette forme, je n'ai pas
la

possibilité de faire une boucle du style :

For compteur = 1 to 80
Label(compteur).Caption = compteur
Next

Existe-t-il un moyen de faire quelque chose de similaire, ou suis-je
condané

à écrire une suite de : Label1=1 Label2=2...etc ?

Merci de votre aide
Bartez








Avatar
Jacques93
Bonjour Bartez,

Je ne sais pas si cela répond précisément à ta question, mais tu peux
peut être t'inspirer de ceci :

Private Sub EnumLabels()
Dim c As Control
Dim l As Long

l = 1
For Each c In Me.Controls
If TypeOf c Is MSForms.Label Then
If UCase(c.Name) = "LABEL" & Format(l) Then
c.Caption = Format(l)
l = l + 1
End If
End If
Next
End Sub

Bonjour à tous,

J'ai fait un petit formulaire qui contient pas mal de Label identifiés
"Label1", "Label2"...etc. jusqu'à "Label80".

J'ai besoin de modifier leur contenu, mais sous cette forme, je n'ai pas la
possibilité de faire une boucle du style :

For compteur = 1 to 80
Label(compteur).Caption = compteur
Next

Existe-t-il un moyen de faire quelque chose de similaire, ou suis-je condané
à écrire une suite de : Label1=1 Label2=2...etc ?

Merci de votre aide
Bartez





--
Cordialement,

Jacques.

Avatar
Bartez
Merci Jacques93 pour ton code.
Je tenté de le comprendre (je pense y être arrivé...mais c'est pas sûr) mais
il ne me simplifi pas la vie car sans lui, je suis obligé d'écrire 80 lignes
qui se ressemblent du style :
Label1=1
Label2=2...etc.
et avec ton code, je dois en plus rajouter un test pour savoir quelle valeur
donner à chaque Label rencontrée dans la boucle du ptogramme.
Moi ce que j'aurais voulu, c'est pouvoir choisir par exemple de Label10 à
Label55, mettre la valeur 18 comme texte.

Merci quand même de ton aide ;-)
@+
Bartez


, l'ai essayé
"Jacques93" a écrit dans le message de news:
%23LTq%
Bonjour Bartez,

Je ne sais pas si cela répond précisément à ta question, mais tu peux peut
être t'inspirer de ceci :

Private Sub EnumLabels()
Dim c As Control
Dim l As Long

l = 1
For Each c In Me.Controls
If TypeOf c Is MSForms.Label Then
If UCase(c.Name) = "LABEL" & Format(l) Then
c.Caption = Format(l)
l = l + 1
End If
End If
Next
End Sub

Bonjour à tous,

J'ai fait un petit formulaire qui contient pas mal de Label identifiés
"Label1", "Label2"...etc. jusqu'à "Label80".

J'ai besoin de modifier leur contenu, mais sous cette forme, je n'ai pas
la possibilité de faire une boucle du style :

For compteur = 1 to 80
Label(compteur).Caption = compteur
Next

Existe-t-il un moyen de faire quelque chose de similaire, ou suis-je
condané à écrire une suite de : Label1=1 Label2=2...etc ?

Merci de votre aide
Bartez



--
Cordialement,

Jacques.



Avatar
Jacques93
Bonjour Bartez,

Inverse le sens du test (extraction du numéro du nom du Label).
Si tu veux assigner 18 comme caption des label10 à label55 :

EnumLabel 10, 55, "18"

Private Sub EnumLabels(Deb As Long, Fin As Long, Valeur As String)
Dim c As Control
Dim NoLabel As Long

For Each c In Me.Controls
If TypeOf c Is MSForms.Label Then
NoLabel = Val(Mid(c.Name, 6))
If NoLabel >= Deb And NoLabel <= Fin Then
c.Caption = Valeur
End If
End If
Next
End Sub

Merci Jacques93 pour ton code.
Je tenté de le comprendre (je pense y être arrivé...mais c'est pas sûr) mais
il ne me simplifi pas la vie car sans lui, je suis obligé d'écrire 80 lignes
qui se ressemblent du style :
Label1=1
Label2=2...etc.
et avec ton code, je dois en plus rajouter un test pour savoir quelle valeur
donner à chaque Label rencontrée dans la boucle du ptogramme.
Moi ce que j'aurais voulu, c'est pouvoir choisir par exemple de Label10 à
Label55, mettre la valeur 18 comme texte.

Merci quand même de ton aide ;-)
@+
Bartez






--
Cordialement,

Jacques.

Avatar
Bartez
Ok, Je crois que cette fois j'ai vraiment compris ;-)

Je viens de tester ton code et ça fonctionne parfaitement pour ce que je
veux faire !

Merci pour tout !
Bartez

"Jacques93" a écrit dans le message de news:

Bonjour Bartez,

Inverse le sens du test (extraction du numéro du nom du Label).
Si tu veux assigner 18 comme caption des label10 à label55 :

EnumLabel 10, 55, "18"

Private Sub EnumLabels(Deb As Long, Fin As Long, Valeur As String)
Dim c As Control
Dim NoLabel As Long

For Each c In Me.Controls
If TypeOf c Is MSForms.Label Then
NoLabel = Val(Mid(c.Name, 6))
If NoLabel >= Deb And NoLabel <= Fin Then
c.Caption = Valeur
End If
End If
Next
End Sub

Merci Jacques93 pour ton code.
Je tenté de le comprendre (je pense y être arrivé...mais c'est pas sûr)
mais il ne me simplifi pas la vie car sans lui, je suis obligé d'écrire
80 lignes qui se ressemblent du style :
Label1=1
Label2=2...etc.
et avec ton code, je dois en plus rajouter un test pour savoir quelle
valeur donner à chaque Label rencontrée dans la boucle du ptogramme.
Moi ce que j'aurais voulu, c'est pouvoir choisir par exemple de Label10 à
Label55, mettre la valeur 18 comme texte.

Merci quand même de ton aide ;-)
@+
Bartez






--
Cordialement,

Jacques.