Colorer à partir de la 3è fois

Bonjour,

J'ai un tableau avec une macro couleurs. (hors couleur rouge)

J'y applique une MFC par colonne qui colore en rouge si il y a des doublons.

Seulement pour certaines valeurs je veux que ça ne s'applique qu'à partir de la 3è apparition dans la colonne...comment faire?

De plus pour d'autres valeurs différentes j'ai besoin qu'elles se colore comme les doublons.

Le tableau joint permettra de bien comprendre ma demande.

Merci de votre aide

vvdd

Bonsoir à tous,

Pas si simple ton affaire,

ici j'ai supprimé les MFC

Je n'ai pas regardé le dernier point !

vois déjà comme çà

Amicalement

Claude

15wdd-triplons.zip (18.10 Ko)

Bonsoir vvdd , Claude ,

Une autre solution ,avec des MFC,si j'ai bien compris ce que tu voulais.

Amicalement

14pour-vvdd.zip (9.40 Ko)

Bonsoir haonv,

à mon avis c'est pas çà, se fût trop facile !

les conditions 1ères ne sont plus remplies (avec un seul doublon)

édit:

avec le 2ème point (si "VB" et "BAD" dans même colonne)

à tester nouveau fichier

Claude

30wdd-triplons2.zip (21.84 Ko)

Merci beaucoup devos réponses...pas beaucoup de temps aujourd'hui mais je fais un essai bientôt et vous dit ce qu'il en est.

vvdd

Bonjour forum ,Claude,

Claude :

J'ai voulu faire simple ,trop simple apparemment.

C'est en analysant ta solution que j'ai vraiment compris la demande .

Amicalement

Bonjour Claude et Haonv,

Merci à tous les deux même c'est ce que Claude a créer qui fonctionne très bien.

Il y a juste que je ne sais pas quelle est la démarche pour appliquer ça à mon fichier...celui que je propose dans le forum n'en est qu'une petite partie.

Est-ce que je dois bien faire un clique droit sur feuil1 de mon fichier puis "copier/coller" le code de Claude, puis fermer et retourner dans fichier...?

vvdd

Bonsoir,

Il y a des adaptations à faire

1) redéfinir le nom "Tablo" suivant la plage du tableau réel

2) ne pas oublier de mettre dans le VBE de la feuille

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("Tablo")) Is Nothing Then
        Call Couleur
    End If
End Sub

------ dans la macro ------

au début

For A = 1 To 12 'à régler la dernière ligne du tableau
    J = Application.CountIf(Range(Cells(1, Cl), Cells(12, Cl)), Cells(A, Cl))

régler le "1" et le "12" correspondant aux lignes du Tablo (1ère et dernière)

pareil à la fin de macro

    If Cpt > 0 And Cpt2 > 0 Then
        x = WorksheetFunction.Match("VB", Range(Cells(1, Cl), Cells(12, Cl)), 0)
        y = WorksheetFunction.Match("BAD", Range(Cells(1, Cl), Cells(12, Cl)), 0)

Recopier aussi la feuille "Listes"

et redéfinir le nom "Code"

et enfin, mettre les listes de validation dans le tableau.

La prochaine fois, tu enverras la structure réelle !

Amicalement

Claude

Merci Claude, mais c'est un peu difficile pour moi.

Ci-joint la structure réelle; il s'agit d'un planning par jour/heure etc.

Ce qui m'interesse reste ce que j'ai demandé auparavent mais en ditinguant certaines cellules dans chaque colonne (ex: de D3 à D14 puis celui de D15 à D26, etc...)

Ce que j'ai besoin:

1- colorier les case selon le code déjà établi pour tout le tableau

2- par colonne, la case se colore en rouge si doublons sauf les exceptions suivantes:

  • pour "CDD" et "NATt" => à partir du 3è.
  • pour "VB" et "BAD" et "HAU" se colorent en rouge si dans la même colonne

Est-ce encore possible ainsi?

Merci de ton aide

vvdd

21planning.zip (11.56 Ko)

Bonsoir,

Tu peux déjà préparer le tableau avec les Listes/Validation

comme j'avais fait sur le fichier précédent.

cela évite les erreurs de saisie

à te relire

Claude

Ok, mais je suis déjà "bloqué" sur la façon de faire la liste: faut-il que je selectionne la 1ère cellule du tableau, la colonne, le tableau..., Après c'est bien "Format", "Validation", Liste"???

La liste que tu as validé sur l'ancien fichier est bonne, il n'y a rien de + ou de correction à faire; on peut reprendre celle la.

vvdd

re,

Sur ton fichier, tu copie la feuille "Listes" de l'ancien fichier, avec clic droit sur l'onglet

Déplacer ou Copier

cocher: Créer une copie

et en haut sélectionne ton nouveau fichier

tu vas donc récupérer la formule et le nom/défini "Code"

si tu as un message, tu répond oui

ensuite dans le tableau, tu sélectionne les cellules(sauf les grisées),

Données/Validation

Autoriser: Liste

Source = Code

Je regarde pour le reste, çà complique un peu mais on devrait y arriver !

On est bien d'accord qu'on ne regarde les doublons que par jour (c'est à dire 5 pavés par colonnes) ?

confirme quand même

Claude

-- Mar Oct 05, 2010 12:10 am --

edit

N'oublie pas de supprimer toutes les MFC, j'ai eu des problèmes avec

Bonsoir Claude,

Désolé de mes réponses tardives mais je suis bien pris en ce moment...

Ci-joint le fichier avec les démarches que tu m'as demandé de faire.

C'est bien ça : on ne regarde les doublons que par jour => 5 pavés par colonnes...(pour préciser:pour la 1ère colonne: d'abord de D3 à D14 puis D15 à D26 puis D27 à D38, etc...Pour la 2ècolonne: de E3 à E14, puis E15 à E26 et ainsi de suite...)

A bientôt

vvdd

10planning-1.zip (12.82 Ko)

Bonsoir à tous,

Tu n'as pas supprimer les MFC !

comme j'avais avancer, je n'ai pas utilisé ton fichier

voici le mien

Faudra pas trop s'amuser à ajouter des exceptions !

Amicalement

Claude

Merci Claude,

ça m'a l'air de fonctionner à merveille,c'est magnifique!

(désolé pour les MFC, je n'avais pas vu car pas descendu le message jusqu'en bas...)

J'aurai peut-être encore quelques questions pour bien comprendre ton code (un peu du "chinois" pour moi parfois)

Merci encore en tous cas!

vvdd

Si ok, merci de solder le poste, c'est ici

a resolu2

Bonjour Claude,

Je reviens vers toi pour encore une petite aide sur ce que tu m'as créee: ça fonctionne très bien avec ce que tu m'as donné mais quand je veux importer ton code dans mon fichier, mes cases ne se colorent plus et j'ai le message suivant:

"erreur de compilation": les 2 phrases suivantes sont mises en évidence...

Option Explicit

'Macros par Claude Dubois pour "vvdd" Excel-Pratique le 05/10/10

Private Sub Worksheet_Change(ByVal Target As Range)Dim Plg As Range, Plg2 As Range

Set Plg = Union(Range("d3:g62"), Range("i3:L62"), Range("n3:q62"), Range("s3:v62"), _

Range("y3:ab26"), Range("ad3:ag26"), Range("ai3:aL26"), Range("an3:aq26"))

Set Plg2 = Union(Range("y39:ab62"), Range("ad39:ag62"), Range("ai39:aL62"), Range("an39:aq62"))

If Not Application.Intersect(Target, Union(Plg, Plg2)) Is Nothing Then

Call CouleurCode End If

End Sub

J'ai fait comme précédemment: importer la liste...puis "copier/coller" de ton code dans le VBA de mon fichier...

Ai-je oublié quelquechose ?

Merci encore de ton aide

vvdd

tu n'as pas oublier de copier la macro "CouleurCode" dans un module ?

Claude

Re,

Décidément j'y arrive pas...j'ai bien importé le code couleur mais il ne s'exécute pas...je vais repartir de zéro= de mon fichier vièrge de macro, peux-tu me dire ensuite pas à pas ce que je dois faire pour importer et faire fonctionner le tout?

Merci

vvdd

re,

Ce code est à placer dans le VBE de la feuille et non dans un module

des fois que ... ?

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Plg As Range, Plg2 As Range
    Set Plg = Union(Range("d3:g62"), Range("i3:L62"), Range("n3:q62"), Range("s3:v62"), _
    Range("y3:ab26"), Range("ad3:ag26"), Range("ai3:aL26"), Range("an3:aq26"))

    Set Plg2 = Union(Range("y39:ab62"), Range("ad39:ag62"), Range("ai39:aL62"), Range("an39:aq62"))

    If Not Application.Intersect(Target, Union(Plg, Plg2)) Is Nothing Then
        Call CouleurCode
    End If
End Sub

sinon envoie ton fichier réel

Claude

Rechercher des sujets similaires à "colorer partir fois"