OVH Cloud OVH Cloud

Macro de style

5 réponses
Avatar
Indigo
Bonjour à tous.

J'ai mis sur une feuille Motif les différents styles que doit avoir une date.

Voir http://img146.imageshack.us/img146/4387/testdate2fj.gif

Sur une autre feuille nommée Historique, je voudrais que la saisie d'une
date dans la colonne B de Historique modifie aussitôt sa couleur selon les
règles suivantes :
- Si la saisie est un texte : style de la cellule A2 de la feuille Motif.
- Si la date est inférieure à la date A4 de Motif, style de la cellule A3 de
la feuille Motif.
- Si la date est comprise entre les dates A4 et A5 de Motif, style de la
cellule A4 de la feuille Motif.
- Si la date est égale à à la date A5 de Motif, style de la cellule A5 de la
feuille Motif.
- Si la date est supérieure à à la date A5 de Motif, style de la cellule A6
de la feuille Motif.

Comment faire avec les macros? Voire sans macro si c'est possible?

5 réponses

Avatar
toffcris
Tu peux, sans ta feuille Motif, t'inspirer des réponses à la question
"Changement de couleur" un peu plus bas dans le forum: utilisation du "format
conditionnel"
A+


Bonjour à tous.

J'ai mis sur une feuille Motif les différents styles que doit avoir une date.

Voir http://img146.imageshack.us/img146/4387/testdate2fj.gif

Sur une autre feuille nommée Historique, je voudrais que la saisie d'une
date dans la colonne B de Historique modifie aussitôt sa couleur selon les
règles suivantes :
- Si la saisie est un texte : style de la cellule A2 de la feuille Motif.
- Si la date est inférieure à la date A4 de Motif, style de la cellule A3 de
la feuille Motif.
- Si la date est comprise entre les dates A4 et A5 de Motif, style de la
cellule A4 de la feuille Motif.
- Si la date est égale à à la date A5 de Motif, style de la cellule A5 de la
feuille Motif.
- Si la date est supérieure à à la date A5 de Motif, style de la cellule A6
de la feuille Motif.

Comment faire avec les macros? Voire sans macro si c'est possible?


Avatar
Ardus Petus
As-tu nommé tes styles ("Text", "Date1", etc...)
ou bien as-tu huste appliqué un format aux cellules de la feuille Motif?

Cordialement,
--
AP

"Indigo" a écrit dans le message de
news:
Bonjour à tous.

J'ai mis sur une feuille Motif les différents styles que doit avoir une
date.


Voir http://img146.imageshack.us/img146/4387/testdate2fj.gif

Sur une autre feuille nommée Historique, je voudrais que la saisie d'une
date dans la colonne B de Historique modifie aussitôt sa couleur selon les
règles suivantes :
- Si la saisie est un texte : style de la cellule A2 de la feuille Motif.
- Si la date est inférieure à la date A4 de Motif, style de la cellule A3
de

la feuille Motif.
- Si la date est comprise entre les dates A4 et A5 de Motif, style de la
cellule A4 de la feuille Motif.
- Si la date est égale à à la date A5 de Motif, style de la cellule A5 de
la

feuille Motif.
- Si la date est supérieure à à la date A5 de Motif, style de la cellule
A6

de la feuille Motif.

Comment faire avec les macros? Voire sans macro si c'est possible?


Avatar
Indigo
As-tu nommé tes styles ("Text", "Date1", etc...)
ou bien as-tu huste appliqué un format aux cellules de la feuille Motif?


J'ai uniquement réalisé la feuille Motif affichée sur cette copie d'écran
http://img146.imageshack.us/img146/4387/testdate2fj.gif

Je n'ai rien nommé. Sur la feuille historique je voudrais changer la couleur
d'une date selon les styles créés sur la feuille motif.

Avatar
Ardus Petus
Copie ce qui suit dans le code de ta feuille (clic droit sur l'onglet puis
Visualiser le code.

Exemple: http://cjoint.com/?dnrf4Tg7Qs

Cordialement,
--
AP

'-----------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Dim cell As Range
Dim ref As String

Set rng = Intersect(Target, Columns("B"))
If rng Is Nothing Then Exit Sub
Application.EnableEvents = False
With Worksheets("Motif")
For Each cell In rng
'Détermination de la cellule dont il faut copier le format
If Not IsDate(cell.Value) Then
ref = "A2"
Else
Select Case cell.Value
Case Is < .Range("A4").Value
ref = "A3"
Case .Range("A4").Value To .Range("A5").Value - 1
ref = "A4"
Case .Range("A5").Value
ref = "A5"
Case Is > Range("A5").Value
ref = "A6"
End Select
End If
' Copie du format
.Range(ref).Copy
cell.PasteSpecial Paste:=xlPasteFormats
Next cell
End With
Application.CutCopyMode = False
Application.EnableEvents = True
End Sub
'----------------------------------------------------------
"Indigo" a écrit dans le message de
news:
As-tu nommé tes styles ("Text", "Date1", etc...)
ou bien as-tu huste appliqué un format aux cellules de la feuille Motif?


J'ai uniquement réalisé la feuille Motif affichée sur cette copie d'écran
http://img146.imageshack.us/img146/4387/testdate2fj.gif

Je n'ai rien nommé. Sur la feuille historique je voudrais changer la
couleur

d'une date selon les styles créés sur la feuille motif.



Avatar
Indigo
Merci pour ton escellente réponse.


Copie ce qui suit dans le code de ta feuille (clic droit sur l'onglet puis
Visualiser le code.

Exemple: http://cjoint.com/?dnrf4Tg7Qs

Cordialement,
--
AP

'-----------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Dim cell As Range
Dim ref As String

Set rng = Intersect(Target, Columns("B"))
If rng Is Nothing Then Exit Sub
Application.EnableEvents = False
With Worksheets("Motif")
For Each cell In rng
'Détermination de la cellule dont il faut copier le format
If Not IsDate(cell.Value) Then
ref = "A2"
Else
Select Case cell.Value
Case Is < .Range("A4").Value
ref = "A3"
Case .Range("A4").Value To .Range("A5").Value - 1
ref = "A4"
Case .Range("A5").Value
ref = "A5"
Case Is > Range("A5").Value
ref = "A6"
End Select
End If
' Copie du format
.Range(ref).Copy
cell.PasteSpecial Paste:=xlPasteFormats
Next cell
End With
Application.CutCopyMode = False
Application.EnableEvents = True
End Sub
'----------------------------------------------------------
"Indigo" a écrit dans le message de
news:
As-tu nommé tes styles ("Text", "Date1", etc...)
ou bien as-tu huste appliqué un format aux cellules de la feuille Motif?


J'ai uniquement réalisé la feuille Motif affichée sur cette copie d'écran
http://img146.imageshack.us/img146/4387/testdate2fj.gif

Je n'ai rien nommé. Sur la feuille historique je voudrais changer la
couleur

d'une date selon les styles créés sur la feuille motif.