Affichage couleur de fond cellule comme info dans UserForm

REA

XLDnaute Nouveau
Bonjour le forum!

je suis débutant depuis peu en vba. J'ai une macro de recherche en UserForm à faire et j'avance assez lentement. Ce forum m'aide énormément mais là pour mon problème du jour, je n'ai pas trouvé la solution :(

Voici un aperçu de mon UserForm avec indication des noms des champs (carément moche, il y a eu un bug dans les couleurs lol)

http://imageshack.us

le code de recherche fonctionne :
1 - je sélectionne dans une ListeBox (LB1) la feuille dans laquelle je veux effectuer ma recherche;
2 - je rentre dans une TextBox (TB1) du texte ou nombres à chercher, un truc quoi :D selon des critères définis dans le code;
3 - automatiquement, tous les résultats possibles se listent dans une 2e ListBox (LB2)

c'est maintenant que je cale :
4 - j'aimerais afficher en couleur de fond d'une "image" de la UserForm, ici appelée NRJ la couleur de fond de la cellule correspondant au résultat de recherche sélectionnée dans LB2

voici mon code :

Private Sub UserForm_Initialize()
Dim i As Integer
Dim SName As String
UF1.LB1.Clear
For i = 2 To Worksheets.Count
SName = Sheets(i).Name
UF1.LB1.AddItem SName
If i = 6 Then Exit Sub
Next i
If UF1.LB1.ListCount <> 0 Then UF1.LB1.ListIndex = 0
End Sub

Private Sub TB1_Change()
Dim l As Double
Dim n As Integer
Dim vc As String
Dim vs As String
Dim IndexSheet As Integer
c = 3
n = 0
vs = LCase(UF1.TB1.Text)
UF1.LB2.Clear
UF1.LB3.Caption = "Aucun élément trouvé"

IndexSheet = 2 + UF1.LB1.ListIndex

If UF1.TB1.TextLength < 1 Then
Exit Sub
Else
For l = 2 To Sheets(IndexSheet).Cells(65536, c).End(xlUp).Row
If IsNumeric(Sheets(IndexSheet).Cells(l, c)) Then
vc = Str(Sheets(IndexSheet).Cells(l, c))
Else
vc = LCase(Sheets(IndexSheet).Cells(l, c))
End If
If Not InStr(1, vc, vs) = 0 Then
UF1.LB2.AddItem l & " : " & Sheets(IndexSheet).Cells(l, c).Value
n = n + 1
End If
Next l
End If

If n > 0 Then UF1.LB2.ListIndex = 0
If n = 0 Then UF1.LB3.Caption = "Aucun élément trouvé"
If n = 1 Then UF1.LB3.Caption = "Un élément trouvé"
If n > 1 Then UF1.LB3.Caption = n & " éléments trouvés"
End Sub

Private Sub NRJ_Change() 'voilà c'est ici qu'il faudrais que j'arrive en fonction de ma ligne sélectionné en LB2 à récupérer une info sur la couleur de la cellule, mais tout ce que j'ai fais jusqu'à présent me retourne rien ou du noir :(, voici en commentaire deux lignes utiles je pense
' Color = Cells(l, c).Interior.ColorIndex
' NRJ.BackColor = color
End Sub

bon j'espère que c'est pas trop confu tout ça, n'hésitez pas à me poser des questions

et merci à l'avance
 

matthieu33

XLDnaute Occasionnel
Re : Affichage couleur de fond cellule comme info dans UserForm

Bonjour REA et le forum,

Voici ce que tu peux mettre :

Code:
intColor = Cells(l, c).Interior.Color
NRJ.BackColor = intColor

Pour info, tu ne dois pas utiliser une variable nommée "Color" car il s'agit d'un mot réservé.

@+
 

REA

XLDnaute Nouveau
Re : Affichage couleur de fond cellule comme info dans UserForm

merci pour l'info matthieu, je fais vraiment des erreurs betes^^
ton code marche mais ne prend que la dernière couleur de la boucle.

c'est pas grave, après une journée à me creuser la tete je viens de solutionner mon problème lol

@ bientot le forum :p
 

Statistiques des forums

Discussions
312 848
Messages
2 092 787
Membres
105 534
dernier inscrit
EmilieG60