Faire une copie automatique de la couleur d'une cellule

Bonjour à tous,

je suis en train de galérer pour trouver une formule ou une mise en forme conditionnelle me permettant de copier juste la couleur d'une cellule (déja sous forme conditionnelle) dans une autre cellule.

Pour illustrer par un exemple :

Je souhaite que la cellule A1 reconnaisse la couleur de la cellule B1 et que la cellule A1 prenne cette même couleur automatiquement.

La difficulté, c'est que je veux seulement copier le format et non le contenu. j'ai essayé un collage spécial mais quand on clique sur format, l'option coller avec liaison disparait.

merci pour votre aide.

Bonjour,

essaie avec ce code :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Macro Dan pour canic le 22/12/09
If Not Intersect(Target, Columns("B:B")) Is Nothing Then
Target.Offset(0, -1).Interior.ColorIndex = Target.Interior.ColorIndex
End If
End Sub

Pour le placer en VBA :

  • Clique droite sur l'onglet de la feuille concernée
  • Choisis "visualiser le code"
  • Place le code ci-avant dans la fenêtre à droite
  • enregistre ton fichier

Quand tu mettras une couleur en colonne B, elle sera mise en colonne A dans la cellule adjacente.

Amicalement

Dan

à la lecture de ton message, je vois que je n'ai pas donné assez d'infos.

En fait la cellule à modifier n'est pas forcément adajacente à la cellule à copier.

je joins le tableau pour plus d'infos.

en fait je souhaite dans les cellules ou il y a des croix (colonne C à O) copier la couleur de la cellule sur la même ligne de la colonne R.

PS je ne suis pas un pro de VBA et avec le manips effectuées je n'arrive pas au résultat attendu. je dois oublier de faire quelque chose.

merci

Re,

Merci de ton fichier.

Remplace le code que je t'ai donné avant par celui c-après :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Macro Dan pour canic le 22/12/09
If Not Intersect(Target, Range("C4:O" & Range("A65536").End(xlUp).Row)) Is Nothing Then
If UCase(Target) = "X" Then
Target.Interior.ColorIndex = Cells(Target.Row, 18).Interior.ColorIndex
End If
End If
End Sub

Pour la placer, idem mes explications dans mon post précédent.

Amicalement

Dan

salut Dan,

c'est bon ça marche

merci beaucoup.

-- 04 Jan 2010, 10:14 --

DAN,

j'ai crié victoire trop vite.

Je t'avais passé une extraction du fichier car sa taille dépassait la taille maxi autorisée. Quand je colle le code sur le vrai fichier ca ne marche pas. j'ai essayé de changer quelques valeurs mais c'est pareil. je te passe donc le fichier original aprés avoir réduit sa taille maxi.

Autre point à considérer stp. la couleur de la cellule "réalisé 2010 peut changer en fonction de l'évolution des résultats de l'année (cellule avec mise en forme conditionnelle). Or je vois que si je change sa couleur ("réalisé 2010") la cellule de destination avec le "x" reste dans la couleur précédente. est ce paramétrable?

merci à nouveau pour ton aide.

Re,

Ton fichier est au format XLSX (2007). Merci de le mettre au format 2003 *.XLS.

Amicalement

Dan

Dan

j'ai enregistré sous excel 2003. j'espère que c'est le bon format...

re,

Non ce n'est pas bon. Pourtant dans un post précédent tu as bien au format *.XLS.

A te relire

Dan

screen

Dan,

c'est étrange, mais quand j'ouvre le zip, je le vois bien en .xls.

j'essaie à nouveau.

Si ca ne marche pas puis je t'envoyer un scan ?

A+

Re,

Normal que cela ne fonctionne pas, ton fichier ne correspond pas au premier que tu as donné.

Remplace le code comme suit :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Macro Dan pour canic le 22/12/09
If Not Intersect(Target, Range("U5:AG" & Range("T65536").End(xlUp).Row)) Is Nothing Then
Select Case UCase(Target)
Case Is = "X"
Target.Interior.ColorIndex = Cells(Target.Row, 36).Interior.ColorIndex
Case Is = ""
Target.Interior.ColorIndex = -4142
End Select
End If
End Sub

J'ai aussi modifié une partie du code pour que si tu enlèves le X, la couleur redevienne blanche.

...Or je vois que si je change sa couleur ("réalisé 2010") la cellule de destination avec le "x" reste dans la couleur précédente. est ce paramétrable?

Tout est possible mais c'est moins évident à faire car il faut revoir sur la même ligne toutes les cellules incluant un X. Je vais essayer de voir cela mais confirme que le code fonctionne correctement.

A te relire

Dan

Edit Dan : Pour le changement de couleur dans "réalisé 2010", place le code ci-dessous juste après le précédent

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Macro Dan pour Canic le 06/01/2010
If Not Intersect(Target, Range("AJ5:AJ" & Range("T65536").End(xlUp).Row)) Is Nothing Then
If IsEmpty(Target) Then Exit Sub
With target
For Each cel In Range("U" & .Row & ":AG" & .Row)
If UCase(cel) = "X" Then cel.Interior.ColorIndex = .Interior.ColorIndex
Next
End with
End If
End Sub

Une fois la couleur changée, clique dans une cellule à coté puis reclique dans la cellule modifiée pour adapter les couleurs.

Amicalement

Dan

Salut dan et merci pour ton aide,

j'ai essayé les macros et c'est ok.

Par contre comme de multiples utilisateurs vont utiliser ce fichier, je ne peux pas leur demander de réaliser l'opération de recliquage pour faire varier la couleur de la cellule avec la croix quand la cellule "réalisé 2010 change de couleur".

je ne sais pas si tu as une autre idée??

Ne vois tu pas une soulution avec une formule dans la cellule ou il y a la croix qui dirait "copie de la couleur" (uniquement) de la cellule "réalisé 2010".

A te lire

Bonne soirée

re,

Ne vois tu pas une soulution avec une formule dans la cellule ou il y a la croix

Oui mais si tu mets un X dans la cellule, tu n'auras plus de formule... Donc cela n'est pas possible.

A première vue, une autre solution autre serait le clique droite dans la cellule de la colonne "Réalisé" ou un bouton, mais pas sûr que cela te convienne.

S'il te faut changer les couleurs dans les cellules contenant un X dès que l'on change la couleur dans la colonne Réalisé, c'est moins évident car l'événement du changement de couleur ne permet pas d'exécuter une macro.

Cela reste à vérifier mais on pourrait essayer de récupérer le code couleur dans une cellule et utiliser un événement "change" mais ton fichier deviendrait un peu une "usine à gaz".

Amicalement

Dan

salut dan,

Dans ce cas, laisse tomber, je vais modifier le fichier en conséquence.

Merci pour ton aide

re,

Ok. Oublie pas de mettre le fil comme résolu en cliquant sur le petit V de couleur verte se trouvant à coté du bouton Editer.

si pb, explication ici --> https://forum.excel-pratique.com/excel/explications-et-regles-a-respecter-t13.html

Merci de ta participation

Amicalement

Dan

Bonjour,

j'ai un peu le meme soucis sauf que je voudrais copier la couleur de la cellule d'un fichier à un autre! (sans texte dans la cellule de départ et d'arrivée)

je ne sais pas si c'est possible, j'ai essayé de trafiquer le code VBA mais ce n'est pas mon domaine de prédilection!

merci pour votre retour!

Rechercher des sujets similaires à "copie automatique couleur"