Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Mise en forme sur un calendrier

15 réponses
Avatar
Apitos
Bonjour,

Avec le code suivant, j'aimerais appliqu=E9 une MFC sur un calendrier, mais=
je n'arrive plus :

'--------------------
Sub MFC_Dates()

'-----------------(1) - WeekEnd
Cells.FormatConditions.Delete
Range("A3:H8").Select
Selection.FormatConditions.Add Type:=3DxlExpression, Formula1:=3D _
"=3DJOURSEM(DATE(K1,MOIS(1&A3),2)>5"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPr=
iority
With Selection.FormatConditions(1).Interior
.PatternColorIndex =3D xlAutomatic
.Color =3D 49407
.TintAndShade =3D 0
End With
Selection.FormatConditions(1).StopIfTrue =3D False
'-------------(2) - Jours f=E9ri=E9s
Range("A3:H8").Select
Selection.FormatConditions.Add Type:=3DxlExpression, Formula1:=3D _
"=3DNB.SI(f=E9ri=E9s;DATE(K1;MOIS(1&A3))=
>0"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPr=
iority
With Selection.FormatConditions(2).Interior
.PatternColorIndex =3D xlAutomatic
.ThemeColor =3D xlThemeColorLight2
.TintAndShade =3D 0.799981688894314
End With
Selection.FormatConditions(2).StopIfTrue =3D False
'------------ (3) - Date d'aujourd'hui
Range("A3:H8").Select
Selection.FormatConditions.Add Type:=3DxlExpression, Formula1:=3D _
"=3DAUJOURDHUI()"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPr=
iority
With Selection.FormatConditions(3).Interior
.PatternColorIndex =3D xlAutomatic
.ThemeColor =3D xlThemeColorDark1
.TintAndShade =3D -0.14996795556505
End With
Selection.FormatConditions(3).StopIfTrue =3D False
End Sub
'---------------------

http://cjoint.com/?ECqwLAo52Uv

5 réponses

1 2
Avatar
Jacquouille
OK, je vois .

Si je prends ton exemple, à savoir RGB(128,55,245), le produit de ces 3
nombres = 1.724.800
Comment Excel sait-il que c'est 125,55,245 et non pas par ex: 125,245,55
(les mêmes, mais dans un autre ordre) ?

Comprends-tu pourquoi je ne suis pas MVP ?
Mais un Mini Verry Petit Personnage of Excel -)
Heureusement que tu es là, avec tes copains, pour nous remettre dans le
droit chemin.

Grand merci
Bonne fin de journée
Jacques.

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"MichD" a écrit dans le message de groupe de discussion :
meaa4m$2gm$

Afin de simplifier l'explication :

Pour chaque élément de la fonction RGB(), on peut utiliser un nombre entre 0
et 255, donc 256 possibilités
Rouge (R) = 256
Vert (G) = 256
Bleu (B) = 256

Le nombre de couleurs possible est : 256 * 256 * 256 = 16777216 couleurs
possibles

Pour renseigner la propriété "Color", on peut écrire .Color RGB(128,55,245) ou remplacer la fonction par une constante entre 0 et
16777216

Si tu utilises la propriété ColorIndex, les seules valeurs disponibles sont
des constantes entre 1 et 56

Vois-tu la différence? ...


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Avatar
db
Le 18/03/2015 14:24, Jacquouille a écrit :
OK, je vois .

Si je prends ton exemple, à savoir RGB(128,55,245), le produit de ces 3
nombres = 1.724.800
Comment Excel sait-il que c'est 125,55,245 et non pas par ex:
125,245,55 (les mêmes, mais dans un autre ordre) ?




En fait, le nombre unique n'est pas le produit des 3 valeurs, mais la
juxtaposition (en hexa) des trois valeurs, et dans l'autre sens (ne me
demandez pas pourquoi…) :
128,45,55 => 372D80 (37->55, 2D->45, 80->128)
Il ne reste plus qu'à transformer ce nombre en décimal : 3616128

Autre méthode : multiplier le 1er nombre par 1, le second par 256 et le
dernier par 65536 et additionner le tout :
(128 * 1 ) + (45 * 256) + (55 * 65536) = 3616128

De cette façon, il n'y a pas de confusion possible : un nombre est
toujours le résultat de la conversion des 3 mêmes valeurs.

db
Avatar
MichD
Suppose lorsque tu écris cette ligne de code :
x = Range("A1").Interior.Color
x est égal à 2096896 et que tu veuilles trouver le chiffre pour
chacun des items "Rouge", "Vert" et "Bleu"
Leur valeur respective est : 0, 255, 31

Voici une façon de procéder pour les extraire à partir de 2096896

Copie ce qui suit dans un module standard et affecte la couleur
de fond à la cellule A1 de la feuille active.
'------------------------------------------------------------------------
Sub test()

'Extrait la valeur décimale de la propriété
'color du fond de la cellule
x = Range("A1").Interior.Color

'Utilise la fonction pour transformer au besoin
'La valeur décimale en ses composants
MsgBox Rouge_Vert_Bleu(x)
End Sub

'------------------------------------------------------------------------
Function Rouge_Vert_Bleu(ValDec) As Variant
'Utilisé dans l'exemple en VBA pour extraire les valeurs
'de chaque composant.
Dim R As Integer, V As Integer, b As Integer
R = ValDec 256 ^ 0 And 255
V = ValDec 256 ^ 1 And 255
b = ValDec 256 ^ 2 And 255
Rouge_Vert_Bleu = "Rouge = " & vbTab & R & vbCrLf & _
"Vert = " & vbTab & V & vbCrLf & _
"Bleu = " & vbTab & b
End Function
'------------------------------------------------------------------------
Avatar
Jacquouille
Hello
Je viens de faire mes devoirs (hélas, pas conjugaux).
Via cette macro, je colorie a1,a2 et a3 avec la même couleur (vert fluo).
-----------
Sub color_Jac()
Range("a1").Interior.Color = 2096896
Range("a2").Interior.Color = RGB(0, 255, 31)
Range("a3").Interior.ColorIndex = 4
End Sub
--------------
Ensuite, je teste avec sub test et ta fonction
Cela me renvoie:
R=0 - V = 255 et B = 0

Or, B = 31 d'après la macro qui a colorié.
Pour info, j'ai fait le test sur A1, A2 et A3 et le msg me sort 3 x la même
chose.
Pour info2, avant d'envoyer , je viens de tester en modifiant RGB de Sub
Color-Jac avec RGB(0,255,0) qui donne le même vert et le même résultat au
msg qu'avec RGB(0,255,31)

????
moi plus piger.

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"MichD" a écrit dans le message de groupe de discussion :
meccfd$j12$

Suppose lorsque tu écris cette ligne de code :
x = Range("A1").Interior.Color
x est égal à 2096896 et que tu veuilles trouver le chiffre pour
chacun des items "Rouge", "Vert" et "Bleu"
Leur valeur respective est : 0, 255, 31

Voici une façon de procéder pour les extraire à partir de 2096896

Copie ce qui suit dans un module standard et affecte la couleur
de fond à la cellule A1 de la feuille active.
'------------------------------------------------------------------------
Sub test()

'Extrait la valeur décimale de la propriété
'color du fond de la cellule
x = Range("A1").Interior.Color

'Utilise la fonction pour transformer au besoin
'La valeur décimale en ses composants
MsgBox Rouge_Vert_Bleu(x)
End Sub

'------------------------------------------------------------------------
Function Rouge_Vert_Bleu(ValDec) As Variant
'Utilisé dans l'exemple en VBA pour extraire les valeurs
'de chaque composant.
Dim R As Integer, V As Integer, b As Integer
R = ValDec 256 ^ 0 And 255
V = ValDec 256 ^ 1 And 255
b = ValDec 256 ^ 2 And 255
Rouge_Vert_Bleu = "Rouge = " & vbTab & R & vbCrLf & _
"Vert = " & vbTab & V & vbCrLf & _
"Bleu = " & vbTab & b
End Function
'------------------------------------------------------------------------


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Avatar
MichD
Fichier exemple : http://cjoint.com/?ECswfF5FZAg
1 2