Mise en forme conditionelle avec Macro

Isaiasnj Messages postés 58 Statut Membre -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour au savants...,

J’aurais besoin de vos lumières sur un sujet que je ne maîtrise pas bien…

Pour adapter le travail quotidien au mieux, je suis en trains de construire une Macro j’arrive à comprendre le « Enregistreur de macro » mais pour créer une mise en forme conditionnelle là je suis perdu/bloqué, en fait j’ai besoin de créer 3 type de forme conditionnelle …

1er pour statu « complété » le format doit y être : fond en Vert pastel, Police noir Gras
2ème pour « Manquante » le format doit y être : fond en Rouge pastel, Police Blanc Gras
3éme pour « Presque complété » le format doit y être : fond en Orange pastel, Police noir Gras

Au moins si les couleurs pastel ne sont pas trouvable le Vert, Rouge et Orange doivent exister …

Est-il possible d’avoir ça pour la colonne AM2 ?

Je vous remercie à tous pour votre aide.

Bien à vous
Beto

2 réponses

Résumé de la discussion

La demande porte sur la création d'une mise en forme conditionnelle via macro pour la colonne AM2, afin d'afficher trois statuts avec des fonds vert pastel, rouge pastel et orange pastel. Les réponses montrent qu'il faut activer la mise en forme au changement de contenu et adapter la référence de l'onglet et la cellule (AM2) dans le code. Certains échanges portent sur le nom d'onglet et la nécessité d'adapter le schéma du code, avec des exemples d'indices comme With Worksheets et des ajustements de feuilles. D'autres détails évoquent des limites potentielles, comme des espaces dans les données, et suggèrent d'exécuter la mise en forme automatiquement en réponse à des événements.

Bobot (l'IA à votre service)
  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Le changement de couleur doit se faire dés la validation de saisie ??
    0
    1. Isaiasnj Messages postés 58 Statut Membre
       
      Bonjour,

      Merci de votre réponse,

      les données sont déjà saisies, là il faut jsute donner la mise en forme...

      Merci de votre retour
      Cordialement
      Isa
      0
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Bonjour,

      Const Comp As String = "complété"                      'vert
      Const PComp As String = "Presque complété"      'orange
      Const Manq As String = "Manquante"                   'rouge
      
      Sub Color_MFC()
          Dim derlig As Long
          Dim Nb As Long
          Dim N As Long
          
          With Worksheets("feuil1")       'nom d'onglet a adapter
              derlig = .Range("AM" & Rows.Count).End(xlUp).Row        'derniere cellule non vide colonne AM
              Set Plage = .Range("AM2:AM" & derlig)       'mise en memoire plage de cellules
              Nb = Plage.Rows.Count       'nombre de cellules
              'boucle sur plage
              For N = 1 To Nb
                  With .Range("AM" & N + 1)
                      If Plage(N, 1) <> "" Then       'non vide
                          If Plage(N, 1) = Comp Then
                              'couleur Verte
                              With .Interior
                                  .Pattern = xlSolid
                                  .PatternColorIndex = xlAutomatic
                                  .Color = 5296274        'vert moyen
                              End With
                              .Font.Bold = True
                              .Font.Color = vbWhite
                          ElseIf Plage(N, 1) = PComp Then
                              'couleur orange
                              With .Interior
                                  .Pattern = xlSolid
                                  .PatternColorIndex = xlAutomatic
                                  .Color = 49407      'orange
                              End With
                              .Font.Bold = True
                              .Font.Color = vbWhite
                          ElseIf Plage(N, 1) = Manq Then
                              With .Interior
                                  .Pattern = xlSolid
                                  .PatternColorIndex = xlAutomatic
                                  .Color = 255        'rouge
                              End With
                              .Font.Bold = True
                              .Font.ColorIndex = xlAutomatic
                          Else
                              'raz couleurs
                              .Interior.Pattern = xlNone
                              .Font.Bold = False
                              .Font.ColorIndex = xlAutomatic
                          End If
                      Else
                          'raz couleurs
                          .Interior.Pattern = xlNone
                          .Font.Bold = False
                          .Font.ColorIndex = xlAutomatic
                      End If
                  End With
              Next N
          End With
      End Sub
      0
    3. Isaiasnj Messages postés 58 Statut Membre
       
      Bonjour,

      Merci de votre retour,

      Puisse je mettre ce code à la suite de ma macro?

      Merci à vous
      0
    4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      Peut pas vous dire, sait pas ce qu'il y a dans votre macro !!!!!
      0
    5. Isaiasnj Messages postés 58 Statut Membre
       
      mise ne page, formules, c'est une extractions des données...
      0
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    le code fourni est execute une fois dans votre macro de mise en forme , mais cela peut se faire automatiquement sur changement de texte
    Pour le couleurs AF, je regarde la chose.
    certains lignes il y'aura des espaces..:
    En plus des numeros ou ......??
    0
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      Ces numeros se mettent comment????
      0
    2. Isa
       
      Bonjour Merci de votre retour,

      le numéros sortent depuis une extraction, selon un degré d'information ceux ne changeront pas donc la macro peux se faire, en revanche il aura des cellules sans numéros là il faudra "sauter" pour mettre la mise en forme sur les cellules avec numéros il y a que pour le moment 0.1.2 et 3.....

      Merci à vous infiniment
      Isa
      0
    3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,
      Ok

      Un fichier exemple: https://mon-partage.fr/f/WJrAxmzY/
      0
    4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Bonjour,

      Si vous expliquez en detail vos importations de données, les codes peuvent être simplifiés
      0
    5. Isaiasnj Messages postés 58 Statut Membre
       
      Bonjour,
      C'est une importation a partir d'une base des donnés, on prends les 0.1.2.3 comme état de risque le 0 est le plus risqué que le 3 par exemple.
      donc par rapport les ligne les état changent mais une seul fois par semaine, mais parfois il y a des ligne donc il y a pas de état donc cellule vide.

      Voila j'espère que ça pourra vous aider.

      Je vous remercie pour votre aide dans ce problème
      Cdt
      ISa
      0