Coloration des cellules selon le contenu des autres
Fermé
59Bzik
Messages postés
13
Date d'inscription
vendredi 17 août 2018
Statut
Membre
Dernière intervention
22 août 2018
-
21 août 2018 à 10:30
59Bzik Messages postés 13 Date d'inscription vendredi 17 août 2018 Statut Membre Dernière intervention 22 août 2018 - 22 août 2018 à 18:50
59Bzik Messages postés 13 Date d'inscription vendredi 17 août 2018 Statut Membre Dernière intervention 22 août 2018 - 22 août 2018 à 18:50
A voir également:
- Coloration des cellules selon le contenu des autres
- Excel additionner des cellules - Guide
- Verrouiller des cellules excel - Guide
- Fusionner le contenu de 2 cellules excel - Guide
- Le fichier à télécharger correspond au contenu brut d’un courrier électronique. de quel pays a été envoyé ce message ? - Guide
- Word a trouvé du contenu illisible - Guide
3 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
21 août 2018 à 11:30
21 août 2018 à 11:30
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
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
Modifié le 21 août 2018 à 11:43
Modifié le 21 août 2018 à 11:43
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
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
Modifié le 21 août 2018 à 11:55
Modifié le 21 août 2018 à 11:55
Et pour les colonnes (contenant "y") :
Exemple :
https://mon-partage.fr/f/IhDstdyS/
=NB.SI(DECALER(A1;0;-MIN(11;COLONNE(A1)-1);;MIN(12;COLONNE(A1)-1)+12);"y")>0
Exemple :
https://mon-partage.fr/f/IhDstdyS/
59Bzik
Messages postés
13
Date d'inscription
vendredi 17 août 2018
Statut
Membre
Dernière intervention
22 août 2018
21 août 2018 à 17:18
21 août 2018 à 17:18
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
59Bzik
Messages postés
13
Date d'inscription
vendredi 17 août 2018
Statut
Membre
Dernière intervention
22 août 2018
21 août 2018 à 19:56
21 août 2018 à 19:56
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.
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
21 août 2018 à 22:06
21 août 2018 à 22:06
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
59Bzik
Messages postés
13
Date d'inscription
vendredi 17 août 2018
Statut
Membre
Dernière intervention
22 août 2018
22 août 2018 à 18:50
22 août 2018 à 18:50
merci bcp. J'ai copié-collé votre code et je l'ai adapté à mon fichier et ça marche.
21 août 2018 à 16:27