Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Regrouper plusieurs labels

Magic_Doctor

XLDnaute Barbatruc
Bonjour,

J'ai plusieurs labels et je voudrais leur assigner à tous la même couleur.
J'ai écrit ceci qui fonctionne (pour l'exemple, je ne prends que 2 labels) :
VB:
       With Worksheets("Hoja1").Label1
            .BackColor = &H614025  'bleu marine
        End With
        With Worksheets("Hoja1").Label2
            .BackColor = &H614025  'bleu marine
        End With
J'ai essayé de regrouper tous ces labels comme ceci :
VB:
ActiveSheet.Shapes.Range(Array("Label1", "Label2")).BackColor = &H614025  'bleu marine
Ça na marche pas.

Comment s'y prendre ?
 

eriiic

XLDnaute Barbatruc
Bonjour,

Mes meilleurs voeux pour 2021 à tous.
Avec un début de nom identique :
VB:
Dim ctrl As Control
For Each ctrl In Me.Controls
    If Left(ctrl, 5) = "Label" Then ctrl.BackColor = &H614025 'bleu marine
Next ctrl
eric
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil

Une autre syntaxe
VB:
Sub Traitement_Labels()
For k = 1 To ActiveSheet.OLEObjects.Count
Set obj = ActiveSheet.OLEObjects(k)
Set oo = obj.Object
If TypeName(oo) = "Label" Then
oo.BackColor = &H614025
End If
Next
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

Avec des endives
VB:
Sub Traitement_Labels()
With ActiveSheet
    For k = 1 To .OLEObjects.Count
    Set oo = .OLEObjects(k).Object
        If TypeName(oo) = "Label" Then
        oo.BackColor = &H614025
        End If
    Next
End With
End Sub
EDITION: Bonjour mapomme (pas vu mon MP?)
 

Staple1600

XLDnaute Barbatruc
Re

=>mapomme
J'ai plusieurs labels et je voudrais leur assigner à tous la même couleur.
L'être humain étant programmer pour croire
J'ai fait le choix de croire que plusieurs veut ici dire tous et tous et plusieurs, ce n'est pas rien
et que mine de rien, tout est en rien et rien n'est dans tout
Amen
 

M12

XLDnaute Accro
Bonjour à tous
Une de plus
VB:
Dim Obj As OLEObject
  For Each Obj In ActiveSheet.OLEObjects
    If TypeOf Obj.Object Is MSForms.Label Then
          Obj.Object.BackColor = &H614025  'bleu marine
    End If
  Next
 

mapomme

XLDnaute Barbatruc
Supporter XLD
J'ai fait le choix de croire que plusieurs veut ici dire tous et tous et plusieurs, ce n'est pas rien
et que mine de rien, tout est en rien et rien n'est dans tout
Trois fois rien, c'est déjà plusieurs "petits riens"...
D'ailleurs rien n'est pas rien. Ne dit-on pas "rien de rien" ? Ce qui montre bien que le rien contient d'autres riens (autres riens qu'il faut ôter de rien si on veut vraiment de rien avoir).
D'ailleurs "ne rien avoir", est ce posséder rien ? Si oui, alors ne rien avoir c'est posséder quelque-chose ???
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re, Bonjour M12

=>mapomme
Rien d'autre qu'une réponse à la dernière question du message#7 eut suffit à ne rien laisser transparaitre de mon état d'âme.
Mais rien n'est venu pour autant tout espoir n'est pas perdu.


Sinon pour la question, il nous reste le module de classe
 

Staple1600

XLDnaute Barbatruc
Re, Bonjour patrictoulon, eriiiic

Puisque tout est dans tout, et qu'un WorkBook est un tout.
Et pour faire un petit coucou aux Munchkins
VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim L_Bl As Object, OverTheRainBow
Randomize 1600
For Each L_Bl In ActiveSheet.OLEObjects
OverTheRainBow = RGB(Int(Rnd * 255), Int(Rnd * 121), Int(Rnd * 67))
'syntaxe classique
'If TypeName(L_Bl.Object) = "Label" Then L_Bl.Object.BackColor = OverTheRainBow
' pour le fun
L_Bl.Object.BackColor = IIf(TypeName(L_Bl.Object) = "Label", OverTheRainBow, 0)
Next
End Sub
Parce que Dorothy vaut bien Isabelle A., et que j'aime pas les pulls, fussent-ils marine.


Nb: Code VBA à mettre dans ThisWorkBook, et ce serait mieux si avant vous avez inséré tout plein de labels sur vos feuilles.
Ce qui n'est pas rien, niveau temps.
Mais ... au pays d'Oz, le temps c'est rien, et picétou
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…