OVH Cloud OVH Cloud

J'essaie mais j'y arrive pas ;-)

7 réponses
Avatar
Philippe Meresse
Bonsoir à toutes et tous,
j'ai déjà mis un post plus bas sur le coloriage de Cellules autaumatique.
J'essaie de me débrouiller tout seul mais cela ne marche pas alors
j'insiste. Je ne sais pas faire quelque chose (sûrement simple) que je ne
comprends pas (ben oui on le sais déjà je suis pas bon).
l'explication de ce que je veux faire est en commentaires dans la macro
ci-après.
Merci pour l'aide éventuelle.
Philippe

Sub Griser_WK_et_Jour_fériés()
'
' Macro enregistrée le 21/12/2004 par Philippe
'
' Touche de raccourci du clavier: Ctrl+g
'
'Range("D6:AH6").Select

'Dans cette selection si il trouve des cases contenant un S ou D, je
veux qu'il grise les Cases (la colonne) situées en dessous de chaque lettres
trouvées
'à partir de la ligne D7 jusqu'à D65
'Dans cette selection si il trouve des cases contenant 1 chiffre ecrit
en jaune je veux qu'il grise les Cases (la colonne) situées en dessous de
chaque
'Chiffres trouvés à partir de la ligne D7 à D65

Dim I
Sheets(Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin",
"Juillet", "Août", _
"Septembre", "Octobre", "Novembre", "Décembre")).Select
Range("D5:AH6").Select

For I = 7 To 65

If Selection.Cells.Value = "S" Then
I.Interior.ColorIndex = 16
ElseIf Selection.Cells.Value = "D" Then
I.Interior.ColorIndex = 16
ElseIf Selection.Cells.Font.ColorIndex = 6 Then
I.Interior.ColorIndex = 16
End If

Next I

End Sub

7 réponses

Avatar
...Patrick
une piste :

Sub Griser_WK_et_Jour_fériés()
'
' Macro enregistrée le 21/12/2004 par Philippe
'
' Touche de raccourci du clavier: Ctrl+g
'
'Range("D6:AH6").Select

'Dans cette selection si il trouve des cases contenant un S ou D, je
'veux qu 'il grise les Cases (la colonne) situées en dessous de chaque
lettres
'trouvées
'à partir de la ligne D7 jusqu'à D65
'Dans cette selection si il trouve des cases contenant 1 chiffre ecrit
'en jaune je veux qu'il grise les Cases (la colonne) situées en dessous de
'chaque
'Chiffres trouvés à partir de la ligne D7 à D65

Dim I, cell, Myarray
Myarray = Array("Janvier", "Février", "Mars") ' .Select
For I = 1 To UBound(Myarray) + 1
Sheets(I).Select
Range("D5:AH6").Select

For Each cell In Selection
If cell.Value = "S" Then
cell.Offset(1, 0).Interior.ColorIndex = 16
ElseIf cell.Value = "D" Then
cell.Offset(1, 0).Interior.ColorIndex = 16
ElseIf Cells.Font.ColorIndex = 6 Then
cell.Offset(1, 0).Interior.ColorIndex = 16
End If

Next
Next I
End Sub


Philippe Meresse wrote:
Bonsoir à toutes et tous,
j'ai déjà mis un post plus bas sur le coloriage de Cellules autaumatique.
J'essaie de me débrouiller tout seul mais cela ne marche pas alors
j'insiste. Je ne sais pas faire quelque chose (sûrement simple) que je ne
comprends pas (ben oui on le sais déjà je suis pas bon).
l'explication de ce que je veux faire est en commentaires dans la macro
ci-après.
Merci pour l'aide éventuelle.
Philippe

Sub Griser_WK_et_Jour_fériés()
'
' Macro enregistrée le 21/12/2004 par Philippe
'
' Touche de raccourci du clavier: Ctrl+g
'
'Range("D6:AH6").Select

'Dans cette selection si il trouve des cases contenant un S ou D, je
veux qu'il grise les Cases (la colonne) situées en dessous de chaque lettres
trouvées
'à partir de la ligne D7 jusqu'à D65
'Dans cette selection si il trouve des cases contenant 1 chiffre ecrit
en jaune je veux qu'il grise les Cases (la colonne) situées en dessous de
chaque
'Chiffres trouvés à partir de la ligne D7 à D65

Dim I
Sheets(Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin",
"Juillet", "Août", _
"Septembre", "Octobre", "Novembre", "Décembre")).Select
Range("D5:AH6").Select

For I = 7 To 65

If Selection.Cells.Value = "S" Then
I.Interior.ColorIndex = 16
ElseIf Selection.Cells.Value = "D" Then
I.Interior.ColorIndex = 16
ElseIf Selection.Cells.Font.ColorIndex = 6 Then
I.Interior.ColorIndex = 16
End If

Next I

End Sub




Avatar
Benead
Bonsoir Philippe,

Voilà un code qui remplace ta boucle "i = 7 to 65" :

Dim wCell As Range
For Each wCell In [D6:AH6]' Boucle cellule par cellule dans la plage définie
If wCell.Text = "D" Or wCell.Text = "S" Then ' Si 1 des 2 valeurs est vrai alors
wCell.Offset(1, 0).Interior.ColorIndex = 16 ' la cellule en dessous est coloriée
End If
Next wCell

For Each wCell In [D7:D65] ' Boucle cellule par cellule dans la plage définie
If wCell.Font.ColorIndex = 6 Then ' Si la couleur de police est 6 alors
wCell.Offset(0, 1).Interior.ColorIndex = 16 ' la cellule de droite est coloriée
End If
Next wCell


J'ai pas compris toutes tes explications donc ce code (notamment lorsque te parles de "cases (la colonne)"), donc tu
devras certainement l'adapter.
En brève explication, wCell.Offset(0,1) génère un décalage de 0 ligne et de 1 colonne et
wCell.Offset(1,0) génère un décalage de 1 ligne et de 0 colonne.
A toi d'adapter pour que la bonne cellule soit coloriée...

A+
Benead
XL97

Philippe Meresse a écrit:
Bonsoir à toutes et tous,
j'ai déjà mis un post plus bas sur le coloriage de Cellules autaumatique.
J'essaie de me débrouiller tout seul mais cela ne marche pas alors
j'insiste. Je ne sais pas faire quelque chose (sûrement simple) que je ne
comprends pas (ben oui on le sais déjà je suis pas bon).
l'explication de ce que je veux faire est en commentaires dans la macro
ci-après.
Merci pour l'aide éventuelle.
Philippe

Sub Griser_WK_et_Jour_fériés()
'
' Macro enregistrée le 21/12/2004 par Philippe
'
' Touche de raccourci du clavier: Ctrl+g
'
'Range("D6:AH6").Select

'Dans cette selection si il trouve des cases contenant un S ou D, je
veux qu'il grise les Cases (la colonne) situées en dessous de chaque lettres
trouvées
'à partir de la ligne D7 jusqu'à D65
'Dans cette selection si il trouve des cases contenant 1 chiffre ecrit
en jaune je veux qu'il grise les Cases (la colonne) situées en dessous de
chaque
'Chiffres trouvés à partir de la ligne D7 à D65

Dim I
Sheets(Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin",
"Juillet", "Août", _
"Septembre", "Octobre", "Novembre", "Décembre")).Select
Range("D5:AH6").Select

For I = 7 To 65

If Selection.Cells.Value = "S" Then
I.Interior.ColorIndex = 16
ElseIf Selection.Cells.Value = "D" Then
I.Interior.ColorIndex = 16
ElseIf Selection.Cells.Font.ColorIndex = 6 Then
I.Interior.ColorIndex = 16
End If

Next I

End Sub




Avatar
Philippe Meresse
Un grand merci à tout les deux,
je teste et vous tiens au courant ce soir.
@+
Phil
"Philippe Meresse" a écrit dans le message de
news: 41c9e07a$0$22313$
Bonsoir à toutes et tous,
j'ai déjà mis un post plus bas sur le coloriage de Cellules autaumatique.
J'essaie de me débrouiller tout seul mais cela ne marche pas alors
j'insiste. Je ne sais pas faire quelque chose (sûrement simple) que je ne
comprends pas (ben oui on le sais déjà je suis pas bon).
l'explication de ce que je veux faire est en commentaires dans la macro
ci-après.
Merci pour l'aide éventuelle.
Philippe

Sub Griser_WK_et_Jour_fériés()
'
' Macro enregistrée le 21/12/2004 par Philippe
'
' Touche de raccourci du clavier: Ctrl+g
'
'Range("D6:AH6").Select

'Dans cette selection si il trouve des cases contenant un S ou D, je
veux qu'il grise les Cases (la colonne) situées en dessous de chaque
lettres trouvées
'à partir de la ligne D7 jusqu'à D65
'Dans cette selection si il trouve des cases contenant 1 chiffre ecrit
en jaune je veux qu'il grise les Cases (la colonne) situées en dessous de
chaque
'Chiffres trouvés à partir de la ligne D7 à D65

Dim I
Sheets(Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin",
"Juillet", "Août", _
"Septembre", "Octobre", "Novembre", "Décembre")).Select
Range("D5:AH6").Select

For I = 7 To 65

If Selection.Cells.Value = "S" Then
I.Interior.ColorIndex = 16
ElseIf Selection.Cells.Value = "D" Then
I.Interior.ColorIndex = 16
ElseIf Selection.Cells.Font.ColorIndex = 6 Then
I.Interior.ColorIndex = 16
End If

Next I

End Sub



Avatar
AV
'Dans cette selection si il trouve des cases contenant 1 chiffre ecrit
en jaune


Si les chiffres écrits en jaune ont une raison (logique) de l'être, je verrais
bien une MEFC (mise en forme conditionnelle) pour résoudre l'ensemble du
problème plutôt qu'une macro que tu seras obligé de relancer si les valeurs sont
modifiées (?)

AV

Avatar
Philippe Meresse
Bon alors en mixant vos deux idées et en rajoutant une infime touche à moi
pour ajuster à mon besoin hé bien ç'a marche.
Merci

Enfin presque ;-).
En effet
For Each wCell In [D6:AH6] ' Boucle cellule par cellule dans la plage
définie
If wCell.Font.ColorIndex = 6 Then ' Si la couleur de police est
6 alors etc...

Cette partie ne marche pas car la couleur n°6 recherchée est le fruit d'une
mise en forme conditionnelle et il me semble qu'une macro ne marche pas si
tel est le cas.
En fait ce sont les jours fériés qui apparaissent comme cela (en jaune
n°6)et comme pour les Samedi et Dimanche je voulais griser la colonne sous
ces jours.
Si vous avez une idée ?
Cordialement

Voici ci-après la macro finie.



Sub Griser_WK_et_Jour_fériés()
'
' Macro enregistrée le 21/12/2004 par Philippe
'
' Touche de raccourci du clavier: Ctrl+g

Dim wCell As Range, Myarray
Myarray = Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin",
"Juillet", "Août", _
"Septembre", "Octobre", "Novembre", "Décembre") ' .Select

For I = 1 To UBound(Myarray) + 2
Sheets(I).Select

For J = 2 To 60

For Each wCell In [D5:AH5] ' Boucle cellule par cellule dans la plage
définie
If wCell.Text = "D" Or wCell.Text = "S" Then ' Si 1 des 2 valeurs
est vrai alors
wCell.Offset(J, 0).Interior.ColorIndex = 16 ' la Sélection J de
cellules en dessous est coloriée
End If
Next wCell

For Each wCell In [D6:AH6] ' Boucle cellule par cellule dans la plage
définie
If wCell.Font.ColorIndex = 6 Then ' Si la couleur de police est
6 alors
wCell.Offset(J, 0).Interior.ColorIndex = 16 ' La Sélection J de
cellules en dessous est coloriée
End If
Next wCell
Next J
Next I
End Sub
Avatar
Philippe Meresse
Merci AV pour l'idée,
effectivement j'y avais pensé mais il me semble que les couleurs issues de
mise en forme conditionnelle ne sont pas reconnues par les macros et cela
est gênant car j'ai déjà d'autres macros dans le même classeur qui font des
recherches de cellules coloriées.
@+
Phil
"AV" a écrit dans le message de news:

'Dans cette selection si il trouve des cases contenant 1 chiffre ecrit
en jaune


Si les chiffres écrits en jaune ont une raison (logique) de l'être, je
verrais
bien une MEFC (mise en forme conditionnelle) pour résoudre l'ensemble du
problème plutôt qu'une macro que tu seras obligé de relancer si les
valeurs sont
modifiées (?)

AV





Avatar
AV
effectivement j'y avais pensé mais il me semble que les couleurs issues de
mise en forme conditionnelle ne sont pas reconnues par les macros


Quoique...
De toutes façons si la couleur est issue d'une MEFC, il n'y a pas lieu de servir
de la couleur en question mais plutôt des test logiques contenus dans la MEFC

AV