Une macro simple me plante excel (chgt de couleur de cellule)

Fermé
UsulArrakis Messages postés 7405 Date d'inscription vendredi 28 mars 2003 Statut Contributeur Dernière intervention 27 janvier 2022 - 24 nov. 2016 à 11:02
UsulArrakis Messages postés 7405 Date d'inscription vendredi 28 mars 2003 Statut Contributeur Dernière intervention 27 janvier 2022 - 25 nov. 2016 à 09:07
Bonjour,
j'ai une (vieille) macro qui date 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



A voir également:

3 réponses

mrjenkins Messages postés 577 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 17 juillet 2018 102
Modifié par mrjenkins le 24/11/2016 à 11:11
Salut,

Je l'ai testé chez moi (W10, Excel 2016 aussi).

Et ça marche..
Tu l'utilises comment ta macro ?

--
0
UsulArrakis Messages postés 7405 Date d'inscription vendredi 28 mars 2003 Statut Contributeur Dernière intervention 27 janvier 2022 3 182
24 nov. 2016 à 11:30
Bonjour mrjenkins
en fait ça plante si je sélectionne toutes les cellules d'un onglet sachant que cet onglet est réduit aux colonnes A à U et aux lignes 1 à 51
si je sélectionne manuellement la plage de cellules ça fonctionne
ce qui est bizarre c'est que avant de passer à excel 2016 ça ne plantait pas
de même si je sélectionnait 12 onglets en même temps
si tu as une idéee
sinon je me débrouille ave une sélection manuelle mais c'est un peu fastidieu
merci
0
mrjenkins Messages postés 577 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 17 juillet 2018 102
24 nov. 2016 à 11:34
Et tu as quoi comme message d'erreur ?

Moi aussi ça freeze si je sélectionne tout, mais ça c'est à cause du nb de cellules sélectionnées.
Peut-être qu'avant, Excel ne sélectionnait que les cellules visibles.. je ne sais pas :s
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
Modifié par eriiic le 24/11/2016 à 11:59
Bonjour,

sachant que cet onglet est réduit aux colonnes A à U et aux lignes 1 à 51
Comment ?
Lignes-colonnes masquées ou ScrollArea ?

de même si je sélectionnait 12 onglets en même temps
Il faut que ça fonctionne également dans ce cas ou c'est juste un exemple ?

Déjà tu peux restreindre à la plage si elle est toujours la même :
For Each o In Intersect(Selection, [A1:U51])

Sinon il faudrait faire autrement selon la réponse aux questions et les différents cas rencontrés que tu exposeras.

eric

En essayant continuellement, on finit par réussir. 
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
0
UsulArrakis Messages postés 7405 Date d'inscription vendredi 28 mars 2003 Statut Contributeur Dernière intervention 27 janvier 2022 3 182
24 nov. 2016 à 12:12
bonjour eriiic
toujours actif sur le forum à ce que je vois. ça faisait longtemps que je n'étais pas venu.

oui pour la sélection des 12 onglets ça prend moins de temps si je peux tous les sélectionner

scrollarea je ne sais pas ce que c'est mais j'ai simplement cette plage de cellules qui est visible. tout le reste des lignes et colonnes n'est pas masqué simplement grisé et non visible. je ne me souviens pas comment j'avais fait ça à l'époque (plus de 10 ans) chaque onglet représente un mois de l'année. je modifie le fichier 1 fois pour l'année suivante

je vais essayer ton code pour restreindre à la plage de cellules concernée
je te tiens au courant
0
UsulArrakis Messages postés 7405 Date d'inscription vendredi 28 mars 2003 Statut Contributeur Dernière intervention 27 janvier 2022 3 182
24 nov. 2016 à 12:20
Bon
sur un onglet, limiter la plage de cellules fonctionne, excel n'a pas planté
si je sélectionne plusieurs onglets la macro ne fonctionne que sur l'onglet actif
c'est satisfaisant pour moi
mais je suis preneur si tu peux faire fonctionner la macro sur les 12 onglets en même temps

encore merci pour ton aide
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
24 nov. 2016 à 14:25
Il faudrait que tu déposes ton fichier anonymisé pour voir et tester dessus.
0
Utilisateur anonyme
24 nov. 2016 à 18:07
Bonjour UsulArrakis, bonjour le forum,

Peut-être que mon message #2 pourra t'aider ?

Si ton problème est réglé, merci d'aller en haut de page
pour cliquer sur « Marquer comme résolu ».

Cordialement. :)
0
UsulArrakis Messages postés 7405 Date d'inscription vendredi 28 mars 2003 Statut Contributeur Dernière intervention 27 janvier 2022 3 182
25 nov. 2016 à 09:07
Bonjour albkan
la solution d'eriiic me convient mais je vais tester la tienne pour voir ce que ça donne
0