Valeur des controls label

thomlau

XLDnaute Occasionnel
Bonjour à tous
J'espère que le week-end commence bien pour vous.

Voilà mon problème :

Dans un Userform, j'ai 192 labels (rien que ça!), et je voudrais qu'à l'initialisation de l'USF, ces 192 labels prennent la valeur de chaque cellule d'un tableau composé de 192 cellules.
De plus, ci la valeur de la cellule est égale à "REPOS", le label prend la couleur orange par exemple.

C'est réalisable pour ma part, mais en faisant pour chaque label :

Label1.Caption = Sheets("planning").range("B1").value
if Sheets("planning").range("B1").value = "REPOS" then
Label1.BackColor = &H000080FF&​
End If

Bon ceci à faire 192 fois....ça risque d'être long, c'est pourquoi, une fois de plus je fais appel à votre savoir.

D'avance merci si vous pouviez automatisé cette tâche.
 

skoobi

XLDnaute Barbatruc
Re : Valeur des controls label

Bonjour,
remplace par:
For n = 1 to 192
Controls("Label" & n).Caption = Sheets("planning").range("B" & n).value
if Sheets("planning").range("B" & n).value = "REPOS" then

Controls("Label" & n).BackColor = &H000080FF&

End If
Next
Test et dis-nous
 

thomlau

XLDnaute Occasionnel
Re : Valeur des controls label

Bonjour skoobi, bonjour à tous

J'ai testé ton code, mais il ne fonctionne pas dans mon cas...
ps : j'ai mis Dim n as integer car j'avais un message d'erreur.

Merci tout de même pour ta contribution

@+
 

Banzai64

XLDnaute Accro
Re : Valeur des controls label

bonjour

Peut-être as tu plus de 192 controls dans ton usf

alors essayes (Non testé)


Code:
 n=1
   With Sheets("Planning")
   For Each Ctr In Me.Controls
     If Ctr.Name = "Label" & n then
        Ctr.Caption = .range("B" & n).value
        If .range("B" & n).value = "REPOS" then
          Ctr.BackColor = &H000080FF&
         End If
         n = n +1
         If n > 192 Then Exit For
     End If
   Next Ctr
  End With

Alors c'est sans garanties
 
Dernière édition:

thomlau

XLDnaute Occasionnel
Re : Valeur des controls label

Re Skoobi, bonjour Banzai.

Les labels vont de 40 à 231 et les données dans mon tableau vont de C5 à H36.

j'avais donc adapté le code de Skoobi
Code:
For n = 40 to 231
Controls("Label" & n).Caption = Sheets("planning").range("C" & n).value
if Sheets("planning").range("C" & n).value = "REPOS" then

Controls("Label" & n).BackColor = &H000080FF&

End If
Next

Encore merci pour votre aide.
 

thomlau

XLDnaute Occasionnel
Re : Valeur des controls label

Re bonjour à tous.

Comme les propositions que m'ont fait Skoobi et Banzai64 ne fonctionnent pas pour mon appli, je vais devoir suivre ma première idée, c'est à dire faire ça label par label.

Encore merci pour vous être penchés sur le sujet.

@ bientôt
 

Banzai64

XLDnaute Accro
Re : Valeur des controls label

Bonjour

Pourquoi cela ne fonctionne pas ?
Quel est le résultat obtenu ?

On veut bien t'aider mais faut donner plus de renseignements
Si pas les bonnes valeurs dans tes texbox (Une erreur comme tu dis)

le problème vient peut être du fait que dans ta feuille tu récupères les renseignement à partir de la ligne 1 donc modifie ton code comme ca

For n = 40 to 231
Controls("Label" & n).Caption = Sheets("planning").range("C" & n - 39).value
if Sheets("planning").range("C" & n - 39).value = "REPOS" then

Controls("Label" & n).BackColor = &H000080FF&

End If
Next

Essayes et dit le type d'erreur
 

thomlau

XLDnaute Occasionnel
Re : Valeur des controls label

Re Bonzaï

Ton code fonctionne partiellement. Déja je t'en remercie beaucoup.

J'ai remarqué 2 ou 3 problèmes.

Les labels s'incrémentent de façon verticale...
c'est à dire que le label40 =C5, label41 =C6....
mon "mur" de label devrait s'incrémenter ainsi :label40 =C5, label41 =D5....

La couleur orange ne se met pas...

Mais de toute façon on a avancer là, merci encore.

@+
 

thomlau

XLDnaute Occasionnel
Re : Valeur des controls label

Banzaï, tu va me dire que je suis chiant...

J'ai adapté ce code, résultat, seule la première ligne est affichée et sans la couleur.
Code:
For N = 40 To 231
Controls("Label" & N).Caption = Sheets("planning").Cells(5, N - 37).Value
If Sheets("planning").Cells(5, N - 37).Value = "REPOS" Then

Controls("Label" & N).BackColor = &H80FF&

End If
Next

Auparavant, sans la dernière modif, j'avais ça :
 

Banzai64

XLDnaute Accro
Re : Valeur des controls label

Re

Meuuuhhh non t'es pas chiant :D:D
Tu veux quelque chose qui fonctionne et c'est normal

Pour moi je dois savoir comment sont agencés les labels c'est à dire ta feuille 'Planning'
Pour moi et d'après ton message les labels sont tous sur une ligne (5) à partir de la colonne C
A voir
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin