...exécute cette proc et tu sauras tout tout tout sur l'index des
couleurs...
Sub paletteCouleurs()
For i = 1 To 56
With Cells(i, 1).Interior
.ColorIndex = i
End With
Next
J'ai fusionné les cellules A1 à A56 et j'ai lancé cette macro.
Pas de surprise : toute la zone a été colorée en noir.
J'ai ensuite défusionné cette zone, et là :
Surprise : les couleurs ont apparu.
bonjour jacques rajoute ceci avant le End Sub et tu ne vois plus le 0
Cells(4, 4).Font.ColorIndex = 2
pourquoi 0? parce que quand la variable "i" = 4, il est quasiment obligatoire, même dans le beaujolais, que i - 4 = 0... et même *10, ça fait toujours 0....maintenant, comme je ne comprends rien à ce *10, si ça pouvait être un nouvel effet de la bonté de pierre de me l'expliquer.... à suivre jps
"JacquesH" a écrit dans le message de news:
Bonjour Pierre,
Merci beaucoup, cela fonctionne très bien et c'est exactement ce que je voulais.
Il y a cependant un 0 qui apparaît. Ce n'est pas grave, il est facile à faire disparaître, mais est-ce normal ?
Jacques
Bonjour
Tu dois itérer sur les numéros de ligne et les numéros de colonne.
Dès lors, il faut recalculer l'index des couleurs, en considérant que dans
ta plage, tu as plus de 57 cellules. Il y avait moyen d'utiliser une troisième variable pour l'index de couleur, mais j'ai préféré faire le calcul en partant de i et j, pour l'exemple et surtout pour le plaisir...
;-)
Voici une macro qui fait cela
Sub Test() Dim i As Long, j As Long Dim Couleur_Index As Long
For i = 4 To 11 ' Lignes 4 à 11 For j = 4 To 10 'Colonnes D à J Couleur_Index = (((i - 4) * 10) + (j - 4)) Mod 57 Cells(i, j).Interior.ColorIndex = Couleur_Index Cells(i, j) = Couleur_Index Next j Next i End Sub
Cela étant, l'astuce de Patrick ne fonctionne que si les cellules sont fusionnées avant de spécifier la couleur pour chaque cellule.
Ok?
bonjour jacques
rajoute ceci avant le End Sub et tu ne vois plus le 0
Cells(4, 4).Font.ColorIndex = 2
pourquoi 0? parce que quand la variable "i" = 4, il est quasiment
obligatoire, même dans le beaujolais, que i - 4 = 0...
et même *10, ça fait toujours 0....maintenant, comme je ne comprends rien à
ce *10, si ça pouvait être un nouvel effet de la bonté de pierre de me
l'expliquer....
à suivre
jps
"JacquesH" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:uYXAgKcYFHA.252@TK2MSFTNGP12.phx.gbl...
Bonjour Pierre,
Merci beaucoup, cela fonctionne très bien et c'est exactement ce que je
voulais.
Il y a cependant un 0 qui apparaît. Ce n'est pas grave, il est facile à
faire disparaître, mais est-ce normal ?
Jacques
Bonjour
Tu dois itérer sur les numéros de ligne et les numéros de colonne.
Dès lors, il faut recalculer l'index des couleurs, en considérant que
dans
ta plage, tu as plus de 57 cellules. Il y avait moyen d'utiliser une
troisième variable pour l'index de couleur, mais j'ai préféré faire le
calcul en partant de i et j, pour l'exemple et surtout pour le
plaisir...
;-)
Voici une macro qui fait cela
Sub Test()
Dim i As Long, j As Long
Dim Couleur_Index As Long
For i = 4 To 11 ' Lignes 4 à 11
For j = 4 To 10 'Colonnes D à J
Couleur_Index = (((i - 4) * 10) + (j - 4)) Mod 57
Cells(i, j).Interior.ColorIndex = Couleur_Index
Cells(i, j) = Couleur_Index
Next j
Next i
End Sub
Cela étant, l'astuce de Patrick ne fonctionne que si les cellules sont
fusionnées avant de spécifier la couleur pour chaque cellule.
bonjour jacques rajoute ceci avant le End Sub et tu ne vois plus le 0
Cells(4, 4).Font.ColorIndex = 2
pourquoi 0? parce que quand la variable "i" = 4, il est quasiment obligatoire, même dans le beaujolais, que i - 4 = 0... et même *10, ça fait toujours 0....maintenant, comme je ne comprends rien à ce *10, si ça pouvait être un nouvel effet de la bonté de pierre de me l'expliquer.... à suivre jps
"JacquesH" a écrit dans le message de news:
Bonjour Pierre,
Merci beaucoup, cela fonctionne très bien et c'est exactement ce que je voulais.
Il y a cependant un 0 qui apparaît. Ce n'est pas grave, il est facile à faire disparaître, mais est-ce normal ?
Jacques
Bonjour
Tu dois itérer sur les numéros de ligne et les numéros de colonne.
Dès lors, il faut recalculer l'index des couleurs, en considérant que dans
ta plage, tu as plus de 57 cellules. Il y avait moyen d'utiliser une troisième variable pour l'index de couleur, mais j'ai préféré faire le calcul en partant de i et j, pour l'exemple et surtout pour le plaisir...
;-)
Voici une macro qui fait cela
Sub Test() Dim i As Long, j As Long Dim Couleur_Index As Long
For i = 4 To 11 ' Lignes 4 à 11 For j = 4 To 10 'Colonnes D à J Couleur_Index = (((i - 4) * 10) + (j - 4)) Mod 57 Cells(i, j).Interior.ColorIndex = Couleur_Index Cells(i, j) = Couleur_Index Next j Next i End Sub
Cela étant, l'astuce de Patrick ne fonctionne que si les cellules sont fusionnées avant de spécifier la couleur pour chaque cellule.
Ok?
Pierre Fauconnier
Salut JPS,
En fait, j'ai fait très compliqué là ou GeeDee a fait très simple
En considérant que i reprenait la ligne et j la colonne, il fallait qu'une combinaison de i et j me donne les index de 0 à 56
Cela permet de créer une suite comme suit... i j Résultat 4 4 0 4 5 1 4 6 2 4 7 3 4 8 4 4 9 5 4 10 6 5 4 10 5 5 11 5 6 12 5 7 13 5 8 14 5 9 15 ...
Mais comme, d'une part, on pouvait itérer sur une variable indépendante des lignes et colonnes, et comme d'autre part Excel comprend que quand tu mets colorindex = 60, il doit lirecolorindex = 3 ( 60-57 puisqu'il y a 57 couleurs( 0 à 56)), mon clacul savant et mon modulo deviennent totalement inutiles...
"jps" a écrit dans le message de news: eb$
bonjour jacques rajoute ceci avant le End Sub et tu ne vois plus le 0
Cells(4, 4).Font.ColorIndex = 2
pourquoi 0? parce que quand la variable "i" = 4, il est quasiment obligatoire, même dans le beaujolais, que i - 4 = 0... et même *10, ça fait toujours 0....maintenant, comme je ne comprends rien à ce *10, si ça pouvait être un nouvel effet de la bonté de pierre de me l'expliquer.... à suivre jps
"JacquesH" a écrit dans le message de news:
Bonjour Pierre,
Merci beaucoup, cela fonctionne très bien et c'est exactement ce que je voulais.
Il y a cependant un 0 qui apparaît. Ce n'est pas grave, il est facile à faire disparaître, mais est-ce normal ?
Jacques
Bonjour
Tu dois itérer sur les numéros de ligne et les numéros de colonne.
Dès lors, il faut recalculer l'index des couleurs, en considérant que dans
ta plage, tu as plus de 57 cellules. Il y avait moyen d'utiliser une troisième variable pour l'index de couleur, mais j'ai préféré faire le calcul en partant de i et j, pour l'exemple et surtout pour le plaisir...
;-)
Voici une macro qui fait cela
Sub Test() Dim i As Long, j As Long Dim Couleur_Index As Long
For i = 4 To 11 ' Lignes 4 à 11 For j = 4 To 10 'Colonnes D à J Couleur_Index = (((i - 4) * 10) + (j - 4)) Mod 57 Cells(i, j).Interior.ColorIndex = Couleur_Index Cells(i, j) = Couleur_Index Next j Next i End Sub
Cela étant, l'astuce de Patrick ne fonctionne que si les cellules sont fusionnées avant de spécifier la couleur pour chaque cellule.
Ok?
Salut JPS,
En fait, j'ai fait très compliqué là ou GeeDee a fait très simple
En considérant que i reprenait la ligne et j la colonne, il fallait qu'une
combinaison de i et j me donne les index de 0 à 56
Cela permet de créer une suite comme suit...
i j Résultat
4 4 0
4 5 1
4 6 2
4 7 3
4 8 4
4 9 5
4 10 6
5 4 10
5 5 11
5 6 12
5 7 13
5 8 14
5 9 15
...
Mais comme, d'une part, on pouvait itérer sur une variable indépendante des
lignes et colonnes, et comme d'autre part Excel comprend que quand tu mets
colorindex = 60, il doit lirecolorindex = 3 ( 60-57 puisqu'il y a 57
couleurs( 0 à 56)), mon clacul savant et mon modulo deviennent totalement
inutiles...
"jps" <adresse@ntiscud> a écrit dans le message de news:
eb$blscYFHA.3840@tk2msftngp13.phx.gbl...
bonjour jacques
rajoute ceci avant le End Sub et tu ne vois plus le 0
Cells(4, 4).Font.ColorIndex = 2
pourquoi 0? parce que quand la variable "i" = 4, il est quasiment
obligatoire, même dans le beaujolais, que i - 4 = 0...
et même *10, ça fait toujours 0....maintenant, comme je ne comprends rien
à
ce *10, si ça pouvait être un nouvel effet de la bonté de pierre de me
l'expliquer....
à suivre
jps
"JacquesH" <anonymous@discussions.microsoft.com> a écrit dans le message
de
news:uYXAgKcYFHA.252@TK2MSFTNGP12.phx.gbl...
Bonjour Pierre,
Merci beaucoup, cela fonctionne très bien et c'est exactement ce que je
voulais.
Il y a cependant un 0 qui apparaît. Ce n'est pas grave, il est facile à
faire disparaître, mais est-ce normal ?
Jacques
Bonjour
Tu dois itérer sur les numéros de ligne et les numéros de colonne.
Dès lors, il faut recalculer l'index des couleurs, en considérant que
dans
ta plage, tu as plus de 57 cellules. Il y avait moyen d'utiliser une
troisième variable pour l'index de couleur, mais j'ai préféré faire le
calcul en partant de i et j, pour l'exemple et surtout pour le
plaisir...
;-)
Voici une macro qui fait cela
Sub Test()
Dim i As Long, j As Long
Dim Couleur_Index As Long
For i = 4 To 11 ' Lignes 4 à 11
For j = 4 To 10 'Colonnes D à J
Couleur_Index = (((i - 4) * 10) + (j - 4)) Mod 57
Cells(i, j).Interior.ColorIndex = Couleur_Index
Cells(i, j) = Couleur_Index
Next j
Next i
End Sub
Cela étant, l'astuce de Patrick ne fonctionne que si les cellules sont
fusionnées avant de spécifier la couleur pour chaque cellule.
En fait, j'ai fait très compliqué là ou GeeDee a fait très simple
En considérant que i reprenait la ligne et j la colonne, il fallait qu'une combinaison de i et j me donne les index de 0 à 56
Cela permet de créer une suite comme suit... i j Résultat 4 4 0 4 5 1 4 6 2 4 7 3 4 8 4 4 9 5 4 10 6 5 4 10 5 5 11 5 6 12 5 7 13 5 8 14 5 9 15 ...
Mais comme, d'une part, on pouvait itérer sur une variable indépendante des lignes et colonnes, et comme d'autre part Excel comprend que quand tu mets colorindex = 60, il doit lirecolorindex = 3 ( 60-57 puisqu'il y a 57 couleurs( 0 à 56)), mon clacul savant et mon modulo deviennent totalement inutiles...
"jps" a écrit dans le message de news: eb$
bonjour jacques rajoute ceci avant le End Sub et tu ne vois plus le 0
Cells(4, 4).Font.ColorIndex = 2
pourquoi 0? parce que quand la variable "i" = 4, il est quasiment obligatoire, même dans le beaujolais, que i - 4 = 0... et même *10, ça fait toujours 0....maintenant, comme je ne comprends rien à ce *10, si ça pouvait être un nouvel effet de la bonté de pierre de me l'expliquer.... à suivre jps
"JacquesH" a écrit dans le message de news:
Bonjour Pierre,
Merci beaucoup, cela fonctionne très bien et c'est exactement ce que je voulais.
Il y a cependant un 0 qui apparaît. Ce n'est pas grave, il est facile à faire disparaître, mais est-ce normal ?
Jacques
Bonjour
Tu dois itérer sur les numéros de ligne et les numéros de colonne.
Dès lors, il faut recalculer l'index des couleurs, en considérant que dans
ta plage, tu as plus de 57 cellules. Il y avait moyen d'utiliser une troisième variable pour l'index de couleur, mais j'ai préféré faire le calcul en partant de i et j, pour l'exemple et surtout pour le plaisir...
;-)
Voici une macro qui fait cela
Sub Test() Dim i As Long, j As Long Dim Couleur_Index As Long
For i = 4 To 11 ' Lignes 4 à 11 For j = 4 To 10 'Colonnes D à J Couleur_Index = (((i - 4) * 10) + (j - 4)) Mod 57 Cells(i, j).Interior.ColorIndex = Couleur_Index Cells(i, j) = Couleur_Index Next j Next i End Sub
Cela étant, l'astuce de Patrick ne fonctionne que si les cellules sont fusionnées avant de spécifier la couleur pour chaque cellule.