Rechercher : dans
Par :

Excel: macro VBA mise en forme conditionnelle

Dernière réponse le 17 jun 2009 à 22:33:07 zizou78, le 17 jun 2009 à 15:38:09 
 Signaler ce message aux modérateurs

Bonjour,
j'aurais besoin d'aide sous Excel pour réaliser une macro VBA
Voilà le "sujet" :

J'ai un tableau comme ceux-ci:

A1: Vendredi
A2: Samedi
...
A7: Jeudi

B1: 40179 (nombre qui correspond au 01/01/2010)
B2: 40180 (nombre qui correspond au 02/01/2010)
...
B7: 40185

C1: Date automatique du jour au format Nombre (C1=AUJOURDUI())

Ce que je souhaite faire, c'est quand la date est passée, le nom du jour change de format.
Exemple : on est le 05/01/2010 soit le 40183 (au format nombre). Je souhaiterais que les noms des jours passée (à savoir le 01/01/2010, 02/01/2010...) dans la colonne A change de couleur (passe du noir au rouge par exemple).
En gros, ce que je n'arrive pas à faire, c'est comparé les cellules de la colonne B à la celulle C1 et imposé un changement de format aux cellules de la colonne A quand la condition est vraie.

J'espère que c'est compréhensible.
Merci par avance de vos réponses
Antoine

Configuration: Windows XP Internet Explorer 6.0

Meilleures réponses pour « Excel: macro VBA mise en forme conditionnelle » dans :
Excel - Mises en forme conditionnelles illimitées VoirMises en Forme Conditionnelles Illimitées Introduction Principe Code Fichier joint Introduction La Mise en Forme Conditionelle (ou MFC) permet d'appliquer, à une cellule ou à plusieurs cellules sélectionnées, différents formats qui...
Mise en forme de données VoirStyles de données Que la cellule contienne une valeur littérale saisie par vous-même ou le résultat d’une formule, vous affectez un style aux données de cette cellule en définissant ce que l’on appelle le format de la cellule : cela conditionne...

1

frippons, le 17 jun 2009 à 16:16:34

Tu fais une boucle qui compare tes deux cellules A1 et l'autre du genre
si cellule est= >A1 alors cellule suivante
sinon Selection.NumberFormat = "General"

Voila En espérant t'avoir aidé. Bon courage!!!
"Celui qui a dit que l'argent ne faisait pas le bonheur devait avoir un sérieux problème$$$$$"

Répondre à frippons

2

zizou78, le 17 jun 2009 à 16:23:22

Merci de ta réponse mais ce n'est pas très clair ! Je n'y connais pas grand chose en VBA

Répondre à zizou78

3

Mike-31, le 17 jun 2009 à 17:04:43

Salut,

Tu peux traiter ça avec une mise en forme conditionnelle et une formule

Colonne A pour les jours de semaine, mets en surbrillance la colonne et Format/Mise en Forme Conditionnelle

Sélectionne la formule est: et saisis
=$C3<$D$1 Format choisis police et la couleur éventuellement le gras etc ...
(D1 étant le cellule contenant =AUJOURDHUI()

Ensuite colonne C, en C1 colles cette formule que tu incrémentes

=SI(B1<$D$1;TEXTE(B1;"@");TEXTE(B1;"JJ/MM/AAAA")*1)

la date en format Date passera en format standard et inversement en fonction de la date, la colonne C pourra être masquée

A+
Mike-31

Un problème sans solution est un problème mal posé  (Einstein)

Répondre à Mike-31

4

zizou78, le 17 jun 2009 à 19:34:26

Salut Mike,
Tout d'abord merci de ta réponse
J'ai essayé ce que tu m'as dit mais ca ne marche. En faîtes, je ne suis pas sûr que tu es bien compris la question.
Ce que je cherche à faire, c'est en fonction de la date (mais ca pourrait être deux chiffres), je veux quand l'un est inférieur à l'autre qu'une cellule change de format ; sachant qu'une date est fixe et que je compare les autres dates à celle-là.

Pour essayer d'être un peu plus clair, voici un exemple :
Si B1<C1 alors A1 passe en rouge
Si B2<C1 alors A2 passe en rouge
et ainsi de suite
Je peux effectivement utiliser la mise en forme conditionnelle :
je me mets sur A1 et dans mise en forme conditionnelle je mets quand la formule est =B1<C1 passage en rouge du texte sauf qu'avec cette méthode, il faut le faire pour chaque case (A1, A2, A3...)

J'espère que c'est plus compréhensible

Répondre à zizou78

5

Mike-31, le 17 jun 2009 à 20:57:57

Non je te prépare un petit exemple avec les explications, pour la mise en forma conditionnelle tu traite la colonne ou la plage d'un coup

Dans quelques minutes je t'envoie ça

A+
Mike-31

Un problème sans solution est un problème mal posé  (Einstei­n)

Répondre à Mike-31

6

zizou78, le 17 jun 2009 à 21:18:06

OK
merci beaucoup

Répondre à zizou78

7

Mike-31, le 17 jun 2009 à 21:24:14

Re,

récupères un exemple avec ce lien

http://cjoint.com/?grvxGARfZm

A+
Mike-31

Un problème sans solution est un problème mal posé  (Einstei­n)

Répondre à Mike-31

8

zizou78, le 17 jun 2009 à 22:00:17

Génial, ca fonctionne ! et en plus c super simple à refaire
Encore merci pour le temps que tu m'as consacré !

Bonne soirée
Antoine

Répondre à zizou78

9

 Mike-31, le 17 jun 2009 à 22:33:07

Re,

Tu vois il ne faut pas crier au loup trop vite, il y a toujours une solution sans aller chercher loin.

J’ai jeté un œil sur tes interventions, il serait bien que tu deviennes membre de ce forum, ça te permettrai de gérer plus facilement tes discussions.

N'oublies pas de mettre ton statut en résolu ou demande à la modération de le faire pour toi en cliquant sur le triangle jaune en haut d'un post, ça permet à des demandeurs de retrouver facilement la discussion pour des problèmes similaires

A+
Mike-31

Un problème sans solution est un problème mal posé  (Einstei­n)

Répondre à Mike-31