Macro ne fonctionne pas

Signaler
Messages postés
4
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
18 août 2010
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
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

Messages postés
86
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
14 février 2011

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
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
78
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)