Excel VBA problème de formule

Résolu/Fermé
sirima18 - 26 août 2010 à 14:02
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 - 1 sept. 2010 à 11:24
Bonjour,

J'ai un problème avec une marco dans Excel. Je ne sais pas comment crééer la marco suivante :

Si la cellule (p.ex. A2) est vide, alors la cellule (p.ex. B2) doit se mettre en vert, par contre si la cellule A2 a qqch d'écrit dedans, alors la cellule B2 doit se mettre en rouge.

Comment dois-je faire?

Merci pour votre réponse, je suis paumée.
A voir également:

11 réponses

Morgothal Messages postés 1236 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 19 mai 2015 183
30 août 2010 à 13:58
Bonjour,
Il suffit d'enregistrer la procédure de mise en forme conditionnelle que voici :

Sub MEFC()


Range("A2").select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotEqual, _
Formula1:="="""""""""""""
Selection.FormatConditions(1).Interior.ColorIndex = 3
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _
Formula1:="="""""""""""""
Selection.FormatConditions(2).Interior.ColorIndex = 43
End Sub

A+
0
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
30 août 2010 à 14:37
Salut,

Pourquoi passer par un code VBA pour une fonction aussi simple, tu ne donnes pas ta version Excel, supposons 2003

mets une plage colonne B en surbrillance exemple B2 à B30

Format/Mise en forme conditionnelle
sélectionne la formule est : est saisi la formule

=$A2=""
Format/motif/sélectionne la couleur verte

Ajouter

sélectionne la formule est : est saisi la formule

=$A2<>""
Format/motif/sélectionne la couleur rouge

et OK

Pour les version 2007 ou 2010 c'est pareil, si tu as besoin du chemin d'accès détaillé demande le
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
30 août 2010 à 15:08
Bonjour,

Pas besoin de macro. Une simple mise en forme conditionnelle fera amplement l'affaire.

Cdlt,
0
Merci pour vos réponses.
J'utilise Excel 2003 en effet.
J'ai essayé avec la mise en forme toute simple et je n'ai pas réussi, vu que ce n'est pas sur la même feuille, j'ai oublié de le préciser.
La cellule A2 (où il y aurait du texte) se trouve sur la feuille 1, tandis que la cellule B2 qui doit se mettre en couleur se trouve sur la feuille 2.

Est-ce possible?

A bientôt
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
30 août 2010 à 16:50
Oui c'est possible.
Il suffit que tu définisses un nom pour ta cellule A2 de ta feuille 1.
Et après la mise en forme conditionnelle fonctionnera en utilisant le nom.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
30 août 2010 à 20:07
Re,

Ce n'est pas un problème, il suffit de rapatrier les données de la feuille dans une colonne de la feuille ou doit s'opérer la mise en forme conditionnelle. tu as bien sur la feuille de calcul une colonne vide qui pourra être masquée.

Deux exemples, tes données sont sur la feuille 2 colonne A de A2 à A20. Tu mets la plage en surbrillance et Edition/Copier tu vas sur la feuille de ta mise en forme conditionnelle colonne X par exemple Edtion/Collage Spécial et clic sur Avec liaison.
Tout la plage aura un 0 il suffira de modifier la formule de la mise en forme pour remplacer "" par 0
Autre possibilité
Gardons les données précédentes, en X2 tu saisis une formule conditionnelle
=SI(Feuil2!A2<>"";Feuil2!A2;"")
Tu incrémentes cette formule vers le bas
La formule de ta mise en forme conditionnelle pour le vert sera

=$X2=""
Et pour le rouge
=$X2<>""

Ensuite libre à toi de masquer la colonne X
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
30 août 2010 à 22:03
Même pas besoin de mettre dans la même feuille.
Un simple nommage de cellule suffit.
0
Merci pour votre aide.
J'ai réussi à faire que lorsque j'écris qqch dans la cellule A2 par exemple, la cellule B2 se met en rouge (en suivant les instructions de Mike-31, en copiant avec liaison + formule conditionnelle. Mais le problème est que lorsque j'enlève le texte, la cellule reste rouge et ne se remet pas en vert. J'ai du oublier qqch dans ma formule.

Mise en forme conditionnelle :
Ma formule est : =$A2<>"0"
Format : cellule en rouge

Est-ce que je dois rajouter une condition?
0
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
Modifié par Mike-31 le 31/08/2010 à 14:57
Re,

Regarde l'exemple ci joint

https://www.cjoint.com/?iFo1P6Kuf5

il est possible de faire avec d'autre formule plus ou moins complexe sans passer avec un rapatriement ou avec un code VBA.
La solution avec cellule nommée est faisable à condition de ne pas avoir des dizaines de cellules à nommer
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Merci infiniment. Mais je n'y arrive toujours pas. Mais c'est pas grave, je vais essayer encore et bien regarder ton exemple.
J'ai bien recréer la formule comme dans la feuille 3 dans la colone en jaune mais il n'y pas de lien avec ma colonne B, du coup rien ne se met en rouge ou en vert.

J'ai bien été dans Forme conditionnelle pourtant. Désolée, j'ai de la peine avec Excel...

Merci encore. Bonne fin de journée.
0
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
1 sept. 2010 à 09:29
Re,

Récupère le fichier ou tu trouveras les explications sur quelques procédures de mise en forme sur des feuilles différentes.

https://www.cjoint.com/?jbjDLGW8ov
0
Merciiiiiiiiiii !!!! J'ai réussi enfiiiin! :)

C'est vraiment sympa! A plus
0
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
1 sept. 2010 à 11:24
Avec plaisir, n'oublie pas de mettre le statu de la discussion en résolu ou demande qu'on le fasse pour toi
0