OVH Cloud OVH Cloud

mise en forme avec vba

3 réponses
Avatar
GaelB
Bonjour =E0 tous,
Je cr=E9e un planning avec 5 conditions de mise en forme de=20
couleurs. J'ai repris le code suivant:
Sub miseencouleurs(ByVal Target As Range)
On Error Resume Next
Set ici =3D Intersect(Target, Range("planningsemaine"))
If Not ici Is Empty Then
For Each v In ici
Select Case v.Value
Case "si A"
v.Interior.ColorIndex =3D 3
Case "zla"
v.Interior.ColorIndex =3D 4
Case "rdv a"
v.Interior.ColorIndex =3D 5
Case "ca"
v.Interior.ColorIndex =3D 6
End Select
Next
End If
End Sub
Pourriez vous m'indiquer ce qui cloche?
Je pense que je dois faire une confusion entre Sub et=20
Private Sub, en tout cas je n'arrive pas =E0 faire=20
fonctionner cette macro.
Cordialement,
GaelB

3 réponses

Avatar
Cage à lapins
J'ai supposé que le fonctionnement que tu souhaitais était le suivant :
- Tu sélectionnes une plage de cellule avec la souris
- Tu lances la macro (en cliquant sur un bouton perso par exemple)
- Dans la plage sélectionné tu a mis :
1) En rouge toutes les cellules contenant "si A"
2) En vert toutes les cellules contenant "zla"
3) En bleu toutes les cellules contenant "rdv a"
4) En jaune toutes les cellules contenant "ca"

Pour ça j'ai modifié ta procédure en :
Public Sub miseencouleurs()
On Error Resume Next
Set ici = Selection
For Each v In ici
Select Case v.Value
Case "si A"
v.Interior.ColorIndex = 3
Case "zla"
v.Interior.ColorIndex = 4
Case "rdv a"
v.Interior.ColorIndex = 5
Case "ca"
v.Interior.ColorIndex = 6
End Select
Next v
End Sub

"GaelB" wrote:

Bonjour à tous,
Je crée un planning avec 5 conditions de mise en forme de
couleurs. J'ai repris le code suivant:
Sub miseencouleurs(ByVal Target As Range)
On Error Resume Next
Set ici = Intersect(Target, Range("planningsemaine"))
If Not ici Is Empty Then
For Each v In ici
Select Case v.Value
Case "si A"
v.Interior.ColorIndex = 3
Case "zla"
v.Interior.ColorIndex = 4
Case "rdv a"
v.Interior.ColorIndex = 5
Case "ca"
v.Interior.ColorIndex = 6
End Select
Next
End If
End Sub
Pourriez vous m'indiquer ce qui cloche?
Je pense que je dois faire une confusion entre Sub et
Private Sub, en tout cas je n'arrive pas à faire
fonctionner cette macro.
Cordialement,
GaelB



Avatar
GaelB
Bonjour Cage à Lapins,
Cela fonctionne parfaitement. Cependant comment écrire la
première mise en forme en faisant comprendre: en rouge
toutes les cellules contenant"si A" ou "si B" ou "si C"?
Meme si l'exemple ne comporte que 4 conditions, la mefc
ne peut s'appliquer puisque j'ai 7 couleurs à mettre. La
commande est ainsi...
Cordialement,
GaelB
-----Message d'origine-----
J'ai supposé que le fonctionnement que tu souhaitais
était le suivant :

- Tu sélectionnes une plage de cellule avec la souris
- Tu lances la macro (en cliquant sur un bouton perso
par exemple)

- Dans la plage sélectionné tu a mis :
1) En rouge toutes les cellules contenant "si A"
2) En vert toutes les cellules contenant "zla"
3) En bleu toutes les cellules contenant "rdv a"
4) En jaune toutes les cellules contenant "ca"

Pour ça j'ai modifié ta procédure en :
Public Sub miseencouleurs()
On Error Resume Next
Set ici = Selection
For Each v In ici
Select Case v.Value
Case "si A"
v.Interior.ColorIndex = 3
Case "zla"
v.Interior.ColorIndex = 4
Case "rdv a"
v.Interior.ColorIndex = 5
Case "ca"
v.Interior.ColorIndex = 6
End Select
Next v
End Sub

"GaelB" wrote:

Bonjour à tous,
Je crée un planning avec 5 conditions de mise en
forme de


couleurs. J'ai repris le code suivant:
Sub miseencouleurs(ByVal Target As Range)
On Error Resume Next
Set ici = Intersect(Target, Range
("planningsemaine"))


If Not ici Is Empty Then
For Each v In ici
Select Case v.Value
Case "si A"
v.Interior.ColorIndex = 3
Case "zla"
v.Interior.ColorIndex = 4
Case "rdv a"
v.Interior.ColorIndex = 5
Case "ca"
v.Interior.ColorIndex = 6
End Select
Next
End If
End Sub
Pourriez vous m'indiquer ce qui cloche?
Je pense que je dois faire une confusion entre Sub et
Private Sub, en tout cas je n'arrive pas à faire
fonctionner cette macro.
Cordialement,
GaelB

.





Avatar
Cage à lapins
Bonjour GaelB,

Tu sépares tes cas par une virgule
Case "si A", "si B", "si C"
v.Interior.ColorIndex = 3
Pour ce qui est du nombre de couleurs tu n'es pas limité à 4 ni à 7.

"GaelB" wrote:

Bonjour Cage à Lapins,
Cela fonctionne parfaitement. Cependant comment écrire la
première mise en forme en faisant comprendre: en rouge
toutes les cellules contenant"si A" ou "si B" ou "si C"?
Meme si l'exemple ne comporte que 4 conditions, la mefc
ne peut s'appliquer puisque j'ai 7 couleurs à mettre. La
commande est ainsi...
Cordialement,
GaelB
-----Message d'origine-----
J'ai supposé que le fonctionnement que tu souhaitais
était le suivant :

- Tu sélectionnes une plage de cellule avec la souris
- Tu lances la macro (en cliquant sur un bouton perso
par exemple)

- Dans la plage sélectionné tu a mis :
1) En rouge toutes les cellules contenant "si A"
2) En vert toutes les cellules contenant "zla"
3) En bleu toutes les cellules contenant "rdv a"
4) En jaune toutes les cellules contenant "ca"

Pour ça j'ai modifié ta procédure en :
Public Sub miseencouleurs()
On Error Resume Next
Set ici = Selection
For Each v In ici
Select Case v.Value
Case "si A"
v.Interior.ColorIndex = 3
Case "zla"
v.Interior.ColorIndex = 4
Case "rdv a"
v.Interior.ColorIndex = 5
Case "ca"
v.Interior.ColorIndex = 6
End Select
Next v
End Sub

"GaelB" wrote:

Bonjour à tous,
Je crée un planning avec 5 conditions de mise en
forme de


couleurs. J'ai repris le code suivant:
Sub miseencouleurs(ByVal Target As Range)
On Error Resume Next
Set ici = Intersect(Target, Range
("planningsemaine"))


If Not ici Is Empty Then
For Each v In ici
Select Case v.Value
Case "si A"
v.Interior.ColorIndex = 3
Case "zla"
v.Interior.ColorIndex = 4
Case "rdv a"
v.Interior.ColorIndex = 5
Case "ca"
v.Interior.ColorIndex = 6
End Select
Next
End If
End Sub
Pourriez vous m'indiquer ce qui cloche?
Je pense que je dois faire une confusion entre Sub et
Private Sub, en tout cas je n'arrive pas à faire
fonctionner cette macro.
Cordialement,
GaelB

.