Coloration des cellules selon le contenu des autres
59Bzik
Messages postés
13
Date d'inscription
Statut
Membre
Dernière intervention
-
59Bzik Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
59Bzik Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
Bonjour, j'ai un grand tableau: (A1:TF50).
J'ai créé un code VBA pour que:
lorsque une telle cellule d'une ligne donnée est non vide (G30="×" ,par exemple) je veux que toutes les cellules avant et après; à raison de 12, prennent la couleur rouge. Càd:
Si G30="×" Alors G(30+12 * i ) et G(30-12 *i ) prennent la couleur rouge. ( For i = 0 To 18 par exemple). Le problème c'est que pour le code:
- G(30+12 * i ), les cellules se colorent même après mon tableau.
- G(30 - 12 * i ) le code affiche erreur que les valeurs sont négatives avant la cellules G30 dans la même ligne.
Je veux que la boucle s'arrête avant et après de sortir du tableau (A1:TF50)
Please je cherche une solution.
Et si possible même question: Au lieu de colorier les celles de la même ligne je veux colorier les cellules de la même colonne.
Merci d'avance.
J'ai créé un code VBA pour que:
lorsque une telle cellule d'une ligne donnée est non vide (G30="×" ,par exemple) je veux que toutes les cellules avant et après; à raison de 12, prennent la couleur rouge. Càd:
Si G30="×" Alors G(30+12 * i ) et G(30-12 *i ) prennent la couleur rouge. ( For i = 0 To 18 par exemple). Le problème c'est que pour le code:
- G(30+12 * i ), les cellules se colorent même après mon tableau.
- G(30 - 12 * i ) le code affiche erreur que les valeurs sont négatives avant la cellules G30 dans la même ligne.
Je veux que la boucle s'arrête avant et après de sortir du tableau (A1:TF50)
Please je cherche une solution.
Et si possible même question: Au lieu de colorier les celles de la même ligne je veux colorier les cellules de la même colonne.
Merci d'avance.
A voir également:
- Coloration des cellules selon le contenu des autres
- Fusionner deux cellules excel en gardant le contenu - Guide
- Verrouiller des cellules excel - Guide
- Additionner des cellules excel - Guide
- Word a trouvé du contenu illisible - Guide
- Colorer des cellules excel sous condition - Guide
3 réponses
Bonjour
aA quoi sert le "i" ?
par exemple i=18
18*12= 216.... donc après G30:G246
avant: 30-216= -186 ---> erreur
aA quoi sert le "i" ?
par exemple i=18
18*12= 216.... donc après G30:G246
avant: 30-216= -186 ---> erreur
59Bzik
Messages postés
13
Date d'inscription
Statut
Membre
Dernière intervention
Oui cest ça
Bonjour,
Pas besoin de macro pour cela, avec une mise en forme conditionnelle (MFC) par formule en A1 :
Pas besoin de macro pour cela, avec une mise en forme conditionnelle (MFC) par formule en A1 :
=NB.SI(DECALER(A1;-MIN(11;LIGNE(A1)-1);0;MIN(12;LIGNE(A1)-1)+12);"x")>0s'applique à $A$1:$TF$50
Bjr .Patrice. Merci pour ton aide
Ce que je veux c'est que lorsque par exemple: F15 = "x" alors les cellules qui viennent après F(15+12) puis F( 15+24) puis F(15+36)c'est à dire la F27 et F39 et F51 etc... et celles qui sont avant çàd F(15-12) , (çàd F3) prennent la couleur rouge et non pas toutes les cellules avant et après la F15. Merci bcp
Ce que je veux c'est que lorsque par exemple: F15 = "x" alors les cellules qui viennent après F(15+12) puis F( 15+24) puis F(15+36)c'est à dire la F27 et F39 et F51 etc... et celles qui sont avant çàd F(15-12) , (çàd F3) prennent la couleur rouge et non pas toutes les cellules avant et après la F15. Merci bcp
J'ai utilisé le code vba suivant:
Sub ChangeColor()
Dim i As Integer
Dim j As Integer
Dim k As Integer
For i=9 To 85
For j=10 To 189
For k =1 To 26
If Cells( i , j )= "×" Then
Cells(i + 5 * k , j ).interior.IndexColor = 4
Elseif Cells( i , j )= " " Then
Cells(i + 5 * k , j ).interior.IndexColor = 0
End If
Next k
Next j
Next i
For i=9 To 85
For j=10 To 189
For k =1 To 26
If Cells( i , j )= "×" Then
Cells(i - 5 * k , j ).interior.IndexColor = 4
Elseif Cells( i , j )= " " Then
Cells(i - 5 * k , j ).interior.IndexColor = 0
End If
Next k
Next j
Next i
End Sup
Mais c'est lent pour l'exécution et des cellules qui se colore au delà de mon tableau (C10:KC144)je veux que la boucle s'arrête à la fin du tableau.
Et en plus lorsque Cells(i - 5 * k , j ) prend une valeur négative le code déclare erreur.
Sub ChangeColor()
Dim i As Integer
Dim j As Integer
Dim k As Integer
For i=9 To 85
For j=10 To 189
For k =1 To 26
If Cells( i , j )= "×" Then
Cells(i + 5 * k , j ).interior.IndexColor = 4
Elseif Cells( i , j )= " " Then
Cells(i + 5 * k , j ).interior.IndexColor = 0
End If
Next k
Next j
Next i
For i=9 To 85
For j=10 To 189
For k =1 To 26
If Cells( i , j )= "×" Then
Cells(i - 5 * k , j ).interior.IndexColor = 4
Elseif Cells( i , j )= " " Then
Cells(i - 5 * k , j ).interior.IndexColor = 0
End If
Next k
Next j
Next i
End Sup
Mais c'est lent pour l'exécution et des cellules qui se colore au delà de mon tableau (C10:KC144)je veux que la boucle s'arrête à la fin du tableau.
Et en plus lorsque Cells(i - 5 * k , j ) prend une valeur négative le code déclare erreur.
Re,
Essaies ce code :
Essaies ce code :
Option Explicit Sub ChangeCouleur() Const pas As Byte = 12 Const str As String = "x" Dim rng As Range Dim cel As Range Dim adr As String Dim nL As Long Dim nC As Long Set rng = Me.Range("C10:KC144") rng.Interior.ColorIndex = xlNone Set cel = rng.Find(str) If cel Is Nothing Then Exit Sub adr = cel.Address Do nC = cel.Column - rng.Column + 1 nL = ((cel.Row - rng.Row) Mod pas) + 1 Do rng.Cells(nL, nC).Interior.ColorIndex = 4 nL = nL + pas Loop While nL <= rng.Rows.Count Set cel = rng.FindNext(cel) Loop While cel.Address <> adr End Sub