Mise en forme condi

[Résolu/Fermé]
Signaler
Messages postés
55
Date d'inscription
mardi 30 novembre 2010
Statut
Membre
Dernière intervention
17 septembre 2013
-
Messages postés
55
Date d'inscription
mardi 30 novembre 2010
Statut
Membre
Dernière intervention
17 septembre 2013
-
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

Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 531
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"""
Messages postés
55
Date d'inscription
mardi 30 novembre 2010
Statut
Membre
Dernière intervention
17 septembre 2013
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

???
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 531
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
Messages postés
55
Date d'inscription
mardi 30 novembre 2010
Statut
Membre
Dernière intervention
17 septembre 2013
1
Salut gbinforme,

Super la modif est nikel.
Merci beaucoup.

Concernant la macro de l'Ain, effectivement je n'arrivais pas à l'affecter.
Message me disant qu la macro ne devait figurer dans la classeur ( quelquechose comme ça)
J'ai renommé la macro sous vba et ça marche nikel.

J'aime bien comprendre ce que je fais. et un truc m'échappe.
Je n'arrive pas à décrypter dans le code comment il sait qu'on a cliquer sur tel département.
Peux tu m'expliquer?
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 531
Salut wallyfm02,

La macro qui trie, affecte ma MFC, et sélectionne le département est lancée avec le code département en paramètre :

Sub choix(dep)

Chaque département est associé par son rectangle à la macro qui lance les fonctionnalités uniques qui trouvent la colonne en fonction du code département :

Sub AIN01()
    Call choix(1)
End Sub


C'est bien effectivement de comprendre comment cela fonctionne.
Messages postés
55
Date d'inscription
mardi 30 novembre 2010
Statut
Membre
Dernière intervention
17 septembre 2013
1
Ok pour ça.
Mais en fait ce que je n'arrive pas à voir dans le code, c'est:

le département de l'Ain correspond à la colonne L, l'Aisne à la colonne M,...etc.

Je ne détecte pas la partie du code qui dit à la macro que 1=L, 2=M.
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 531
C'est ici :
        On Error Resume Next 
        col = .Cells(1, Application.WorksheetFunction.Match(dep, .Rows(1), 0)).Address 
        If Err.Number <> 0 Then _ 
            col = .Cells(1, Application.WorksheetFunction.Match(Format(dep, "00"), .Rows(1), 0)).Address 
        On Error GoTo 0 

avec le département on recherche sur la première ligne sa valeur et on obtient l'adresse colonne mais comme tes cellules n'ont pas toutes la même structure (texte numérique) la fonction est lancée une 2ème fois si nécessaire avec un paramétrage différent.

        selcol = Mid(col, 2, InStr(2, col, "$") - 2)

puis l'on récupère la colonne dans l'adresse.
Messages postés
55
Date d'inscription
mardi 30 novembre 2010
Statut
Membre
Dernière intervention
17 septembre 2013
1
ok.
Merci c'est plus clair maintenant.
Merci encore pour ton aide.
A bientôt!