Aide Macro
Bonjour,
J'aurai besoins de votre Aide
En effet en premier lieu j'ai crée une Macro Colorisation des 0 que j'ai voulu etre tres rapide car habituellement
je travail sur une plage A1:ZZ20000
Aujourd'hui je voudrai remettre à transparent les fond bleue avec une autre Macro (code 42) mais oh surprise ma premiere macro
donne l'illusion que c'est un 42 mais s'en en est pas. j'ai voulu en savoir plus et il me remonte -4142 ?
Cordialement
Bonjour,
Si tu posais les bonnes questions dès le départ...
1) Réécriture proprement de ta première procédure :
Sub S0()
With ActiveSheet.Range("A1:K20").FormatConditions
.Delete
.Add(xlExpression, , "=A1=0").Interior.Color = RGB(83, 141, 213)
End With
End Subet en supprimant ce qui était inutile...
(NB- Si j'interviens sur un fichier, je fais disparaître tout Select et consorts, indices de mauvais code !
2) La procédure inverse :
Sub RetraitFond()
ActiveSheet.Range("A1:K20").FormatConditions.Delete
End SubCommentaires :
1) Etant donné que ta couleur résulte d'une MFC, l'ôter passe par la suppression de la MFC...
2) Si tu avais à détecter une couleur résultant de MFC, ce ne peut être par ...Interior.Color, mais par ...DisplayFormat.Interior.Color. Cependant tu ne pourrais la supprimer car ce n'est pas la couleur de la cellule ! Il faut agir à la source (MFC)...
3) Tu fais un mélange des genres de mauvais aloi avec l'utilisation simultanée de Color, et sous la forme de thèmes de couleur, d'une part, et ColorIndex !
Sans reprendre la théorie des couleurs, ton fichier étant xls, s'il doit être ouvert habituellement sur Excel 2003, il faut privilégier ColorIndex pour avoir une certitude sur les couleurs affichées. Jusqu'à cette version Excel ne peut afficher que les 56 couleurs de la palette (et n'en affiche pas d'autre...)
Si tu utilises ton fichier habituellement sur Excel 2007 ou supérieur, il faut privilégier Color, Excel affiche désormais toutes les couleurs... Le maintien en xls ne se justifie alors que pour une ouverture occasionnelle sur Excel 2003.
L'usage de l'enregistreur pour affecter des couleurs fait que selon que la couleur que tu utilises est liée à un thème ou non il te l'enregistrera avec ThemeColor + TintAndShade, et autres propriétés par défaut inutiles ou par le code couleur. ThemeColor ne fournit aucune nouvelle couleur, c'est une façon de les regrouper et d'y accéder. Comme personne n'utilise (sauf exception rare) de façon systématique des thèmes de couleur, la bonne solution est de la définir par la fonction RGB qui à partir des composantes rouge, vert, bleu renvoie le code de la couleur. Lorsqu'on choisit une couleur, il est facile d'aller consulter la valeur de ces composantes et d'utiliser RGB pour la définir. On y gagne en facilité d'emploi, homogénéité de définition et volume de code !
Cordialement.
Merci infiniment Mferrand pour ta patiente et tes explications
Ma Macro initial est plus complète que la recherche de 0 car en réalité il cherche des chaines de caractères
générés par un code erreur système Equipements Chaine de fabrication Aléatoires car de génération ou Equipementier
Multi National divers donc j'aurai jamais le même code erreur.
est-il possible d'adapter mon premier code pour qu'il mette 42 lors du MFC
ou sinon sur le deuxieme code de dire que si fond de celule plage donné est bleue42 alors mettre tranparent
Cordialement
Tu ne comprends pas ou c'est moi !
Et d'autre part s'agissant d'une MFC, on ne peut faire disparaître la couleur en la changeant, on la fait disparaître en supprimant la MFC !
Je ne comprends pas en outre le rapport avec 42 ?
Mais je le répète, la définition de la couleur ou sa reconnaissance ne sert à rien puisqu'il s'agit d'une MFC !
Cordialement.