Colorer textbox en fonction d'un planning

yves03

XLDnaute Occasionnel
Bonjour à tous,

J'ai un fichier qui represente un planning dans lequel les congés , les RTT ,les formations etc... sont de couleurs differentes.
Je voulais savoir si il est possible de colorier les textbox qui sont dans un userform en fonction du planning.

Exemple:

Pierre le 02/04 en CP couleur Vert , alors colorier le textbox 2 de la ligne Pierre en Vert.

Je ne sais pas si j'ai été tres clair.
Je vous joint le fichier.

Merci d'avance de votre aide, car je ne sais pas trop comment m'y prendre.
 

Pièces jointes

  • TEST.xls
    46.5 KB · Affichages: 83
  • TEST.xls
    46.5 KB · Affichages: 84
  • TEST.xls
    46.5 KB · Affichages: 84

myDearFriend!

XLDnaute Barbatruc
Re : Colorer textbox en fonction d'un planning

Bonsoir yves03, CBernardT,

Bernard, juste pour te dire que, sauf erreur, tu pouvais aussi remplacer :
Code:
    [COLOR=NAVY]If[/COLOR] .Cells(i, k + 1).Interior.ColorIndex = 3 [COLOR=NAVY]Then[/COLOR] [COLOR=GREEN]' Rouge[/COLOR]
    Me.Controls("Textbox" & k + ((i - 3) * 100)).BackColor = RGB(255, 0, 0)
    [COLOR=NAVY]ElseIf[/COLOR] .Cells(i, k + 1).Interior.ColorIndex = 4 [COLOR=NAVY]Then[/COLOR] [COLOR=GREEN]'Vert[/COLOR]
    Me.Controls("Textbox" & k + ((i - 3) * 100)).BackColor = RGB(0, 255, 0)
    [COLOR=NAVY]ElseIf[/COLOR] .Cells(i, k + 1).Interior.ColorIndex = 8 [COLOR=NAVY]Then[/COLOR] [COLOR=GREEN]' Bleu[/COLOR]
    Me.Controls("Textbox" & k + ((i - 3) * 100)).BackColor = RGB(0, 255, 255)
    [COLOR=NAVY]ElseIf[/COLOR] .Cells(i, k + 1).Interior.ColorIndex = 6 [COLOR=NAVY]Then[/COLOR] [COLOR=GREEN]' Jaune[/COLOR]
    Me.Controls("Textbox" & k + ((i - 3) * 100)).BackColor = RGB(255, 255, 0)
    [COLOR=NAVY]ElseIf[/COLOR] .Cells(i, k + 1).Interior.ColorIndex = -4142 [COLOR=NAVY]Then[/COLOR] [COLOR=GREEN]' vide[/COLOR]
    Me.Controls("Textbox" & k + ((i - 3) * 100)).BackColor = RGB(255, 255, 255)
    [COLOR=NAVY]End If[/COLOR]
Par :
Code:
Me.Controls("Textbox" & k + ((i - 3) * 100)).BackColor = .Cells(i, k + 1).Interior.Color
En utilisant Interior.Color au lieu de Interior.ColorIndex, ça simplifie la situation. ;)

Cordialement,
 

CBernardT

XLDnaute Barbatruc
Re : Colorer textbox en fonction d'un planning

Bonsoir myDearFriend!,

Excellente suggestion :)

cela simplifie grandement le code qui devient :

Private Sub UserForm_Initialize()
Dim i As Integer, k As Integer
With Sheets("Avril")
For i = 3 To 4 ' Boucle sur les lignes
For k = 1 To 31 ' Boucle sur les colonnes
Me.Controls("Textbox" & k + ((i - 3) * 100)).BackColor = .Cells(i, k + 1).Interior.Color
Next k
Next i
End With
End Sub

Cordialement

Bernard
 

yves03

XLDnaute Occasionnel
Re : Colorer textbox en fonction d'un planning

Bonjour à tous,
Merci pour vos solutions.
Par contre le fait d'avoir modifier le tableau, ne correspond plus a la realité de mon planning, car j'ai effectivement des groupes de 9 cellules dans mon planning.
Et je ne peux pas les modifier, car je me sers de toutes les cellules.
Peut on adapter votre code à ma configuration ?
Merci d'avance
 

CBernardT

XLDnaute Barbatruc
Re : Colorer textbox en fonction d'un planning

Bonjour,

Quelques modifications du code pour s'adapter au tableau :

Private Sub UserForm_Initialize()
Dim i As Integer, k As Integer
With Sheets("Avril")
For i = 3 To 6 Step 3 ' Boucle sur les lignes
For k = 1 To 31 ' Boucle sur les colonnes
Me.Controls("Textbox" & k + ((i - 3) / 3 * 100)).BackColor = .Cells(i, (k * 3) - 1).Interior.Color
Next k
Next i
End With
End Sub

Cordialement

Bernard
 

yves03

XLDnaute Occasionnel
Re : Colorer textbox en fonction d'un planning

Bonjour,

Quelques modifications du code pour s'adapter au tableau :

Private Sub UserForm_Initialize()
Dim i As Integer, k As Integer
With Sheets("Avril")
For i = 3 To 6 Step 3 ' Boucle sur les lignes
For k = 1 To 31 ' Boucle sur les colonnes
Me.Controls("Textbox" & k + ((i - 3) / 3 * 100)).BackColor = .Cells(i, (k * 3) - 1).Interior.Color
Next k
Next i
End With
End Sub




Cordialement

Bernard

Merci de ton aide, mais ça ne fonctionne pas :(
Il y a un message d'erreur : erreur d'execution, objet specifie introuvable

Si quelqu'un à une idée.
Merci d'avance
 

myDearFriend!

XLDnaute Barbatruc
Re : Colorer textbox en fonction d'un planning

Bonjour,

J'espère me tromper, mais je crois que tu exagères un peu yves03... faudrait peut-être que tu y mettes un peu du tien aussi...

Le code que te fournit Bernard est tout à fait fonctionnel et il marche très bien.
Si tu avais, ne serait-ce qu'un peu analysé le travail qu'il t'a posté hier, au moins pour essayer d'en comprendre le fonctionnement, tu aurais remarqué qu'il avait renommé les TextBox pour en faciliter l'exploitation par le code.

Il te suffit donc de reprendre TA feuille planning et SON userform ainsi que son code pour que le tout fonctionne correctement.

L'objectif du partage ici c'est de permettre aux autres de progresser... Si tu n'attaches pas plus d'intérêt à la solution que te fournit ton interlocuteur, tu n'es plus dans une démarche d'apprentissage, mais plutôt dans un système de commande d'application "clé en main"... Pour rappel, ce n'est pas l'objet de ce forum...

Cordialement,

Edition :
Cela dit, j'espère ne pas te froisser en te disant tout ça, ce n'est pas l'objectif. Tu es bien évidemment le bienvenu, mais il faut savoir remonter ses manches et s'investir au moins autant que les bénévoles le font ici...
 
Dernière édition:

yves03

XLDnaute Occasionnel
Re : Colorer textbox en fonction d'un planning

Je suis désolé.
J'ai regardé le code et j'ai essayé de comprendre un peu le fonctionnement( ce qui n'est pas toutjours facile pour moi )
Mais je l'avoue je n'avais pas vu que les textbox avaient été modifié.
Je m'excuse encore.
Merci pour tout
A+
 

CBernardT

XLDnaute Barbatruc
Re : Colorer textbox en fonction d'un planning

Bonsoir à tous,

On s'éloigne quelques heures, l'esprit satisfait, et voila que tout part en vrille :confused:

Effectivement, le code sans quelques explications était difficile à comprendre, surtout que l'userform avait été largement modifié au niveau des noms des TextBox afin d'en faciliter le traitement avec une boucle For Next.:rolleyes:

Mais je vois que dans ce forum il y a toujours un " Vieux de la vieille" qui est là pour mettre de l'ordre. Merci myDearFriend de ton aide et d'avoir mis les choses au clair.;)

Cordialement

Bernard
 

Discussions similaires

Statistiques des forums

Discussions
312 104
Messages
2 085 335
Membres
102 865
dernier inscrit
FreyaSalander