Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : EXCEL - VB - Couleur cellule conditionnelle [ Divers / General ] (ArnaudFabry)

jeudi 18 décembre 2008 à 11:00:31 | EXCEL - VB - Couleur cellule conditionnelle

ArnaudFabry

Membre Club
Bonjour,

Comment récupérer sous VB la couleur d'une cellule EXCEL ayant une mise en forme conditionnelle ?

La propriété ci-dessous me donne la couleur d'origine de ma cellule et non la couleur selon la mise en forme conditionnelle.
CouleurFond = Sheets("Source").Range("Test").Cells(1).Interior.Color
   

Merci d'avance pour votre aide


Arnaud

jeudi 18 décembre 2008 à 11:19:50 | Re : EXCEL - VB - Couleur cellule conditionnelle

Calade

Bonjour,

   Il existe une bibliothèque Freeware de fonctions additionnelles pour Excel nommé MoreFunc. Fais une recherche avec ton butineur préféré (au hasard Google) sur MoreFunc.

   Le fonction qui t'intéresse est XML.LIRE.CELLULE(). Attention la couleur ne doit pas être automatique. Va voir dans l'aide, elle est très bien faîte en français !!!

Calade


jeudi 18 décembre 2008 à 13:21:12 | Re : EXCEL - VB - Couleur cellule conditionnelle

ArnaudFabry

Membre Club
Merci calade,

les fonctions de MoreFunc semblent très intéressantes, malheureusement mon problème se situe dans le code :

Je cherche dans une macro visual basic à récupérer la couleur d'une cellule dépendant d'une mise en forme conditionnelle.

A+


Arnaud

jeudi 18 décembre 2008 à 14:42:50 | Re : EXCEL - VB - Couleur cellule conditionnelle

Calade

Bonjour,

   Désolé, j'avais mal lu ton message et zappé le mot VB.
   Et Redésolé, mais là je sèche, il va falloir quelqu'un de plus doué que moi sous VBA (ce qui ne devrait pas être trop difficile à trouver).

Calade


jeudi 18 décembre 2008 à 23:47:08 | Re : EXCEL - VB - Couleur cellule conditionnelle

JERCAD

Membre Club
Bonsoir!
J'ai déja connu ce problème mais sans solution. En effet, on ne peut pas récuperer la couleur d'une cellule EXCEL ayant une mise en forme conditionnelle car la couleur n'est que "visuelle" et sans application de code. En quelque sorte, au niveau code rien ne change pour une conditionnelle c'est juste du maquillage ! La solution: créér une macro !

vendredi 19 décembre 2008 à 11:22:19 | Re : EXCEL - VB - Couleur cellule conditionnelle

ArnaudFabry

Membre Club
Merci Jercad,

Bien content de pas être le seul ...
... mais quelle macro faut-il créer ?
Un macro qui refait des mises en forme conditionnelles ?

Arnaud


Arnaud

vendredi 19 décembre 2008 à 12:59:54 | Re : EXCEL - VB - Couleur cellule conditionnelle

userrrqi115

Hello,

J'avais fait quelques test hier soir et en suis arrivé à la même conclusion : pas possible de tester sur la couleur d'un mise en forme conditionnelle.
Pour contourner ce problème le mieux est d'effectuer le test sur la condition de la mise en forme conditionnelle.
BR

USERRRQI115
Simple user
Great brain

vendredi 19 décembre 2008 à 17:12:24 | Re : EXCEL - VB - Couleur cellule conditionnelle

JERCAD

Membre Club
bonjour armaud
Tu as tout compris. Il faut que tu réussisses à créer une macro correspondant à une mise en forme conditionnelle.
ex:
mise en condition conditionnelle: cellule couleur rouge si valeur inférieure à 0
Donc à 'traduire' en vb dans une macro.
Normalement c'est pas difficile.
Bonne chance!


samedi 20 décembre 2008 à 11:26:57 | Re : EXCEL - VB - Couleur cellule conditionnelle

ArnaudFabry

Membre Club

Effectivement Jercad, c'est pas difficie mais pas pour l'utilisateur lambda qui par la suite utilisera le tableau excel ne pourra pas changer la mise en forme conditionnelle sans le faire dans la macro (et la çoincera). Je veux évité d'être trop sollicié pa la suite.

Pour comprendre le contexte :
J'ai un tableau excel pour résumer l'avancement de différents projets (1 ligne = 1 projet)
Le but est de créer, à partir de ce tableau, une présentation PPT où chaque slide montrera l'avancement d'un projet.
J'ai donc crée une macro qui fait le boulot (sauf qu'elle ne recopie pas les couleurs conditionnelles ... vous connaissez la suite)

Je souhaite que cette macro soit totalement transporable pour d'autres besoins (donc sans test dédié à une feuille excel en partiulier)
Si besoin, pour ceux que ça interresse, je peux donner le code.

Je creuse toujours le problème

A+


Arnaud

samedi 20 décembre 2008 à 12:24:52 | Re : EXCEL - VB - Couleur cellule conditionnelle

nhervagault

Administrateur CodeS-SourceS
Salut

Apres une recherche sur internet.
J'ai trouvé le code suivant

J'ai changé dans ce code
oFC.Formula1 vers CInt(Replace(oFC.Formula1, "=", ""))
pour que ca fonctionne sur Excel 2007
Il faut mettre a jour les autres formules.

Et je ne vois pas comment le faire marcher autrement?

Ca indique le numero de la couleur de la cellule courante.

Je laisse aux pro de VBA le soin de le corriger pour mieux gerer le truc.




Sub TestCFColorMacro()
MsgBox CFColor(ActiveCell)
End Sub

'---------------------------------------------------------------------
Public Function CFColor(rng As Range) As Long
'---------------------------------------------------------------------
Dim oFC As FormatCondition
Dim sF1 As String
Dim iRow As Long
Dim iColumn As Long
Dim IsCFMet As Boolean



Set rng = rng(1, 1)
If rng.FormatConditions.Count > 0 Then
For Each oFC In rng.FormatConditions
If oFC.Type = xlCellValue Then
IsCFMet = False
Select Case oFC.Operator
Case xlEqual
IsCFMet = rng.Value = oFC.Formula1
Case xlNotEqual
IsCFMet = rng.Value <> oFC.Formula1
Case xlGreater
IsCFMet = rng.Value > CInt(Replace(oFC.Formula1, "=", "")) 'oFC.Formula1
Case xlGreaterEqual
IsCFMet = rng.Value >= oFC.Formula1
Case xlLess
IsCFMet = rng.Value < oFC.Formula1
Case xlLessEqual
IsCFMet = rng.Value <= oFC.Formula1
IsCFMet = (rng.Value >= oFC.Formula1 And _
rng.Value <= oFC.Formula2)
Case xlNotBetween
IsCFMet = (rng.Value < oFC.Formula1 Or _
rng.Value > oFC.Formula2)
End Select
If IsCFMet Then
CFColor = oFC.Interior.ColorIndex
Exit Function
End If

Else
're-adjust the formula back to the formula that applies
'to the cell as relative formulae adjust to the activecell
With Application
iRow = rng.Row
iColumn = rng.Column
sF1 = .Substitute(oFC.Formula1, "ROW()", iRow)
sF1 = .Substitute(sF1, "COLUMN()", iColumn)
sF1 = .ConvertFormula(sF1, xlA1, xlR1C1)
sF1 = .ConvertFormula(sF1, xlR1C1, xlA1, , rng)
End With
IsCFMet = rng.Parent.Evaluate(sF1)
End If
If IsCFMet Then Exit Function
Next oFC
End If 'rng.FormatConditions.Count > 0


End Function



1 2

Cette discussion est classé dans : vb, couleur, excel, cellule, conditionnelle


Répondre à ce message

Sujets en rapport avec ce message

Excel : couleur dans une cellule (en VB) [ par pcvesoul ] Bonjour.Je génère plusieurs fichiers "excel" depuis mon programme en VB6.Dans certains cas, je mets une couleur dans les cellules selon la formule sui formule conditionnelle vb vers Excel [ par trexor ] Bonjour,j'ai un petit problème en générant une feuille excel à l'aide de vb.net.Je souhaite mettre une formule conditionnelle sur une cellule nommé B Couleur cellule excel [ par Florian29 ] Salut !J'exporte des données depuis un tableau vb vers excell et je voudrais pouvoir mettre une couleur de fond sur les cellules excel (je veux choisi Excel Vb nombre de cellule en couleur [ par zeurk ] Bonjour besoin d'1 peu d'aide... Comment en Vb compter des cellules suivant leur couleur.Exemple: Dans une plage A1:D10 je mets 3 cellules quelconque RGB Excel VB [ par eldim ] Bonjour,J'ai un petit soucis :Lorsque je récupère la couleur d'un control VB et que j'essai de l'affecter à une cellule excel la couleur est différent excel et vb.net [ par trexor ] Bonjour,j'ai un petitproblème en générant une feuille xcel à l'aide de vb.net.Je souhaite mette une formule conditionnel sur une cellule nommé B d'exc Formule Excel permettant de reconnaitre la couleur d?une cellule [ par ludo_wob ] Salut à tousvoila mon probleme, j´ai un tableau avec des données, et dans la colonne 10,il y a une seule cellule colorée en jaune entre la ligne 1 et comment modifier la couleur d'une cellule d'un datagrid en vb.net svp [ par rodrigue1979 ] salut je cherche a modifier la couleur d'une cellule d'un datagrid en vb.netrodrigue Pbl VB EXcel avec find [ par Binou3719 ] J'ai un petit problèm. J'utilise find pour trouvé des cellule dans ma feuille mais s'il n'y a pas de cellule correspondant à la recherche je n'arrive


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,515 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.