[Excel-VBA] Format conditionnelle spécifique

Bonjour à tous ( Et bonne année )

J'ai une petite question, je vais essayé d’être clair.

Je sais faire un format conditionnelle simple par exemple : Si j’écris "23" dans une cellule alors remplissage de couleur rouge... .

La il prends en compte le nombre "23".

J'aimerais maintenant qu'il prenne juste en compte non pas tout le nombre "23", mais juste le chiffre "3".

Par exemple dans la colonne A, j’écris 13 la cellule ce remplis en rouge, et si j’écris 23 un peu plus bas il me le remplis aussi en rouge car 13 et 23 , ainsi de suite avec tout les nombres.

J’espère que je suis assez clair...

Merci

Bonne après-midi a tous

Bonsoir,

Une proposition à étudier avec une fonction personnalisée et une MFC.

Voir fichier.

Option Explicit
Public Function cpt_3(Cellule) As Boolean
Dim x As Long
    cpt_3 = False
    x = Len(Cellule) - Len(Application.Substitute(Cellule, "3", ""))
    If x > 0 Then cpt_3 = True
End Function
14mfc-micka67-v1.xlsm (49.09 Ko)

Merci beaucoup pour ta réponse

Pour ma part je préféré le faire par macro, plus simple car j'utilise le 2003 au boulot .

Enfaite j'ai peux être oublié de préciser que le code devra s'applique quand je vais cliquer sur le bouton validé, et qu'il prenne bien en compte seulement le dernière chiffre Exemple "23"

Donc si dans la colonne A j'ecris :

13

25

23

13 et 23 seront remplis en rouge et 25 restera comme il est, car 13 et 23 termine par 3.

Excuser moi si j'explique mal

Bonne soirée a tous

Re,

Pour le principe.

A adapter pour une macro

19mfc-micka67-v2.xlsm (49.62 Ko)

J'ai vraiment tout essayé mais je pense que je ne vais pas y arrivé :/

Merci quand même pour t'es réponse je pense que tu peux plus m'aider ?

Je recherche toujours le code pour le mettre sur un bouton..

Bonne nuit ::

Bonjour

Une alternative à la macro (la meilleure macro c'est celle que l'on ne fait pas - ce n'est pas de moi-)

Une Mise En Forme Conditionnelle

Sélectionnes la colonne A

En formule de la MEFC

=DROITE(A1;1)="3"

Oui sur ça j'ai réusie, et si par exemple j'ai " 13-Janv" dans ma cellule ça change en quoi ??

Bonjour

Si à chaque message tu changes les règles du jeu on ne va pas s'en sortir

Micka67 a écrit :

Donc si dans la colonne A j'ecris :

13

25

23

Pas de date prévue ?

Un fichier aurait sans doute évité ces inconvénients

Édit : Pour info tapes 14/01/2014 ou 24/01/204

Oui enfaite j'ai pas tout expliquer :p

J'ai une colonne qui et A :

Ou des dates seront écrite a la suite a l'aide d'un Userform, le format de ma date sera et dois être : 02-Janv, 02Fevr, 02 Mars.... , avec chaque fois 4 lettre de la date ( je sais c'est compliquer ).

Donc si dans ma colonne A j'ai :

01-janv

02-janv

03-janv

04-janv

05-janv

06-janv

07-janv

08-janv

09-janv

10-janv

11-janv

12-janv

13-janv

13 est en rouge car 03 et 13

12 est en vert car 02 et 12

Ainsi de suite, j'ai 10 couleur pour les chiffres de 1 a 10.

Bonjour

Un début à tester

Je me trompe peux être mais tu a mis le début de code ou ? Parce qu’il et nul part ^^

Merci de ta réponse

Bonjour

C'est un fichier xlsx --> donc sans macro

Ce ne sont que des MEFC (Mise En Forme Conditionnelle)

J'ai donc trouvé ce code pour macro :

Columns("A:A").Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=DROITE(JOUR(A1);1)=""7"""
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 11359767
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False

Tout marche trés bien j'ai donc 10 action ( je remplace chaque fois le numéro ici "7" sur le code ), mais encore une petite question ce code marchera t'il sur une version de Excel 2003 ? Normalement oui vu que c'est par une macro ??

Bonjour

Micka67 a écrit :

mais encore une petite question ce code marchera t'il sur une version de Excel 2003 ?

Non

Pour t'en convaincre testes

A mon avis (mais je peux me tromper) ces instructions ne passent pas

Columns("A:A").Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=DROITE(JOUR(A1);1)=""7"""
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 11359767
       .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False

Elle ne passe pas en excel 2003... J'ai essayé de testé des truc mais j'ai pas réusie.. Vu qu'il accepte que 3 des format condionnellle je pense que ca passe pas.. Quelqu'un a une solution pour les faire autrement ??

Merci beaucoup

Rechercher des sujets similaires à "vba format conditionnelle specifique"