Mise en forme conditionelle en fonction du remplissage de cellule

TRANKILL

XLDnaute Nouveau
Bonjour à tous,
Je bidouille de temps à autre sur excel mais la je ne m'en sors pas; le sujet concerne un planning:
Je cherche à remplir des cellules (couleur A,B,C ou D) en fonction de la couleur d'autres cellules (couleur A,B,C ou D)

Je n'y connait rien en macro et VBA, mais je pense qu'il va quand même falloir passer par la....

Dans l'exemple,les lignes 8 à 11 et 13 à 16 sont colorés manuellement dans la première partie du tableau.
Le résultat souhaité se trouve dans la partie inférieure, les lignes 22 et 27 se remplissent automatiquement.(et quand deux couleurs se chevauchent le remplissage est rouge)

Je sais que le sujet n'est pas simple, je remercie d'avance ceux qui pourront me mettre sur la piste.
A bientôt sur le forum.
 

Pièces jointes

  • P.xlsx
    14.8 KB · Affichages: 42
  • P.xlsx
    14.8 KB · Affichages: 41

job75

XLDnaute Barbatruc
Re : Mise en forme conditionelle en fonction du remplissage de cellule

Bonjour TRANKILL, bienvenue sur XLD,

Il n'est pas logique d'avoir mis une couleur rouge en lignes 11 et 16, j'ai corrigé dans le fichier joint.

Allez dans VBA (Alt+F11) et voyez cette macro dans Module1 :

Code:
Sub CopierCouleurs()
Dim P As Range, ncol%, i&, j&, k%, x%
Set P = ActiveSheet.UsedRange
ncol = P.Columns.Count
Application.ScreenUpdating = False
For i = 7 To P.Rows.Count
  If P(i, 1) <> "" Then
    P.Rows(i).Interior.ColorIndex = xlNone
    j = i + 1
    While P(j, 2) <> ""
      For k = 3 To ncol
        x = P(j, k).Interior.ColorIndex
        If x <> xlNone Then P(i, k).Interior.ColorIndex _
          = IIf(P(i, k).Interior.ColorIndex = xlNone, x, 3)
      Next k
      j = j + 1
    Wend
    i = j - 1
  End If
Next i
End Sub
Alt+F8 pour exécuter la macro ou cliquez sur le bouton.

A+
 

Pièces jointes

  • P(1).xlsm
    24.4 KB · Affichages: 33

job75

XLDnaute Barbatruc
Re : Mise en forme conditionelle en fonction du remplissage de cellule

Bonjour TRANKILL,

Une autre solution si l'on veut uniquement copier les couleurs des cellules A1:A4 :

Code:
Sub CopierCouleurs()
Dim P As Range, ncol%, i&, j&, k%, x As Variant
Set P = ActiveSheet.UsedRange
ncol = P.Columns.Count
Application.ScreenUpdating = False
For i = 7 To P.Rows.Count
  If P(i, 1) <> "" Then
    P.Rows(i).Interior.ColorIndex = xlNone
    j = i + 1
    While P(j, 2) <> ""
      x = Application.Match(P(j, 2), P.Columns(1), 0)
      If IsNumeric(x) Then
        x = P(x, 1).Interior.Color
        For k = 3 To ncol
          If P(j, k).Interior.ColorIndex <> xlNone Then
            'P(j, k).Interior.Color = x 'pour modifier la couleur
            With P(i, k).Interior
              .Color = IIf(.ColorIndex = xlNone, x, 255)
            End With
          End If
        Next k
      End If
      j = j + 1
    Wend
    i = j - 1
  End If
Next i
End Sub
Fichier (2).

Bonne journée.
 

Pièces jointes

  • P(2).xlsm
    25.1 KB · Affichages: 31

TRANKILL

XLDnaute Nouveau
Re : Mise en forme conditionelle en fonction du remplissage de cellule

Bonjour,
Tout d'abord un gros merci à vous Job75, car ça fonctionne au poil.
Par contre je dois avouer que je n'y comprend pas grand chose voir rien du tout...
Donc forcement quand j'ai essayer de l'intégrer au tableur final ça ne marche plus.
Les calculs doivent se faire sur les lignes 377 382 387 etc.. au lieu de 11 16 21 et doivent commencer à partir de la colonne J au lieu de C.

Pourriez vous m'indiquer ce qu'il faut modifier pour que le calcul se fasse sur la bonne zone.
Encore merci et à bientôt.
 
Dernière modification par un modérateur:

TRANKILL

XLDnaute Nouveau
Re : Mise en forme conditionelle en fonction du remplissage de cellule

Bonjour,
Ci-joint le fichier ou la macro mise à jour client ne marche pas.

Merci par avance,
 

Pièces jointes

  • Planning.xls
    47.5 KB · Affichages: 35
  • Planning.xls
    47.5 KB · Affichages: 39

job75

XLDnaute Barbatruc
Re : Mise en forme conditionelle en fonction du remplissage de cellule

Bonjour TRANKILL,

Votre nouveau fichier n'est tout simplement pas exploitable en l'état.

Donnez-lui la même structure que celui du post #1 (en ce qui concerne les colonnes A et B).

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 392
Messages
2 087 954
Membres
103 686
dernier inscrit
maykrem