Anomalie dans une macro excel toute simple
Bonjour,
j'ai une macro qui date un peu réalisée au départ pour excel 2003 sous XP
maintenant je suis sous W10 avec excel 2016 et j'ai un message d'erreur sur Interior par rapport à Range
ça freeze excel
si qq'un peut m'aider, je ne suis pas macroteur mais juste utilisateur
merci
Sub ChgCoul(z$)
Dim x%, y%
Select Case z
Case "grisjaune": x = 15: y = 36
Case "grisrien": x = 15: y = none
Case "grisbleu": x = 15: y = 34
Case "grisvert": x = 15: y = 35
Case "grisorange": x = 15: y = 40
Case "vertgris": x = 35: y = 15
Case "vertjaune": x = 35: y = 36
Case "vertbleu": x = 35: y = 34
Case "vertorange": x = 35: y = 40
Case "vertrien": x = 35: y = none
Case "jaunegris": x = 36: y = 15
Case "jaunebleu": x = 36: y = 34
Case "jauneorange": x = 36: y = 40
Case "jaunevert": x = 36: y = 35
Case "jaunerien": x = 36: y = none
Case "bleugris": x = 34: y = 15
Case "bleuvert": x = 34: y = 35
Case "bleujaune": x = 34: y = 36
Case "bleuorange": x = 34: y = 40
Case "bleurien": x = 34: y = none
Case "orangegris": x = 40: y = 15
Case "orangevert": x = 40: y = 35
Case "orangebleu": x = 40: y = 34
Case "orangejaune": x = 40: y = 36
Case "orangerien": x = 40: y = none
End Select
For Each o In Selection
If o.Interior.ColorIndex = x Then o.Interior.ColorIndex = y
Next
End Sub
--
(_Usul d'Arrakis
Serial_Dreamer_)
j'ai une macro qui date un peu réalisée au départ pour excel 2003 sous XP
maintenant je suis sous W10 avec excel 2016 et j'ai un message d'erreur sur Interior par rapport à Range
ça freeze excel
si qq'un peut m'aider, je ne suis pas macroteur mais juste utilisateur
merci
Sub ChgCoul(z$)
Dim x%, y%
Select Case z
Case "grisjaune": x = 15: y = 36
Case "grisrien": x = 15: y = none
Case "grisbleu": x = 15: y = 34
Case "grisvert": x = 15: y = 35
Case "grisorange": x = 15: y = 40
Case "vertgris": x = 35: y = 15
Case "vertjaune": x = 35: y = 36
Case "vertbleu": x = 35: y = 34
Case "vertorange": x = 35: y = 40
Case "vertrien": x = 35: y = none
Case "jaunegris": x = 36: y = 15
Case "jaunebleu": x = 36: y = 34
Case "jauneorange": x = 36: y = 40
Case "jaunevert": x = 36: y = 35
Case "jaunerien": x = 36: y = none
Case "bleugris": x = 34: y = 15
Case "bleuvert": x = 34: y = 35
Case "bleujaune": x = 34: y = 36
Case "bleuorange": x = 34: y = 40
Case "bleurien": x = 34: y = none
Case "orangegris": x = 40: y = 15
Case "orangevert": x = 40: y = 35
Case "orangebleu": x = 40: y = 34
Case "orangejaune": x = 40: y = 36
Case "orangerien": x = 40: y = none
End Select
For Each o In Selection
If o.Interior.ColorIndex = x Then o.Interior.ColorIndex = y
Next
End Sub
--
(_Usul d'Arrakis
Serial_Dreamer_)
2 réponses
-
Bonjour UsulArrakis, bonjour le forum,
Tu dois remplacer tous les « y = none » par : « y = xlNone ».
Si ton problème est réglé, merci d'aller en haut de page
pour cliquer sur « Marquer comme résolu ».
Cordialement. :)-
-
@UsulArrakis
Bonjour UsulArrakis,
À tout hasard, je précise que pour xlNone, entre le x et le N,
ce n'est pas un i majuscule mais un L minuscule. ;)
Car en VBA, le début des noms de constantes Excel est xl (pour Excel).
Si ça a marché, n'oublies pas d'aller en haut de page pour
cliquer sur le lien « Marquer comme résolu ».
Cordialement. :)
-
-
Bonjour UsulArrakis, bonjour le forum,
Peut-être en déclarant la variable o au début :Dim o As Range