Salut patacrac,
Voici quelques éléments qui t'aideront à comprendre le code:
Private Sub Worksheet_Change(ByVal Target As Range) 'dit que dans la feuille detravail, pour chaque changement....
Dim Cell As Range 'considérant la variable "cell" comme des "range"
With Selection 'avec la séléction mais on pourrait aussi mettre "activecell" par exemple
On Error GoTo Error 's'il y a une erreur, aller à "Error" (voir plus bas), l'erreur se produit si tu selectionnes une plage et que tu supprime par exemple
If Selection.Value = Sheets("feuil3").Range("a2") Then Selection.Interior.ColorIndex = Sheets("feuil3").Range("a2").Interior.ColorIndex
'si la valeur de ta selection (donc la cellule active) = la valeur de la cellule A2 de feuil3, (donc ici "Agde Calces") alors cette cellule doit prendre la couleur de la cellule A2 de la feuil3, ici, l'éspèce de marron^^
'REMARQUES QUE LES VALEUR DES CELLULES OU LEUR COULEUR N'EST PAS DEFINI PAR LE CODE, AINSI, IL FONCTIONNE MÊME SI TU CHANGES LES LIEUX OU LES COULEURS DE TA SOURCE
'etc...
If Selection.Value = "" Then Selection.Interior.ColorIndex = 2 'si la valeur de ta selection (donc la cellule active) = RIEN alors cette cellule doit prendre la couleur BLANC
End With 'Fin du traitement avec la selection
Error: 'gestion de l'erreur
On Error GoTo 0 'si il y une erreur, l'ignorer
End Sub
Je remet aussi ton fichier avec un bouton de mise à jour des couleurs sur la feuil3, ça peut être utile
Sinon, j'aurais aussi une question par rapport à cette méthode, (et je m'adresse aux master ) :
Serait-il possible de mettre un code dans this workbook par exemple, qui dirait un truc du genre:
Dim Ws as workbook
Dim Cell as Range
Dim source as RowSource
For each cell in Ws
If cell.value = "any" source.value then cell.color = "any" source.color
????
Merci de vos réponses, à vous lire