Macro ne fonctionne pas

jeje3500 Messages postés 4 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 18 août 2010 - 18 août 2010 à 11:48
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 18 août 2010 à 14:51
j'ai crée une boucle mais j'ai un probleme (code erreur 9)
pourriez-vous m'aider
Sub Automatisation_Couleur_Ligne()
'
' Automatisation_Couleur_Ligne Macro
' Automatisation de la couleur de la ligne (A-->G) selon le contenu de la cellule E
'

' Dim i As Integer
Dim C1 As String
Dim C2 As String

For i = 1 To 50

C1 = "A" & i & "G" & i
C2 = "$E$" & i

Range("C1").Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=C2=""Non"""
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
.Color = -16776961 (la macro s'arrete ici)
.TintAndShade = 0
End With
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 6750054
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = True
Next i
End Sub

2 réponses

the_little_big_man Messages postés 86 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 14 février 2011
18 août 2010 à 13:03
tu initialise C1 = "A" & i & "G" & i mais quand tu selectionne tu fais range("C1").select.

si ton but est de selectionne la cellule C1 c'est correct.
si tu veux selectioner la ligne A1:G1
C1="A" & i &":G"&i
Range(C1).select

voila
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
18 août 2010 à 14:51
Salut

Et <le code> que je t'ai gracieusement proposé ne te plaisait pas ?
Elle était pourtant beaucoup plus claire - il ne restait plus qu'à la modifier pour insérer tes instructions de ConditionalColor ...

Je vois que tu ne lis pas les réponses à tes questions :
Cela fait deux fois qu'on te demande d'utiliser le coloriage syntaxique : Il te suffit de sélectionner le code que tu viens de coller et l'aller cliquer sur la 3ème icone à droite en choisissant VB - ce n'est pas compliqué, quand même ?

Pour ton code :
-1- Nommer une variable comme une référence de cellule est très audacieux (et maladroit).
Et tu es tombé dans le panneau :
Range("C1").Select 
Avec cette instruction, tu sélectionnes la cellule C1, pas l'adresse C1 que tu viens de préparer !
Range(C1).Select


-2- Color
D'où vient ce chiffre ?
Quelle couleur représente t-il ?
Mieux vaut conserver la notation hexadécimale, genre &HFF0000FF&, plutôt que sa représentation décimale -16776961, mais des couleurs qui commencent par FF, je ne sais pas où tu as trouvé ça ...
Pense aussi aux traditionnels vbBlack, vbRed, vbGreen, vbBlue, vbYellow ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Rejoignez-nous