Bonjour,
Dans ma feuille j'ai un "Label".
Je voudrais que la couleur de remplissage de celui-ci soit la même que celle d'une cellule.
Pour y parvenir, autant que faire se peut (...), j'ai bidouillé le truc suivant :
1/ je récupère, en code hexadécimal, la couleur de remplissage de la cellule :
	
	
	
	
	
		
Supposons que la cellule soit d'un abominable violet, le code sera :
HexaColor([B5]) = &DE2064
Ce code n'est apparemment pas compris pour "BackColor" du "Label". Il faut le transformer pour qu'il soit intelligible en : &HDE2064&
Pour y parvenir, je tente ceci :
- 1/ je transforme &DE2064 en &DE2064&
- 2/ j'intercale un "H" après le 1er "&"
	
	
	
	
	
		
Je vérifie si le "néo-code" est bien retranscrit en faisant un test :
[P30] = InsertionCaractère(HexaColor([B5]) & "&", "H", 2)
La cellule "P30" affiche bien le code normalement compris dans les propriétés du label en question, soit &HDE2064&.
Je suis content !
Maintenant, audacieusement, je tente :
	
	
	
	
	
		
Ça ne marche pas. Je ne suis pas content !
Comment faire en sorte pour que je redevienne content ?
	
		
			
		
		
	
				
			Dans ma feuille j'ai un "Label".
Je voudrais que la couleur de remplissage de celui-ci soit la même que celle d'une cellule.
Pour y parvenir, autant que faire se peut (...), j'ai bidouillé le truc suivant :
1/ je récupère, en code hexadécimal, la couleur de remplissage de la cellule :
		VB:
	
	
	Function HexaColor(Target As Range, Optional fond As Integer) As String
'Renvoie le code hexadécimal d'une couleur
'Lone-wolf
'---- 0 ou absence du 2eme argument renvoie la couleur de remplissage
'---- tout autre nombre renvoie la couleur de la police
'---- renvoi la couleur par défaut hors Mise En Forme Conditionnelle
    Application.Volatile
    If fond = 0 Then
        HexaColor = "&" & Application.Dec2Hex(Target.Interior.Color, 6)
        Else
        HexaColor = "&" & Application.Dec2Hex(Target.Font.Color, 6)
    End If
   
End Function
	HexaColor([B5]) = &DE2064
Ce code n'est apparemment pas compris pour "BackColor" du "Label". Il faut le transformer pour qu'il soit intelligible en : &HDE2064&
Pour y parvenir, je tente ceci :
- 1/ je transforme &DE2064 en &DE2064&
- 2/ j'intercale un "H" après le 1er "&"
		VB:
	
	
	Function InsertionCaractère(MaChaine As String, Insert As String, i As Byte) As String
'Insertion d'un caractère dans une chaîne
'- MaChaine = la chaîne dans laquelle on veut insérer le caractère
'- Insert = le caractère à insérer
'- i = la position dans la chaîne, en partant de la gauche, du caractère que l'on veut insérer
    MaChaine = Left$(MaChaine, i - 1) & Insert & Mid$(MaChaine, i)
    InsertionCaractère = MaChaine
End Function
	[P30] = InsertionCaractère(HexaColor([B5]) & "&", "H", 2)
La cellule "P30" affiche bien le code normalement compris dans les propriétés du label en question, soit &HDE2064&.
Je suis content !
Maintenant, audacieusement, je tente :
		VB:
	
	
	    With Worksheets("BTX").LabelmLparGr1
        .BackColor = InsertionCaractère(HexaColor([B5]) & "&", "H", 2)
    End With
	Comment faire en sorte pour que je redevienne content ?