Mise en forme condi

Résolu/Fermé
wallyfm02 Messages postés 55 Date d'inscription mardi 30 novembre 2010 Statut Membre Dernière intervention 17 septembre 2013 - 5 juil. 2011 à 09:01
wallyfm02 Messages postés 55 Date d'inscription mardi 30 novembre 2010 Statut Membre Dernière intervention 17 septembre 2013 - 13 juil. 2011 à 11:11
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

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
5 juil. 2011 à 10:17
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
wallyfm02 Messages postés 55 Date d'inscription mardi 30 novembre 2010 Statut Membre Dernière intervention 17 septembre 2013 1
5 juil. 2011 à 10:44
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
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
Modifié par gbinforme le 5/07/2011 à 21:18
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
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
Modifié par Vaucluse le 5/07/2011 à 21:03
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
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
5 juil. 2011 à 21:30
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
wallyfm02 Messages postés 55 Date d'inscription mardi 30 novembre 2010 Statut Membre Dernière intervention 17 septembre 2013 1
6 juil. 2011 à 10:33
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
wallyfm02 Messages postés 55 Date d'inscription mardi 30 novembre 2010 Statut Membre Dernière intervention 17 septembre 2013 1
6 juil. 2011 à 14:48
Salut Gbinforme,

Je viens de poster une autre question. Peux tu y jeter un oeil si tu as le temps, s'il te plaît?

Merci d'avance.

https://forums.commentcamarche.net/forum/affich-22561252-organiser-un-userform
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
7 juil. 2011 à 07:18
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