Casse tete MFC sur VBA
Résolu
Nicoroth
Messages postés
54
Date d'inscription
Statut
Membre
Dernière intervention
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
Salut a tous,
j'ai un petit casse tete a vous proposer (en tout cas c'est en train de casser la mienne...)
Je cherche donc a faire une mise en forme conditionnel sur des cellules comprenant du text en passant par une macro.
Voila mon code pour mieux comprendre:
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreaterEqual _
, Formula1:="=""Bipack"""
With Selection.FormatConditions(1).Font
.Bold = False
.Italic = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Selection.FormatConditions(1).Interior.ColorIndex = 45
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreaterEqual _
, Formula1:="=""On"""
Selection.FormatConditions(2).Interior.ColorIndex = 33
Donc, en gros, je souhaite colorier les cases qui ont le texte "bipack" dedans et d'autres ayant le texte "On".
Mais je n'ai pas tout dis, car dans ces cellules se trouve d'autre caracters (du texte et des chiffres).
De plus, il y a plusieurs cases a colorier car plusieurs possede le texte "bipack"... d'ou mon xlGreaterEqual.
Remarque: le texte se trouvera toujour au debut de la cellule, j'avais donc pense a une fonction Left, mais je c pas si c'est judicieux et oú il faudrait la mettre.
Je pense que c'est au niveau de la Formula qu'il faut dire a la macro comment chercher les cases ayant le mot en question, mais je suis incapable de l'exprimer.
Je me demande d'ailleurs si ce que je demande est possible...
Une autre petite question, peut mettre plus de trois mise en forme en passant par VBA?
Merci a tous pour votre temps
j'ai un petit casse tete a vous proposer (en tout cas c'est en train de casser la mienne...)
Je cherche donc a faire une mise en forme conditionnel sur des cellules comprenant du text en passant par une macro.
Voila mon code pour mieux comprendre:
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreaterEqual _
, Formula1:="=""Bipack"""
With Selection.FormatConditions(1).Font
.Bold = False
.Italic = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Selection.FormatConditions(1).Interior.ColorIndex = 45
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreaterEqual _
, Formula1:="=""On"""
Selection.FormatConditions(2).Interior.ColorIndex = 33
Donc, en gros, je souhaite colorier les cases qui ont le texte "bipack" dedans et d'autres ayant le texte "On".
Mais je n'ai pas tout dis, car dans ces cellules se trouve d'autre caracters (du texte et des chiffres).
De plus, il y a plusieurs cases a colorier car plusieurs possede le texte "bipack"... d'ou mon xlGreaterEqual.
Remarque: le texte se trouvera toujour au debut de la cellule, j'avais donc pense a une fonction Left, mais je c pas si c'est judicieux et oú il faudrait la mettre.
Je pense que c'est au niveau de la Formula qu'il faut dire a la macro comment chercher les cases ayant le mot en question, mais je suis incapable de l'exprimer.
Je me demande d'ailleurs si ce que je demande est possible...
Une autre petite question, peut mettre plus de trois mise en forme en passant par VBA?
Merci a tous pour votre temps
A voir également:
- Casse tete MFC sur VBA
- L'en-tête du document comporte une information qui n’apparaît pas à l'impression car elle est de couleur blanche. de quelle information s'agit-il ? ✓ - Forum Bureautique
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
- Incompatibilité de type vba ✓ - Forum Programmation
- Ecran telephone cassé de l'interieur - Forum Wiko
- Écran pc portable cassé mettre second écran en écran primaire ✓ - Forum PC portable
7 réponses
Salut,
Supposons que tu veuilles appliquer cette MFC en A1. La formule à appliquer est:
Formula1:="=CHERCHE(""bipack"";A1)"
en fait, ta formule =bipack ne s'applique que si la cellule ne contient que ce mot. La fonction "cherche" cherche si dans la cellule le mot "bipack" est présent...
Supposons que tu veuilles appliquer cette MFC en A1. La formule à appliquer est:
Formula1:="=CHERCHE(""bipack"";A1)"
en fait, ta formule =bipack ne s'applique que si la cellule ne contient que ce mot. La fonction "cherche" cherche si dans la cellule le mot "bipack" est présent...
Ca a l'air proche mais alors la tu va rire, lorsque je fait la fonction:
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual _
, Formula1:="=buscar(""promocaja"";B2)"
Selection.FormatConditions(1).Interior.ColorIndex = 45
il me colorie tout sauf les cases ou il y a promocaja ;)
je bug total
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual _
, Formula1:="=buscar(""promocaja"";B2)"
Selection.FormatConditions(1).Interior.ColorIndex = 45
il me colorie tout sauf les cases ou il y a promocaja ;)
je bug total
Est ce que je peut faire:
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=CHERCHE(""bipack"";A1:H100)"
pour pouvoir appliquer a toute cette plage?
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=CHERCHE(""bipack"";A1:H100)"
pour pouvoir appliquer a toute cette plage?
Non. La il va chercher bipack dans la plage A1:H100 (ce qui ne fonctionnera pas bien d'ailleurs) mais la MFC ne s'applique qu'à la selection c'est à dire la cellule active...
Pour faire ce que tu désires :
Pour faire ce que tu désires :
Range("A1").Select Selection.FormatConditions.Delete Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _ "=CHERCHE(""bipack"";A1)" Selection.FormatConditions(1).Interior.ColorIndex = 45 Selection.Copy Range("A1:H100").Select Selection.PasteSpecial Paste:=xlPasteFormats
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je t'avoue que ca ne fonctionne pas chez moi...
J'ai essayer plusieurs truc a partir de ton code mais rien n'y fait...
Un truc que je ne comprend pas, c'est le role de la cellule A1 dans la formule cherche...
- est ce une cellule de reference ou la cellule dans laquelle la macro va chercher l'expression.
selon moi ce serait la seconde option, mais j'ai beau ecrire "bipack" dans la cellule A1, seul ou avec d'autre caractere, la macro ne me colorie pas la case
a tu une idee de ce qui peut se passer?
Merci encore pour ton temps.
J'ai essayer plusieurs truc a partir de ton code mais rien n'y fait...
Un truc que je ne comprend pas, c'est le role de la cellule A1 dans la formule cherche...
- est ce une cellule de reference ou la cellule dans laquelle la macro va chercher l'expression.
selon moi ce serait la seconde option, mais j'ai beau ecrire "bipack" dans la cellule A1, seul ou avec d'autre caractere, la macro ne me colorie pas la case
a tu une idee de ce qui peut se passer?
Merci encore pour ton temps.
Lorsque j'essaye a la main ca ne marche pas.
Je me dis que c'est ma version d'excel qui doit etre trop vieille et ne doit pas pouvoir gerer ceci (version 2002 je sais je suis a la bourre...)
sinon dans ta case A1 tu rentre quoi?
- bipack ??
- bipack + du texte au hazard
- ou rien.
Merci encore pour ton aide precieuse mais apres ta prochaine reponse je m'arreterai pour aujourd'hui et m'y remetterai demain ;)
Je me dis que c'est ma version d'excel qui doit etre trop vieille et ne doit pas pouvoir gerer ceci (version 2002 je sais je suis a la bourre...)
sinon dans ta case A1 tu rentre quoi?
- bipack ??
- bipack + du texte au hazard
- ou rien.
Merci encore pour ton aide precieuse mais apres ta prochaine reponse je m'arreterai pour aujourd'hui et m'y remetterai demain ;)