Transformer Macro VBA en fonction

Fermé
gary - 1 sept. 2010 à 12:45
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 3 sept. 2010 à 22:32
Bonjour,

J'exécute une macro qui me permet de récupérer la couleur (couleur mise grâce à une MEFC) d'une cellule.

C'est macro (reprise intégralement d'un site internet) affiche le résultat dans une MsgBox pour la cellule active (voir macro ci-dessous)

Sub QuelleCouleurSiFormatConditionnel()
Dim FC As FormatCondition, F1, F2
For Each FC In ActiveCell.FormatConditions
If FC.Type = xlCellValue Then
F1 = Evaluate(FC.Formula1)
Select Case FC.Operator
Case xlBetween: If ActiveCell >= F1 _
And ActiveCell <= Evaluate(FC.Formula2) Then Exit For
Case xlEqual: If ActiveCell = F1 Then Exit For
Case xlGreater: If ActiveCell > F1 Then Exit For
Case xlGreaterEqual: If ActiveCell >= F1 Then Exit For
Case xlLess: If ActiveCell < F1 Then Exit For
Case xlLessEqual: If ActiveCell <= F1 Then Exit For
Case xlNotBetween: If ActiveCell < F1 _
Or ActiveCell > Evaluate(FC.Formula2) Then Exit For
Case xlNotEqual: If ActiveCell <> F1 Then Exit For
End Select
Else
If Evaluate(FC.Formula1) Then Exit For
End If
Next FC
If Not FC Is Nothing Then MsgBox FC.Interior.ColorIndex _
Else MsgBox ActiveCell.Interior.ColorIndex
End Sub

J'aimerai modifier cette macro, voire en faire une fonction (je sais même pas si c'est possible...) afin de passer en argument la cellule que je veux tester :

ex : QuelleCouleurSiFormatConditionnel(A1) me retournerait la couleur de la cellule A1. Est-ce possible?

Merci pour votre aide !

A voir également:

1 réponse

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
3 sept. 2010 à 22:32
Bonjour,

Sub test_Couleur()
Dim Result, Couleur As Long, Cel As Range
Set Cel = Cells(9, 1) ' cellule a tester
Result = QuelleCouleur(Cel)
End Sub

Function QuelleCouleur(Cel As Range)
QuelleCouleur= Cel.Interior.ColorIndex
End Function

A essayer.
0