nasilo
Messages postés34Date d'inscriptionvendredi 18 avril 2008StatutMembreDernière intervention27 février 2009
-
23 févr. 2009 à 14:10
cnt
Messages postés219Date d'inscriptionlundi 21 novembre 2005StatutMembreDernière intervention20 décembre 2010
-
24 févr. 2009 à 16:13
Bonjour,
A l'aide de VBA, j'essaie de colorier de la même couleur des cellules qui ont une même valeur dans une base de données excel 2003. Voici le code que j'essaie et qui ne fonctionne pas. Où commets-je l'erreur ?
Merci beaucoup à celles ou ceux qui me mettront sur la voie.
Sub AP_met_couleur_cell_identique()
Application.ScreenUpdating = False
toto = 6
For Each cell In Range("B5:Z30")
If cell.Value = "" Then
cell.Interior.ColorIndex = xlNone
Else
v1 = cell.Value
For Each celll In Range("B5:Z30")
v2 = celll.Value
If v1 = v2 Then
cell.Interior.ColorIndex = toto
celll.Interior.ColorIndex = toto
End If
Next
End If
toto = toto + 8
Next
End Sub
A voir également:
Rechercher les cellules contenant une meme valeur dans dans une feuille et les c
cnt
Messages postés219Date d'inscriptionlundi 21 novembre 2005StatutMembreDernière intervention20 décembre 20101 24 févr. 2009 à 16:13
Bonjour
Au vue de l'erreur qui apparait chez toi, il me semble que tu n'appliques pas le Modulo des 56 couleurs du format des cellules de ta sélection.
Parce que 51 + 6 = 57, donc il y a dépassement de ColorIndex.
Chez moi je colorie bien les 56 couleurs sur 56 cellules contenants des valeurs différentes.
cnt
Messages postés219Date d'inscriptionlundi 21 novembre 2005StatutMembreDernière intervention20 décembre 20101 23 févr. 2009 à 22:06
Bonsoir Nasilo
Je te soumets la version corrigée
Sub AP_met_couleur_cell_identique()
Application.ScreenUpdating = False
toto = 6
For Each cell In Range("B5:Z30
")
If cell.Value = "" Then
cell.Interior.ColorIndex = xlNone
Else
v1 = cell.Value
For Each celll In Range("B5:Z30
")
If celll.Value = "" Then
celll.Interior.ColorIndex = xlNone
Else
v2 = celll.Value
If v1 = v2 Then
cell.Interior.ColorIndex =
toto
celll.Interior.ColorIndex =
toto
End If
End If
Next
End If
toto
=
toto
Mod 56 -----> il n'y a que 56 couleurs
toto
=
toto
+ 1
If
toto
= 1 Then
toto
= 2
Next
Application.ScreenUpdating = True
End Sub
userrrqi115
Messages postés181Date d'inscriptionmardi 18 novembre 2008StatutMembreDernière intervention 4 février 2011 24 févr. 2009 à 13:37
Hello,
Juste un avis à donner concernant les limites : si il n'existe que 56 couleurs, je pense que ton coloriage n'acceptera pas plus de 28 données différentes multiples (par exemple une plage de 60 cellule dont 4 ont des valeurs unique et dont 56 vont par paire).
Ton code va passer 2 fois sur les 2 cellules partageant la même valeur, 3 fois s'il s'agit de3 cellules, 4fois...
Lors de la sélection de ta variable v1, peut-être qu'un test sur la couleur de la cellule avant sélection pourrait être utile afin de ne pas recolorier ce qui l'est déjà.
nasilo
Messages postés34Date d'inscriptionvendredi 18 avril 2008StatutMembreDernière intervention27 février 2009 24 févr. 2009 à 13:51
bonjour,
J'ai effectivement un problème...
La macro arrête son éxécution au bout de 51 cellules... et une erreur d'éxécution '1004' m'est signalée (impossible de définir la propriété colorindex de la classe interior). De plus je me retrouve néanmoins avec des cellules ne contenant pas la même valeur coloriée d'une même couleur parmi les cinquantes et une cellules...
Il va me falloir aborder le problème d'une autre manière je pense ou trouver une autre méthode qu'interior.colorindex pour ce projet ...
merci de votre aide et bonne après-midi .