EXCEL - VBA - modifier le couelur du'une cellule avec condition

airsage

XLDnaute Junior
Bonjour,

Je cherche à faire la modification de la couleur d'une cellule à partir de cette formule :

Sheets("UNIX_SERVER").Select
Set f = Sheets("Server_Application")
Set mondico = CreateObject("Scripting.Dictionary")
a = f.Range("a2:i" & f.[a65000].End(xlUp).Row)
For i = LBound(a) To UBound(a)
mondico(a(i, 9)) = a(i, 3)
Next i
Set f = Sheets("UNIX_SERVER")
For Each c In f.Range("G5:G" & f.[G65000].End(xlUp).Row)
If mondico.exists(c.Interior.Color) Then c.Offset(, -3).Value = mondico(c.Interior.Color)
Next c

Je ne veux pas copier le texte dans la cellule d'arrivée, mais uniquement la couleur de remplissage, tout en ne supprimant pas le texte de la cellule d'arrivée.

apparemment Interior.Color ne fonctionne pas.


merci par avance si quelqu'un peut m'aider.
 

Pièces jointes

  • couleur remplissage.xlsm
    30.5 KB · Affichages: 61
  • couleur remplissage.xlsm
    30.5 KB · Affichages: 84
Dernière édition:

john

XLDnaute Impliqué
Re : EXCEL - VBA - modifier le couelur du'une cellule avec condition

Bonjour,

Il faudrai peut-être donner un exemple de ce qui se trouve dans ton fichier, car je viens de tester ton code, et celui-ci ne passe même pas dans la condition "If mondico.exists(c.Interior.Color) Then" vu que le fichier que j'ai fais est vide...

BàT

John
 

airsage

XLDnaute Junior
Re : EXCEL - VBA - modifier le couelur du'une cellule avec condition

Bonjour,

Rien ne se passe avec "If mondico.exists(c.Interior.Color) Then c.Offset(, -3).Interior.Color = mondico(c.Interior.Color) "
Je n'ai pas de message d'erreur non plus. La macro s'execute mais je n'ai pas la couleur qui apparait..

Merci pour votre aide.
 

john

XLDnaute Impliqué
Re : EXCEL - VBA - modifier le couelur du'une cellule avec condition

Bonjour,

Peux-tu donner la condition (en français et pas en formule) et peut-être un exemple pour que la cellule change de couleur (et quelle couleur) ? je pense que ce sera plus facile pour tout le monde de trouver une solution à ton problème.

BàT.

John
 

airsage

XLDnaute Junior
Re : EXCEL - VBA - modifier le couelur du'une cellule avec condition

Bonjour,

La condition est que si les "server" de la feuille "UNIX_SERVER" (colonne G) apparaissent dans la feuille "Server_Application" (colonne I), alors prendre uniquement la couleur de la feuille "Server_Application" colonne C, (sans le texte) et l'appliquer dans la feuille "UNIX_SERVER" colonne D sans modifier le texte).
 

Dranreb

XLDnaute Barbatruc
Re : EXCEL - VBA - modifier le couelur du'une cellule avec condition

Bonjour.
Bon alors ce sont les couleurs qu'il faut noter dans le Dictionary pas les Values
VB:
Option Explicit

Sub Test()
Dim Plg As Range, Col9() As Variant, MonDico As Scripting.Dictionary, L As Long, C As Range
Set Plg = Feuil1.Range("A2:I" & Feuil1.[C65536].End(xlUp).Row)
Col9 = Plg.Columns(9).Value
Set MonDico = New Scripting.Dictionary
For L = 1 To Plg.Rows.Count
   MonDico(Col9(L, 1)) = Plg(L, 3).Interior.Color
   Next L
For Each C In Feuil2.Range("G5:G" & Feuil2.[G65000].End(xlUp).Row)
   If MonDico.Exists(C.Value) Then C.Offset(, -3).Interior.Color = MonDico(C.Value)
   Next C
End Sub
Attention: ajoutez la référence "Microsoft Scripting Runtime". Je déteste le CréateObject.
 

Discussions similaires

Réponses
12
Affichages
288
Réponses
1
Affichages
195
  • Question
Microsoft 365 TEXTBOX
Réponses
7
Affichages
377

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 979
dernier inscrit
bderradji