Bonjour,
Ma question rejoint celle de loulou et je pense bien d'autres.
Je souhaite pour une rangée de celulle A1:D500 par exemple -> si (pour
chaque cellule) la cellule est égale à "texte1" (en chaîne de
caractères) colorier en rouge, "texte2" -> telle couleur, jusqu'à sept
conditions, sinon ne rien faire et passer à la cellule suivante pour
toute ma sélection. Est-il possible de le faire automatiquement de telle
manière que dès que je remplis ma cellule il colore ma cellule qui
répond aux conditions fixées ?
D'avance merci,
Lionel
Bonjour,
Ma question rejoint celle de loulou et je pense bien d'autres.
Je souhaite pour une rangée de celulle A1:D500 par exemple -> si (pour
chaque cellule) la cellule est égale à "texte1" (en chaîne de
caractères) colorier en rouge, "texte2" -> telle couleur, jusqu'à sept
conditions, sinon ne rien faire et passer à la cellule suivante pour
toute ma sélection. Est-il possible de le faire automatiquement de telle
manière que dès que je remplis ma cellule il colore ma cellule qui
répond aux conditions fixées ?
D'avance merci,
Lionel
Bonjour,
Ma question rejoint celle de loulou et je pense bien d'autres.
Je souhaite pour une rangée de celulle A1:D500 par exemple -> si (pour
chaque cellule) la cellule est égale à "texte1" (en chaîne de
caractères) colorier en rouge, "texte2" -> telle couleur, jusqu'à sept
conditions, sinon ne rien faire et passer à la cellule suivante pour
toute ma sélection. Est-il possible de le faire automatiquement de telle
manière que dès que je remplis ma cellule il colore ma cellule qui
répond aux conditions fixées ?
D'avance merci,
Lionel
Bonsoir Lionel,
Un proc (à adapter bien entendu) pour colorer toute un plage :
Salut Hervé et merci pour ta réponse que je n'arrive pas à mettre en
Sub Colorer()
Dim Tbl() As String
Dim TblCouleur() As Integer
Dim Plage As Range
Dim Cel As Range
Dim Adr As String
Dim I As Integer
'rempli les tableaux pour le test
For I = 1 To 7
ReDim Preserve Tbl(1 To I)
ReDim Preserve TblCouleur(1 To I)
Tbl(I) = "Texte " & I
faut-il ici modifier quelque chose ?
TblCouleur(I) = I + 2
Next I
'la plage est dans la feuille "Feuil1"
'et part de A1 à la dernière cellule
'de la colonne D
With Worksheets("Feuil1")
Set Plage = .Range(.[A1], .[D65536].End(3))
j'ai modifié le Range
End With
'recherche la valeur de chaque élément
'du tableau
For I = 1 To UBound(Tbl)
Set Cel = Plage.Find(Tbl(I), , xlValues)
'si trouvée
If Not Cel Is Nothing Then
Adr = Cel.Address
'colore toutes les cellules correspondantes
Do
Cel.Interior.ColorIndex = TblCouleur(I)
Set Cel = Plage.FindNext(Cel)
Loop While Cel.Address <> Adr
End If
Next I
Set Cel = Nothing
Set Plage = Nothing
Erase Tbl
End Sub
je ne comprends pas entrer les critères
Si tu veux que la cellule active soit colorée après un changement de valeur,
à mettre dans le module de ta feuille :
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target
Case "texte 1"
Target.Interior.ColorIndex = 3
Case "texte 2"
Target.Interior.ColorIndex = 4
Case "texte 3"
Target.Interior.ColorIndex = 5
Case "texte 4"
Target.Interior.ColorIndex = 6
Case "texte 5"
Target.Interior.ColorIndex = 7
Case "texte 6"
Target.Interior.ColorIndex = 8
Case "texte 7"
Target.Interior.ColorIndex = 9
Case Else
Target.Interior.ColorIndex = 0
End Select
End Sub
Si toutes les feuilles du classeur sont concernées, utilise les mêmes ligne
de code dans l'évennement "Private Sub Workbook_SheetChange".
Hervé.
"L" a écrit dans le message de news:Bonjour,
Ma question rejoint celle de loulou et je pense bien d'autres.
Je souhaite pour une rangée de celulle A1:D500 par exemple -> si (pour
chaque cellule) la cellule est égale à "texte1" (en chaîne de
caractères) colorier en rouge, "texte2" -> telle couleur, jusqu'à sept
conditions, sinon ne rien faire et passer à la cellule suivante pour
toute ma sélection. Est-il possible de le faire automatiquement de telle
manière que dès que je remplis ma cellule il colore ma cellule qui
répond aux conditions fixées ?
D'avance merci,
Lionel
Bonsoir Lionel,
Un proc (à adapter bien entendu) pour colorer toute un plage :
Salut Hervé et merci pour ta réponse que je n'arrive pas à mettre en
Sub Colorer()
Dim Tbl() As String
Dim TblCouleur() As Integer
Dim Plage As Range
Dim Cel As Range
Dim Adr As String
Dim I As Integer
'rempli les tableaux pour le test
For I = 1 To 7
ReDim Preserve Tbl(1 To I)
ReDim Preserve TblCouleur(1 To I)
Tbl(I) = "Texte " & I
faut-il ici modifier quelque chose ?
TblCouleur(I) = I + 2
Next I
'la plage est dans la feuille "Feuil1"
'et part de A1 à la dernière cellule
'de la colonne D
With Worksheets("Feuil1")
Set Plage = .Range(.[A1], .[D65536].End(3))
j'ai modifié le Range
End With
'recherche la valeur de chaque élément
'du tableau
For I = 1 To UBound(Tbl)
Set Cel = Plage.Find(Tbl(I), , xlValues)
'si trouvée
If Not Cel Is Nothing Then
Adr = Cel.Address
'colore toutes les cellules correspondantes
Do
Cel.Interior.ColorIndex = TblCouleur(I)
Set Cel = Plage.FindNext(Cel)
Loop While Cel.Address <> Adr
End If
Next I
Set Cel = Nothing
Set Plage = Nothing
Erase Tbl
End Sub
je ne comprends pas entrer les critères
Si tu veux que la cellule active soit colorée après un changement de valeur,
à mettre dans le module de ta feuille :
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target
Case "texte 1"
Target.Interior.ColorIndex = 3
Case "texte 2"
Target.Interior.ColorIndex = 4
Case "texte 3"
Target.Interior.ColorIndex = 5
Case "texte 4"
Target.Interior.ColorIndex = 6
Case "texte 5"
Target.Interior.ColorIndex = 7
Case "texte 6"
Target.Interior.ColorIndex = 8
Case "texte 7"
Target.Interior.ColorIndex = 9
Case Else
Target.Interior.ColorIndex = 0
End Select
End Sub
Si toutes les feuilles du classeur sont concernées, utilise les mêmes ligne
de code dans l'évennement "Private Sub Workbook_SheetChange".
Hervé.
"L" <lionel.barrand@gmail.com> a écrit dans le message de news:
uqRzWBhoHHA.3460@TK2MSFTNGP04.phx.gbl...
Bonjour,
Ma question rejoint celle de loulou et je pense bien d'autres.
Je souhaite pour une rangée de celulle A1:D500 par exemple -> si (pour
chaque cellule) la cellule est égale à "texte1" (en chaîne de
caractères) colorier en rouge, "texte2" -> telle couleur, jusqu'à sept
conditions, sinon ne rien faire et passer à la cellule suivante pour
toute ma sélection. Est-il possible de le faire automatiquement de telle
manière que dès que je remplis ma cellule il colore ma cellule qui
répond aux conditions fixées ?
D'avance merci,
Lionel
Bonsoir Lionel,
Un proc (à adapter bien entendu) pour colorer toute un plage :
Salut Hervé et merci pour ta réponse que je n'arrive pas à mettre en
Sub Colorer()
Dim Tbl() As String
Dim TblCouleur() As Integer
Dim Plage As Range
Dim Cel As Range
Dim Adr As String
Dim I As Integer
'rempli les tableaux pour le test
For I = 1 To 7
ReDim Preserve Tbl(1 To I)
ReDim Preserve TblCouleur(1 To I)
Tbl(I) = "Texte " & I
faut-il ici modifier quelque chose ?
TblCouleur(I) = I + 2
Next I
'la plage est dans la feuille "Feuil1"
'et part de A1 à la dernière cellule
'de la colonne D
With Worksheets("Feuil1")
Set Plage = .Range(.[A1], .[D65536].End(3))
j'ai modifié le Range
End With
'recherche la valeur de chaque élément
'du tableau
For I = 1 To UBound(Tbl)
Set Cel = Plage.Find(Tbl(I), , xlValues)
'si trouvée
If Not Cel Is Nothing Then
Adr = Cel.Address
'colore toutes les cellules correspondantes
Do
Cel.Interior.ColorIndex = TblCouleur(I)
Set Cel = Plage.FindNext(Cel)
Loop While Cel.Address <> Adr
End If
Next I
Set Cel = Nothing
Set Plage = Nothing
Erase Tbl
End Sub
je ne comprends pas entrer les critères
Si tu veux que la cellule active soit colorée après un changement de valeur,
à mettre dans le module de ta feuille :
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target
Case "texte 1"
Target.Interior.ColorIndex = 3
Case "texte 2"
Target.Interior.ColorIndex = 4
Case "texte 3"
Target.Interior.ColorIndex = 5
Case "texte 4"
Target.Interior.ColorIndex = 6
Case "texte 5"
Target.Interior.ColorIndex = 7
Case "texte 6"
Target.Interior.ColorIndex = 8
Case "texte 7"
Target.Interior.ColorIndex = 9
Case Else
Target.Interior.ColorIndex = 0
End Select
End Sub
Si toutes les feuilles du classeur sont concernées, utilise les mêmes ligne
de code dans l'évennement "Private Sub Workbook_SheetChange".
Hervé.
"L" a écrit dans le message de news:Bonjour,
Ma question rejoint celle de loulou et je pense bien d'autres.
Je souhaite pour une rangée de celulle A1:D500 par exemple -> si (pour
chaque cellule) la cellule est égale à "texte1" (en chaîne de
caractères) colorier en rouge, "texte2" -> telle couleur, jusqu'à sept
conditions, sinon ne rien faire et passer à la cellule suivante pour
toute ma sélection. Est-il possible de le faire automatiquement de telle
manière que dès que je remplis ma cellule il colore ma cellule qui
répond aux conditions fixées ?
D'avance merci,
Lionel
Bonsoir Lionel,
Un proc (à adapter bien entendu) pour colorer toute un plage :
Sub Colorer()
Dim Tbl() As String
Dim TblCouleur() As Integer
Dim Plage As Range
Dim Cel As Range
Dim Adr As String
Dim I As Integer
'rempli les tableaux pour le test
For I = 1 To 7
ReDim Preserve Tbl(1 To I)
ReDim Preserve TblCouleur(1 To I)
Tbl(I) = "Texte " & I
TblCouleur(I) = I + 2
Next I
'la plage est dans la feuille "Feuil1"
'et part de A1 à la dernière cellule
'de la colonne D
With Worksheets("Feuil1")
Set Plage = .Range(.[A1], .[D65536].End(3))
End With
'recherche la valeur de chaque élément
'du tableau
For I = 1 To UBound(Tbl)
Set Cel = Plage.Find(Tbl(I), , xlValues)
'si trouvée
If Not Cel Is Nothing Then
Adr = Cel.Address
'colore toutes les cellules correspondantes
Do
Cel.Interior.ColorIndex = TblCouleur(I)
Set Cel = Plage.FindNext(Cel)
Loop While Cel.Address <> Adr
End If
Next I
Set Cel = Nothing
Set Plage = Nothing
Erase Tbl
End Sub
Si tu veux que la cellule active soit colorée après un changement de valeur,
à mettre dans le module de ta feuille :
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target
Case "texte 1"
Target.Interior.ColorIndex = 3
Case "texte 2"
Target.Interior.ColorIndex = 4
Case "texte 3"
Target.Interior.ColorIndex = 5
Case "texte 4"
Target.Interior.ColorIndex = 6
Case "texte 5"
Target.Interior.ColorIndex = 7
Case "texte 6"
Target.Interior.ColorIndex = 8
Case "texte 7"
Target.Interior.ColorIndex = 9
Case Else
Target.Interior.ColorIndex = 0
End Select
End Sub
Si toutes les feuilles du classeur sont concernées, utilise les mêmes ligne
de code dans l'évennement "Private Sub Workbook_SheetChange".
Hervé.
"L" a écrit dans le message de news:Bonjour,
Ma question rejoint celle de loulou et je pense bien d'autres.
Je souhaite pour une rangée de celulle A1:D500 par exemple -> si (pour
chaque cellule) la cellule est égale à "texte1" (en chaîne de
caractères) colorier en rouge, "texte2" -> telle couleur, jusqu'à sept
conditions, sinon ne rien faire et passer à la cellule suivante pour
toute ma sélection. Est-il possible de le faire automatiquement de telle
manière que dès que je remplis ma cellule il colore ma cellule qui
répond aux conditions fixées ?
D'avance merci,
Lionel
Bonsoir Lionel,
Un proc (à adapter bien entendu) pour colorer toute un plage :
Sub Colorer()
Dim Tbl() As String
Dim TblCouleur() As Integer
Dim Plage As Range
Dim Cel As Range
Dim Adr As String
Dim I As Integer
'rempli les tableaux pour le test
For I = 1 To 7
ReDim Preserve Tbl(1 To I)
ReDim Preserve TblCouleur(1 To I)
Tbl(I) = "Texte " & I
TblCouleur(I) = I + 2
Next I
'la plage est dans la feuille "Feuil1"
'et part de A1 à la dernière cellule
'de la colonne D
With Worksheets("Feuil1")
Set Plage = .Range(.[A1], .[D65536].End(3))
End With
'recherche la valeur de chaque élément
'du tableau
For I = 1 To UBound(Tbl)
Set Cel = Plage.Find(Tbl(I), , xlValues)
'si trouvée
If Not Cel Is Nothing Then
Adr = Cel.Address
'colore toutes les cellules correspondantes
Do
Cel.Interior.ColorIndex = TblCouleur(I)
Set Cel = Plage.FindNext(Cel)
Loop While Cel.Address <> Adr
End If
Next I
Set Cel = Nothing
Set Plage = Nothing
Erase Tbl
End Sub
Si tu veux que la cellule active soit colorée après un changement de valeur,
à mettre dans le module de ta feuille :
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target
Case "texte 1"
Target.Interior.ColorIndex = 3
Case "texte 2"
Target.Interior.ColorIndex = 4
Case "texte 3"
Target.Interior.ColorIndex = 5
Case "texte 4"
Target.Interior.ColorIndex = 6
Case "texte 5"
Target.Interior.ColorIndex = 7
Case "texte 6"
Target.Interior.ColorIndex = 8
Case "texte 7"
Target.Interior.ColorIndex = 9
Case Else
Target.Interior.ColorIndex = 0
End Select
End Sub
Si toutes les feuilles du classeur sont concernées, utilise les mêmes ligne
de code dans l'évennement "Private Sub Workbook_SheetChange".
Hervé.
"L" <lionel.barrand@gmail.com> a écrit dans le message de news:
uqRzWBhoHHA.3460@TK2MSFTNGP04.phx.gbl...
Bonjour,
Ma question rejoint celle de loulou et je pense bien d'autres.
Je souhaite pour une rangée de celulle A1:D500 par exemple -> si (pour
chaque cellule) la cellule est égale à "texte1" (en chaîne de
caractères) colorier en rouge, "texte2" -> telle couleur, jusqu'à sept
conditions, sinon ne rien faire et passer à la cellule suivante pour
toute ma sélection. Est-il possible de le faire automatiquement de telle
manière que dès que je remplis ma cellule il colore ma cellule qui
répond aux conditions fixées ?
D'avance merci,
Lionel
Bonsoir Lionel,
Un proc (à adapter bien entendu) pour colorer toute un plage :
Sub Colorer()
Dim Tbl() As String
Dim TblCouleur() As Integer
Dim Plage As Range
Dim Cel As Range
Dim Adr As String
Dim I As Integer
'rempli les tableaux pour le test
For I = 1 To 7
ReDim Preserve Tbl(1 To I)
ReDim Preserve TblCouleur(1 To I)
Tbl(I) = "Texte " & I
TblCouleur(I) = I + 2
Next I
'la plage est dans la feuille "Feuil1"
'et part de A1 à la dernière cellule
'de la colonne D
With Worksheets("Feuil1")
Set Plage = .Range(.[A1], .[D65536].End(3))
End With
'recherche la valeur de chaque élément
'du tableau
For I = 1 To UBound(Tbl)
Set Cel = Plage.Find(Tbl(I), , xlValues)
'si trouvée
If Not Cel Is Nothing Then
Adr = Cel.Address
'colore toutes les cellules correspondantes
Do
Cel.Interior.ColorIndex = TblCouleur(I)
Set Cel = Plage.FindNext(Cel)
Loop While Cel.Address <> Adr
End If
Next I
Set Cel = Nothing
Set Plage = Nothing
Erase Tbl
End Sub
Si tu veux que la cellule active soit colorée après un changement de valeur,
à mettre dans le module de ta feuille :
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target
Case "texte 1"
Target.Interior.ColorIndex = 3
Case "texte 2"
Target.Interior.ColorIndex = 4
Case "texte 3"
Target.Interior.ColorIndex = 5
Case "texte 4"
Target.Interior.ColorIndex = 6
Case "texte 5"
Target.Interior.ColorIndex = 7
Case "texte 6"
Target.Interior.ColorIndex = 8
Case "texte 7"
Target.Interior.ColorIndex = 9
Case Else
Target.Interior.ColorIndex = 0
End Select
End Sub
Si toutes les feuilles du classeur sont concernées, utilise les mêmes ligne
de code dans l'évennement "Private Sub Workbook_SheetChange".
Hervé.
"L" a écrit dans le message de news:Bonjour,
Ma question rejoint celle de loulou et je pense bien d'autres.
Je souhaite pour une rangée de celulle A1:D500 par exemple -> si (pour
chaque cellule) la cellule est égale à "texte1" (en chaîne de
caractères) colorier en rouge, "texte2" -> telle couleur, jusqu'à sept
conditions, sinon ne rien faire et passer à la cellule suivante pour
toute ma sélection. Est-il possible de le faire automatiquement de telle
manière que dès que je remplis ma cellule il colore ma cellule qui
répond aux conditions fixées ?
D'avance merci,
Lionel
me réponse précédente un poil rapide. Cela foncitonne bien pour "texte
1", "texte 2", etc.
Je me suis ma expliqué.
Mes conditions à vérifier sont :"zoom", "rotate", "cut", filter",
"translation" et non littéralement "texte 1", "texte 2", etc.
Merci,
LionelBonsoir Lionel,
Un proc (à adapter bien entendu) pour colorer toute un plage :
Sub Colorer()
Dim Tbl() As String
Dim TblCouleur() As Integer
Dim Plage As Range
Dim Cel As Range
Dim Adr As String
Dim I As Integer
'rempli les tableaux pour le test
For I = 1 To 7
ReDim Preserve Tbl(1 To I)
ReDim Preserve TblCouleur(1 To I)
Tbl(I) = "Texte " & I
TblCouleur(I) = I + 2
Next I
'la plage est dans la feuille "Feuil1"
'et part de A1 à la dernière cellule
'de la colonne D
With Worksheets("Feuil1")
Set Plage = .Range(.[A1], .[D65536].End(3))
End With
'recherche la valeur de chaque élément
'du tableau
For I = 1 To UBound(Tbl)
Set Cel = Plage.Find(Tbl(I), , xlValues)
'si trouvée
If Not Cel Is Nothing Then
Adr = Cel.Address
'colore toutes les cellules correspondantes
Do
Cel.Interior.ColorIndex = TblCouleur(I)
Set Cel = Plage.FindNext(Cel)
Loop While Cel.Address <> Adr
End If
Next I
Set Cel = Nothing
Set Plage = Nothing
Erase Tbl
End Sub
Si tu veux que la cellule active soit colorée après un changement de
valeur,
à mettre dans le module de ta feuille :
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target
Case "texte 1"
Target.Interior.ColorIndex = 3
Case "texte 2"
Target.Interior.ColorIndex = 4
Case "texte 3"
Target.Interior.ColorIndex = 5
Case "texte 4"
Target.Interior.ColorIndex = 6
Case "texte 5"
Target.Interior.ColorIndex = 7
Case "texte 6"
Target.Interior.ColorIndex = 8
Case "texte 7"
Target.Interior.ColorIndex = 9
Case Else
Target.Interior.ColorIndex = 0
End Select
End Sub
Si toutes les feuilles du classeur sont concernées, utilise les mêmes
ligne
de code dans l'évennement "Private Sub Workbook_SheetChange".
Hervé.
"L" a écrit dans le message de news:Bonjour,
Ma question rejoint celle de loulou et je pense bien d'autres.
Je souhaite pour une rangée de celulle A1:D500 par exemple -> si (pour
chaque cellule) la cellule est égale à "texte1" (en chaîne de
caractères) colorier en rouge, "texte2" -> telle couleur, jusqu'à sept
conditions, sinon ne rien faire et passer à la cellule suivante pour
toute ma sélection. Est-il possible de le faire automatiquement de
telle
manière que dès que je remplis ma cellule il colore ma cellule qui
répond aux conditions fixées ?
D'avance merci,
Lionel
me réponse précédente un poil rapide. Cela foncitonne bien pour "texte
1", "texte 2", etc.
Je me suis ma expliqué.
Mes conditions à vérifier sont :"zoom", "rotate", "cut", filter",
"translation" et non littéralement "texte 1", "texte 2", etc.
Merci,
Lionel
Bonsoir Lionel,
Un proc (à adapter bien entendu) pour colorer toute un plage :
Sub Colorer()
Dim Tbl() As String
Dim TblCouleur() As Integer
Dim Plage As Range
Dim Cel As Range
Dim Adr As String
Dim I As Integer
'rempli les tableaux pour le test
For I = 1 To 7
ReDim Preserve Tbl(1 To I)
ReDim Preserve TblCouleur(1 To I)
Tbl(I) = "Texte " & I
TblCouleur(I) = I + 2
Next I
'la plage est dans la feuille "Feuil1"
'et part de A1 à la dernière cellule
'de la colonne D
With Worksheets("Feuil1")
Set Plage = .Range(.[A1], .[D65536].End(3))
End With
'recherche la valeur de chaque élément
'du tableau
For I = 1 To UBound(Tbl)
Set Cel = Plage.Find(Tbl(I), , xlValues)
'si trouvée
If Not Cel Is Nothing Then
Adr = Cel.Address
'colore toutes les cellules correspondantes
Do
Cel.Interior.ColorIndex = TblCouleur(I)
Set Cel = Plage.FindNext(Cel)
Loop While Cel.Address <> Adr
End If
Next I
Set Cel = Nothing
Set Plage = Nothing
Erase Tbl
End Sub
Si tu veux que la cellule active soit colorée après un changement de
valeur,
à mettre dans le module de ta feuille :
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target
Case "texte 1"
Target.Interior.ColorIndex = 3
Case "texte 2"
Target.Interior.ColorIndex = 4
Case "texte 3"
Target.Interior.ColorIndex = 5
Case "texte 4"
Target.Interior.ColorIndex = 6
Case "texte 5"
Target.Interior.ColorIndex = 7
Case "texte 6"
Target.Interior.ColorIndex = 8
Case "texte 7"
Target.Interior.ColorIndex = 9
Case Else
Target.Interior.ColorIndex = 0
End Select
End Sub
Si toutes les feuilles du classeur sont concernées, utilise les mêmes
ligne
de code dans l'évennement "Private Sub Workbook_SheetChange".
Hervé.
"L" <lionel.barrand@gmail.com> a écrit dans le message de news:
uqRzWBhoHHA.3460@TK2MSFTNGP04.phx.gbl...
Bonjour,
Ma question rejoint celle de loulou et je pense bien d'autres.
Je souhaite pour une rangée de celulle A1:D500 par exemple -> si (pour
chaque cellule) la cellule est égale à "texte1" (en chaîne de
caractères) colorier en rouge, "texte2" -> telle couleur, jusqu'à sept
conditions, sinon ne rien faire et passer à la cellule suivante pour
toute ma sélection. Est-il possible de le faire automatiquement de
telle
manière que dès que je remplis ma cellule il colore ma cellule qui
répond aux conditions fixées ?
D'avance merci,
Lionel
me réponse précédente un poil rapide. Cela foncitonne bien pour "texte
1", "texte 2", etc.
Je me suis ma expliqué.
Mes conditions à vérifier sont :"zoom", "rotate", "cut", filter",
"translation" et non littéralement "texte 1", "texte 2", etc.
Merci,
LionelBonsoir Lionel,
Un proc (à adapter bien entendu) pour colorer toute un plage :
Sub Colorer()
Dim Tbl() As String
Dim TblCouleur() As Integer
Dim Plage As Range
Dim Cel As Range
Dim Adr As String
Dim I As Integer
'rempli les tableaux pour le test
For I = 1 To 7
ReDim Preserve Tbl(1 To I)
ReDim Preserve TblCouleur(1 To I)
Tbl(I) = "Texte " & I
TblCouleur(I) = I + 2
Next I
'la plage est dans la feuille "Feuil1"
'et part de A1 à la dernière cellule
'de la colonne D
With Worksheets("Feuil1")
Set Plage = .Range(.[A1], .[D65536].End(3))
End With
'recherche la valeur de chaque élément
'du tableau
For I = 1 To UBound(Tbl)
Set Cel = Plage.Find(Tbl(I), , xlValues)
'si trouvée
If Not Cel Is Nothing Then
Adr = Cel.Address
'colore toutes les cellules correspondantes
Do
Cel.Interior.ColorIndex = TblCouleur(I)
Set Cel = Plage.FindNext(Cel)
Loop While Cel.Address <> Adr
End If
Next I
Set Cel = Nothing
Set Plage = Nothing
Erase Tbl
End Sub
Si tu veux que la cellule active soit colorée après un changement de
valeur,
à mettre dans le module de ta feuille :
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target
Case "texte 1"
Target.Interior.ColorIndex = 3
Case "texte 2"
Target.Interior.ColorIndex = 4
Case "texte 3"
Target.Interior.ColorIndex = 5
Case "texte 4"
Target.Interior.ColorIndex = 6
Case "texte 5"
Target.Interior.ColorIndex = 7
Case "texte 6"
Target.Interior.ColorIndex = 8
Case "texte 7"
Target.Interior.ColorIndex = 9
Case Else
Target.Interior.ColorIndex = 0
End Select
End Sub
Si toutes les feuilles du classeur sont concernées, utilise les mêmes
ligne
de code dans l'évennement "Private Sub Workbook_SheetChange".
Hervé.
"L" a écrit dans le message de news:Bonjour,
Ma question rejoint celle de loulou et je pense bien d'autres.
Je souhaite pour une rangée de celulle A1:D500 par exemple -> si (pour
chaque cellule) la cellule est égale à "texte1" (en chaîne de
caractères) colorier en rouge, "texte2" -> telle couleur, jusqu'à sept
conditions, sinon ne rien faire et passer à la cellule suivante pour
toute ma sélection. Est-il possible de le faire automatiquement de
telle
manière que dès que je remplis ma cellule il colore ma cellule qui
répond aux conditions fixées ?
D'avance merci,
Lionel