Une macro simple me plante excel (chgt de couleur de cellule)
UsulArrakis
Messages postés
7405
Date d'inscription
Statut
Contributeur
Dernière intervention
-
UsulArrakis Messages postés 7405 Date d'inscription Statut Contributeur Dernière intervention -
UsulArrakis Messages postés 7405 Date d'inscription Statut Contributeur Dernière intervention -
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
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:
- Une macro simple me plante excel (chgt de couleur de cellule)
- Excel cellule couleur si condition texte - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Proteger cellule excel - Guide
- Excel compter cellule couleur sans vba - Guide
3 réponses
Salut,
Je l'ai testé chez moi (W10, Excel 2016 aussi).
Et ça marche..
Tu l'utilises comment ta macro ?
--
Je l'ai testé chez moi (W10, Excel 2016 aussi).
Et ça marche..
Tu l'utilises comment ta macro ?
--
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 :
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
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
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
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
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
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
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. :)
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. :)
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
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