Mettre à jour les Couleurs de Cellules d'apres cellules couleur

Résolu
jambontomate Messages postés 44 Statut Membre -  
jambontomate Messages postés 44 Statut Membre -
Bonjour à tous,

Besoin de votre aide:

feuille 1: création d'un planning. Cellule B2="S-1", C2 = "S-2", D2= "S-3" (S=semaine) etc
feuille 2: création des indicateurs. Colonne Semaine avec S-1, S-2, S-3 etc

Je souhaiterais que les couleurs (mise en forme) de mes cellules de la feuille 1 suivent pour les cellules de la feuille 2. (MFC ne fonctionne pas..j'ai simplement mis =B2 mais rien)

Je ne peux vous transmettre de fichier joint car parefeu entreprise bloque..dsl

Merci d'avance pour votre raisonnement et méthode afin de réussir cette manipulation.

Cordialement
Julien

11 réponses

  1. Benoit A. Messages postés 455 Date d'inscription   Statut Membre Dernière intervention   515
     
    Copie tout ton tableau et rends toi son ton 2e tableau et tu fais clique droit collage spécial / Mise en forme
    0
  2. jambontomate Messages postés 44 Statut Membre 1
     
    Je voudrais que ca se fasse automatiquement...car je vais changer pas mal de fois les couleurs...

    Merci
    0
  3. Mike-31 Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Bonjour,

    Regarde ce petit montage, Feuil2 colonne A tu saisis le mot qui conditionnera la mise en forme et tu colorises la cellule que tu souhaite associer à la valeur saisie exemple en A2 j'ai saisi S_1 et la couleur associée est le vert

    feuil1 dans la plage A2:F20 si tu saisis S_1 la cellule se colorise en vert

    attention si tu change la couleur critère en Feuil2 il faudra conditionner par un double clic chaque cellule de la plage Feuil1

    https://www.cjoint.com/?DDjnLJ4bdjf
    0
    1. jambontomate Messages postés 44 Statut Membre 1
       
      Ta macro me convient pas car comme tu l'as dit dans ton message il est obligé de double cliqué à chaque changement de couleurs. Mais c'est dans l'idée que je cherche. il y a ce détails à supprimer
      0
  4. jambontomate Messages postés 44 Statut Membre 1
     
    J'essaie avec ta macro et je te redis demain merci
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jambontomate Messages postés 44 Statut Membre 1
     
    Ta macro me convient pas car comme tu l'as dit dans ton message il est obligé de double cliqué à chaque changement de couleurs.. quelqu'il a mieux merci d'avance.
    0
  7. Mike-31 Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Rez,

    Remplace mon ancienne macro par celle ci

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect([A2:F20], Target) Is Nothing Then
    On Error Resume Next
    Dim Col As Range, C As Range
    For Each Col In Range("A1:F20").Columns
    For Each C In Col.Cells
    C.Interior.ColorIndex = [Couleurs].Find(C, LookAt:=xlWhole).Interior.ColorIndex
    C.Font.ColorIndex = [Couleurs].Find(C, LookAt:=xlWhole).Font.ColorIndex
    C.Font.Bold = [Couleurs].Find(C, LookAt:=xlWhole).Font.Bold 'Inclus le gras
    Next
    Next
    End If
    End Sub
    0
  8. jambontomate Messages postés 44 Statut Membre 1
     
    Bonjour,

    Comment je fais si ma base de données (cellule avec les couleurs) corresponds aux cellulles B2:BC2.

    Dans la meme feuille, les cellulles B19:BC19 doivent changer de couleur et dans une autre feuille ce sont les cellules A3:A56 ?

    Merci
    0
  9. Mike-31 Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    Si j'ai bien compris, pour la feuille dont les cellulesB19 à BC19 doivent changer de couleur
    colle ce code dans les propriétés de la feuille clic droit sur l'onglet de la feuille concernée/Visualiser le code)

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect([B19:BC19], Target) Is Nothing Then
    On Error Resume Next
    Dim Col As Range, C As Range
    For Each Col In Range("B19:BC19").Columns
    For Each C In Col.Cells
    C.Interior.ColorIndex = [Couleurs].Find(C, LookAt:=xlWhole).Interior.ColorIndex
    C.Font.ColorIndex = [Couleurs].Find(C, LookAt:=xlWhole).Font.ColorIndex
    C.Font.Bold = [Couleurs].Find(C, LookAt:=xlWhole).Font.Bold 'Inclus le gras
    Next
    Next
    End If
    End Sub

    faire la même démarche pour la deuxième feuille et coller ce code

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect([A3:A56], Target) Is Nothing Then
    On Error Resume Next
    Dim Col As Range, C As Range
    For Each Col In Range("A3:A56").Columns
    For Each C In Col.Cells
    C.Interior.ColorIndex = [Couleurs].Find(C, LookAt:=xlWhole).Interior.ColorIndex
    C.Font.ColorIndex = [Couleurs].Find(C, LookAt:=xlWhole).Font.ColorIndex
    C.Font.Bold = [Couleurs].Find(C, LookAt:=xlWhole).Font.Bold 'Inclus le gras
    Next
    Next
    End If
    End Sub

    par contre il faudra revoir le champ Couleurs dans le gestionnaire de Noms

    0
  10. jambontomate Messages postés 44 Statut Membre 1
     
    Cela fonctionne. Merci beaucoup je vais étudier ta macro pour apprendre petit à petit. Cependant, il faut toujours au moins cliquer dans la colonne pour que la macro se lance.

    En tout cas merdi de ton aide et temps.
    0
  11. Mike-31 Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    il est possible que la macro se lance dès qu'il y a un mouvement sur la feuille dans ce cas il faut supprimer dans chaque code la première ligne

    If Not Intersect([B19:BC19], Target) Is Nothing Then
    et le dernier
    End If

    et pour le deuxième code
    If Not Intersect([A3:A56], Target) Is Nothing Then
    et le dernier
    End If

    ce qui donne pour le premier code
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error Resume Next
    Dim Col As Range, C As Range
    For Each Col In Range("B19:BC19").Columns
    For Each C In Col.Cells
    C.Interior.ColorIndex = [Couleurs].Find(C, LookAt:=xlWhole).Interior.ColorIndex
    C.Font.ColorIndex = [Couleurs].Find(C, LookAt:=xlWhole).Font.ColorIndex
    C.Font.Bold = [Couleurs].Find(C, LookAt:=xlWhole).Font.Bold 'Inclus le gras
    Next
    Next
    End Sub

    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
  12. jambontomate Messages postés 44 Statut Membre 1
     
    Merci beaucoup. Bonne journée.
    0