Formatage conditionnel

ElodieC

XLDnaute Nouveau
Bonjour à tous,

Comment faire pour qu'un tableau en Feuil1 se formate automatiquement (code couleur) en fonction du contenu d'un tableau en Feuil2 ?

Exemple avec le fichier ici (67Ko) : Free - Envoyez vos documents
Si en Feuil2!C8 on a Jean dont le code couleur est bleu, comment faire pour que Feuil1!G2 soit automatiquement formaté en bleu (et pareil pour le reste du tableau) ?

Je crois savoir que le formatage conditionnel ne peut pas se faire à partir de données d'une autre feuille donc je peux éventuellement lier le tableau en Feuil2 avec une copie sur la Feuil1 en caché mais ça me semble laborieux.
Est-ce que vous auriez une autre solution plus simple (sans VBA ou macro si possible...)

En vous remerciant par avance, EC.
 

job75

XLDnaute Barbatruc
Re : Formatage conditionnel

Bonjour ElodieC,

Pour le Groupe 01 :

- selectionner la cellule B2 et définir (menu Insertion-Nom) le nom Nom1 par

=RECHERCHEV(B$2;Feuil2!$B$3:$D$28;3;0)

- sélectionner la plage B2:AA2 et définir la MFC comme je l'ai fait.

Je vous laisse continuer avec les autres groupes (=> Nom2, Nom3, Nom4).

Fichier joint.

A+
 

Pièces jointes

  • ElodieC(1).zip
    14 KB · Affichages: 49
C

Compte Supprimé 979

Guest
Re : Formatage conditionnel

Bonsoir ElodieC, salut Job75

Ou alors par code VBA à mettre dans un module
Code:
Sub MiseEnForme()
  Dim DerLig As Long, Lig As Long
  Dim CGrp As Integer, LGrp As Long, NumGrp As String
  Dim Nom As String, TabNom As Range
  Dim IndCoul As Integer
  Dim Sht2 As Worksheet
  ' Définir les variables objet
  Set Sht2 = Sheets("Feuil2")
  ' Dernière ligne du tableau
  DerLig = Sht2.Range("B" & Rows.Count).End(xlUp).Row
  CGrp = 2  ' Numéro de la colonne du 1er groupe, de la première ligne
  LGrp = 2  ' Numéro de la ligne du 1er groupe dans Feuil1
  ' Définir le tableau de recherche des noms
  Set TabNom = Sht2.Range("I1:K4")
  ' Pour chaque ligne de la feuille 2
  For Lig = 3 To DerLig
    ' Récupérer le nom d'équipe de la ligne
    Nom = Sht2.Range("E" & Lig).Value
    ' Si le nom n'est pas vide
    If Nom <> "" Then
      ' Eviter les arrêts à cause d'erreur
      On Error Resume Next
      IndCoul = xlNone
      ' Trouver la couleur de fond pour le nom
      IndCoul = TabNom.Find(What:=Nom, LookAt:=xlWhole).Interior.ColorIndex
      On Error GoTo 0
      ' Mettre cette couleur sur la feuille 1
      Sheets("Feuil1").Cells(LGrp, CGrp).Interior.ColorIndex = IndCoul
    Else
      ' Vérifie si 1ère line d'un nouveau groupe
      NumGrp = Right(Sht2.Range("A" & Lig).Value, 1)
      If NumGrp <> "" Then
        CGrp = 2: LGrp = LGrp + 1
      End If
    End If
    ' Incrémente le numéro de la colonne
    CGrp = CGrp + 1
  Next Lig
End Sub

A+
 

job75

XLDnaute Barbatruc
Re : Formatage conditionnel

Re,

En fait comme les références sont caractéristiques d'un seul groupe, il suffit de définir un seul nom Nom :

=RECHERCHEV(B2;Feuil2!$B:$D;3;0)

et d'appliquer la MFC sur toute la plage B2:AA5.

Edit : salut Bruno, ah VBA quand tu nous tiens :)

A+
 

Pièces jointes

  • ElodieC(2).zip
    14 KB · Affichages: 40
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 757
Messages
2 091 773
Membres
105 069
dernier inscrit
nico63