Afficher intitulé label dans userform

ministef_21

XLDnaute Nouveau
Bonjour le Forum,
Je relance mon appel de détresse...

Je ne sais pas si cela est possible mais ça m'arrangerait bien que quelqu'un me dise oui!

Je voudrai pouvoir afficher les intitulés de différents labels de mon classeur dans un UserForm en fonction de la couleur de fond de ces labels.
Si la couleur programmée est présente en fond, on affiche l'intitulé du label dans l'userform, sinon non.

Un petit exemple plus explicite je pense...

Merci d'avance

Cordialement.
 

Pièces jointes

  • Affichage_Label_UserForm.xls
    43 KB · Affichages: 49
  • Affichage_Label_UserForm.xls
    43 KB · Affichages: 53
  • Affichage_Label_UserForm.xls
    43 KB · Affichages: 54

Modeste

XLDnaute Barbatruc
Re : Afficher intitulé label dans userform

Bonjour ministef_21,

Pas certain d'avoir bien compris :confused: ... peux-tu tester le bouton "affichage des résultats feuille 2"?
 

Pièces jointes

  • Affichage_Label_UserForm (V2).xls
    58 KB · Affichages: 76

Modeste

XLDnaute Barbatruc
Re : Afficher intitulé label dans userform

Re-bonjour,

Non en fait je me suis emballé un peu vite, il ne reconnais pas mes objets
J'ai le message suivant: "membre de méthode ou de donnée introuvable"!

... Je présume que tu n'attends pas qu'on devine quel pourrait être le problème!? Si ça fonctionnait dans le premier fichier et plus dans le second, qu'y aurait-il de différent de l'un à l'autre?
 

ministef_21

XLDnaute Nouveau
Re : Afficher intitulé label dans userform

J'ai résolu mon problème précédent avec un peu de réflexion... :)

Mais je m'aperçois que le morceau de code me fait afficher dans mon Userform tout les labels présents dans la page.
Je m'explique : Mes labels sont conditionnés par la validation ou non de Checkbox... et je ne voudrais dans mon userForm que les labels visibles.

Désolé d'abuser une nouvelle fois de vos compétences... mais je sèche.

J'avais pensé à inégrer la condtion "If Label1.Visible = True" quelque part mais je ne trouve pas ou!!

Merci d'avance...
 

Pièces jointes

  • Affichage_Label_UserForm.xls
    69.5 KB · Affichages: 61
  • Affichage_Label_UserForm.xls
    69.5 KB · Affichages: 68
  • Affichage_Label_UserForm.xls
    69.5 KB · Affichages: 66

Modeste

XLDnaute Barbatruc
Re : Afficher intitulé label dans userform

Re-bonjour,

En attendant encore un peu, j'espérais que tu penserais à donner toutes les infos :rolleyes:

Essaie peut-être:
VB:
Private Sub UserForm_Initialize()

With Sheets("Feuil2")
    For Each ctrl In .Shapes
        If Left(ctrl.OLEFormat.Object.Name, 5) = "Label" And ctrl.OLEFormat.Object.Visible = True Then
            If ctrl.OLEFormat.Object.Object.BackColor = Me.Label1.BackColor Then _
                TextRouge = TextRouge & ctrl.OLEFormat.Object.Object.Caption & vbCr
            If ctrl.OLEFormat.Object.Object.BackColor = Me.Label2.BackColor Then _
                TextJaune = TextJaune & ctrl.OLEFormat.Object.Object.Caption & vbCr
            End If
    Next ctrl
End With
Me.Label1.Caption = TextRouge
Me.Label2.Caption = TextJaune

End Sub
 

ministef_21

XLDnaute Nouveau
Re : Afficher intitulé label dans userform

Merci beaucoup Modeste.

Cela fonctionne très bien et effectivement il ne manquait pas grand chose...
Encore désolé si je n'ai pas été très clair dans les explication ou pas très complet! ;)

Bonne journée
 

ministef_21

XLDnaute Nouveau
Re : Afficher intitulé label dans userform

Bonjour à tous,
je reviens sur ce poste car après avoir intégrer ce morceau de code dans mon travail j'aimerai y ajouter une toute petite chose que je n'arrive pas à faire!!!
J'aimerai que lorsque l'on ne trouve pas de label de la couleur désirée on ait un retour du type "Néant" ou "aucune infos disponibles'.

Voici le code utilisé, donné par modeste, présent aussi plus haut dans la discussion

Private Sub UserForm_Initialize()

With Sheets("Feuil2")
For Each ctrl In .Shapes
If Left(ctrl.OLEFormat.Object.Name, 5) = "Label" And ctrl.OLEFormat.Object.Visible = True Then
If ctrl.OLEFormat.Object.Object.BackColor = Me.Label1.BackColor Then _
TextRouge = TextRouge & ctrl.OLEFormat.Object.Object.Caption & vbCr
If ctrl.OLEFormat.Object.Object.BackColor = Me.Label2.BackColor Then _
TextJaune = TextJaune & ctrl.OLEFormat.Object.Object.Caption & vbCr
End If
Next ctrl
End With
Me.Label1.Caption = TextRouge
Me.Label2.Caption = TextJaune

End Sub

Merci d'avance.
Cordialement
 

Modeste

XLDnaute Barbatruc
Re : Afficher intitulé label dans userform

Bonsoir ministef_21, il y avait longtemps :rolleyes:

Dans le code proposé préalablement, TextRouge et TextJaune se "garnissaient" du texte trouvé dans les "Labels" ... si j'ai bien compris, au cas où aucune case ne serait cochée, il n'y aurait pas de Labels visibles dans l'une de tes feuilles!?
Dès lors, toujours si je ne m'abuse, TextRouge et/ou TextJaune seraient toujours vides, si aucun label de la couleur correspondante n'était trouvé.
Code:
if TextJaune="" then MsgBox "Pas de jaune"
... devrait donc fonctionner, me semble-t-il (en tout cas avec la portion de code dont nous disposons)

Je te laisse le soin de vérifier les autres couleurs :p
 

ministef_21

XLDnaute Nouveau
Re : Afficher intitulé label dans userform

Bonjour Modeste et réellement merci! :)

Le petit morceau de code fonctionne, seulement la fenêtre m'indiquant le message "pas de jaune" s'affiche environ dix fois de suite. C'est à dire qu'il me faut valider 10 fois pour que la fenêtre se ferme et laisse place à l'UserForm...

Je ne peux pas afficher dans le label de couleur jaune de l'UserForm le message directement au lieu de passer par une fenêtre?

Car ensuite j'ai une commande qui me rapporte le contenu des labels de couleur dans une feuille de classeur de type Sheets("Feuil1").Range("B1") = UserForm25.Label1

Encore désolé de vous demander de l'aide mais je galère! :s

Cordialement
 

Modeste

XLDnaute Barbatruc
Re : Afficher intitulé label dans userform

Bonjour ministef_21,

Si le message s'affiche 10 fois ... c'est peut-être que tu as mis l'instruction à l'intérieur de la boucle!?
D'autre part, j'affichais dans un MsgBox, pour illustrer (en me disant que tu adapterais :rolleyes:)

VB:
Private Sub UserForm_Initialize()

With Sheets("Feuil2")
    For Each ctrl In .Shapes
        If Left(ctrl.OLEFormat.Object.Name, 5) = "Label" And ctrl.OLEFormat.Object.Visible = True Then
            If ctrl.OLEFormat.Object.Object.BackColor = Me.Label1.BackColor Then _
                TextRouge = TextRouge & ctrl.OLEFormat.Object.Object.Caption & vbCr
            If ctrl.OLEFormat.Object.Object.BackColor = Me.Label2.BackColor Then _
                Textjaune = Textjaune & ctrl.OLEFormat.Object.Object.Caption & vbCr
        End If
    Next ctrl
End With

' *** c'est ici que ça se passe
Me.Label1.Caption = IIf(TextRouge = "", "Néant", TextRouge)
Me.Label2.Caption = IIf(Textjaune = "", "Néant", Textjaune)

End Sub

Tu nous diras si ça va mieux?
 

ministef_21

XLDnaute Nouveau
Re : Afficher intitulé label dans userform

Merci de ta disponibilité et ta réactivité Modeste!

J'ai intégrer la toute petite modification mais au combien utile dans mon code et cela fonctionne bien! :)

Encore merci et à bientôt je n'en doute pas! ^^

Bonne journée
 

Discussions similaires

Statistiques des forums

Discussions
312 552
Messages
2 089 527
Membres
104 204
dernier inscrit
crapaud_anonyme