Mise en forme condi

Résolu
wallyfm02 Messages postés 64 Statut Membre -  
wallyfm02 Messages postés 64 Statut Membre -
Bonjour,

je realise un fichier excel.
La feuille "base de données" est est amenée à être complétée. je veux dire par là que le nombre de ligne n'est pas figé.

Elle contient environ 110 colonnes.
Dans une autre feuille du classeur, j'ai une carte de france découpée par département.

Quand je clique sur un des département, la macro que jái enregistrée m'amène sur la feuille "base de données", tri les lignes de Z vers A sur la colonne correspondant à ce département. (Une colonne spécifique par département) (dans ces colonnes spécifiques, c'est soit "OUI" soit "NON").

Toutes les lignes ou dans la colonne spécifique correspondant au département sur lequel on a cliqué sont donc en tête de liste.
Afin de faire ressortir ces lignes, je souhaiterais les faire ressortir du reste ( Couleur police par exemple).
cette mise en forme doit s'appliquer à toute la feuille, le nombre de lignes est variant et le nombre de oui dans chaque colonne aussi.
(On peut ajouter ou supprimer des lignes si besoin )

Mais pour la formule de cette mise en forme condi, je peine un peu...

Quelquún pour m'aider?

3 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    Après ton choix de département, dans ta macro il te suffit d'affecter la MFC à ta feuille base si la colonne ($G par exemple) est égale à oui.
    Formula1:="=$G1=""oui"""
    0
  2. wallyfm02 Messages postés 64 Statut Membre 1
     
    Bonjour gbinforme,

    dans ma colonne (g pour reprendre ton exemple)
    je peux soit avoir des OUI ou des NON en foctions des lignes
    ce que je voudrais, c'est que toutes les lignes ou la cellule (G, ligne) est OUI, alors la ligne adopte la MFC.

    je n y arrive vraiment pas:

    dois je selectionner toute la page la colonne g entiere?
    Quel syntaxe la formule doit elle avoir?

    ce que j'ai fait:

    selectionner feuille entiere
    Mfc
    nouvelle regle
    utiliser formule
    ecrit formule: si($g1="OUI";vrai;faux)
    choisit le format et ok

    ca ne fonctionne pas

    ???
    0
  3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    En fait tu as créé une macro qui sélectionne un département puis avec un tri sur la colonne concernée tu obtiens les lignes du département concerné en haut de ta base : c'est bien cela ?

    Dans ce cas, je te suggère de rajouter dans ta macro la MFC car pour qu'elle soit efficace, il faut qu'elle soit en accord avec ton choix.

    Pour une MFC, si tu sélectionnes toutes les colonnes, ta MFC va s'appliquer à toute la ligne même si tu sélectionnes $G1 alors que si tu sélectionnes la colonne tu n'auras que cette colonne concernée.

    edit :

    Toujours avec la colonne G, je te met un code pour mettre un fond à toutes les lignes qui ont "oui" en colonne G :

        Dim selcol As String
        selcol = "G"
        Range(selcol & 1).Select
        With Sheets("base de données")
            .UsedRange.Cells.FormatConditions.Delete
            .UsedRange.FormatConditions.Add Type:=xlExpression, Formula1:="=$" & selcol & "1=""oui"""
            .UsedRange.FormatConditions(1).Interior.ColorIndex = 35
        End With
    


    Bien entendu tu peux utiliser la variable colonne de ta macro à la place de selcol que j'ai mise.

    Toujours zen
    0
    1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      Bonsoir tous (salut GB)
      si je peux me permettre:
      c'est la formule du message 2 qui est bizarre.
      La MFC étant déjà une condition, le SI est inutile et de surcroit n'est pas accepté,( je crois) dans les MFC à partir de 2007, du moins pas dans des formules directes.
      C'est donc bien simplement:
      sélectionner le champ
      écrire la formule:

      =$G1="oui"

      et formater

      $G1 pour formater toute la ligne 1 si G1 est oui
      G1 pour la cellule seule

      Crdlmnt
      0
    2. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      salut Vaucluse,

      Tu peux te permettre car tu as entièrement raison : ton explication est parfaite mis à part que ce n'est pas toute la ligne mais seulement les colonnes sélectionnées qui seront mises en forme avec $G1.

      Je n'ai pas relevé car je crois que dans le cas de wallyfm02 il ne faut pas qu'il utilise la fonction MFC du menu car sinon il faut qu'il la mette à jour à chaque choix de département ce qui n'est pas très performant comme méthode.
      0
    3. wallyfm02 Messages postés 64 Statut Membre 1
       
      Bonjour à vous deux,

      Gbinforme,

      Tu as tout à fait cerné mon besoin.
      je te remercie pour ton coup de pouce.

      Désolé, je me suis mal exprimé sur message 2. En fait,je voulais faire la MFC pour enregistrer macro et recopier code pour chaque département.
      Mais Gbinforme a résolu ce problème.


      Quand je clique sur un département, la macro doit faire un tri de z vers a sur la colonne du département en question (Tous les "OUI" de la colonne se retrouve en tête de liste) + mettre en couleur les lignes correspondantes à ces "oui".
      Cependant, quand je clique sur un autre département, ce sont potentiellement d'autres lignes qui peuvent être à distinguer.

      Pour cela, j'ai écrit le code suivant:

      ' je remets un fond blanc sur toute la feuille

      Sheets("File Partner").Select
      Cells.Select
      With Selection.Interior
      .Pattern = xlSolid
      .PatternColorIndex = xlAutomatic
      .ThemeColor = xlThemeColorDark1
      .TintAndShade = 0
      .PatternTintAndShade = 0
      End With

      ' le code de Gbinforme qui met la couleur dans les lignes ou oui se trouve en colonne BO

      Dim selcol As String
      selcol = "BO"
      Range(selcol & 1).Select
      With Sheets("File Partner")
      .UsedRange.Cells.FormatConditions.Delete
      .UsedRange.FormatConditions.Add Type:=xlExpression, Formula1:="=$" & selcol & "1=""oui"""
      .UsedRange.FormatConditions(1).Interior.ColorIndex = 35
      End With

      ' Tri de z vers a en colonne BO

      Sheets("File Partner").Select
      ActiveWindow.SmallScroll ToRight:=28
      Range("BO1").Select
      ActiveWorkbook.Worksheets("File Partner").AutoFilter.Sort.SortFields.Clear
      ActiveWorkbook.Worksheets("File Partner").AutoFilter.Sort.SortFields.Add Key _
      :=Range("BO1"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption _
      :=xlSortNormal
      With ActiveWorkbook.Worksheets("File Partner").AutoFilter.Sort
      .Header = xlYes
      .MatchCase = False
      .Orientation = xlTopToBottom
      .SortMethod = xlPinYin
      .Apply
      End With
      End Sub

      Cela fonctionne. Mais j'aurai bien gardé le quadrillage. Comment dois je faire?
      0
    4. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Salut wallyfm02,

      ' je remets un fond blanc sur toute la feuille

      Cela ne sert à rien car lorsque tu remets la nouvelle MFC, cela est fait par :
      .UsedRange.Cells.FormatConditions.Delete

      Tu as gardé mon
      selcol = "BO"
      mais ce n'est pas évolutif comme méthode : il faudrait utiliser ta sélection de département.
      Si tu pouvais nous mettre un exemple de classeur, sans données identifiables et privées, mais avec la structure de tes données et ta macro, sur http://www.cijoint.fr/ puis nous mettre le lien généré ici ce serait plus facile.
      0