"dataPV" est bien la bonen feuille sur laquelle je fais plein d'autres trucs avant et après...
Les lignes et colonnes sont celles de la celulle "courante"...
Mais, voilà, ça ne marche pas!?!
J'ai le message d'erreur suivant:
Erreur d'exécution '1004':
Impossible de définir la propriété ColorIndex de la classe Interior.
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 1 oct. 2005 à 17:30
Bonjour,
Merci de l'envoi. Le fichier me marque aussi le problème expliqué... MAIS ! la raison du problème est déjà une incompréhension. Le code n'est pas exécuté à partir d'une Userform, mais à partir d'un bouton placé sur une feuille de calcul... Cela fait toute la différence, car il faut gérer le pb de focus. En effet, le fait d'appuyer sur le bouton, alors le focus placé sur la case active (en principe) se place sur le bouton. Or "cells.interior" a bessoin d'un focus actif pour s'appliquer... et voilà la cause du problème...
CDAlstom
Messages postés69Date d'inscriptionmercredi 21 septembre 2005StatutMembreDernière intervention 6 mars 2006 26 sept. 2005 à 21:12
(Answers)
1. Si c'est par rapport aux limitations d'Excel (genre 256 colonnes), a priori, le pb ne vient pas de là...
2. "protégée", c'est-à-dire? On peut définir des niveaux de protections qui empêcheraient certaines manip avec du code vba...? Si oui, à la limite je peux enlever toutes les protections pour essayer mais où se trouve ce réglage...?
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 26 sept. 2005 à 21:43
Bonsoir,
Pour l'histoire de la protection de la feuille, c'est dans Outils > Protections , tout simplement... et de plus, j'ai vérifié qu'une feuille protéger génére l'erreur cité avec ton code. CanisLupus a sûrement visé juste...
Amicalement,
Us.
Vous n’avez pas trouvé la réponse que vous recherchez ?
CDAlstom
Messages postés69Date d'inscriptionmercredi 21 septembre 2005StatutMembreDernière intervention 6 mars 2006 27 sept. 2005 à 09:15
Bon, je comprends pas...
J'ai regardé cette histoire de protection de la feuille mais il n'y avait aucune protection... En en mettant, on a bien un message comme tu as du le voir "Us" mais ce n'est pas celui dont je parle au début, le mien est:
"Erreur d'exécution '1004':
Impossible de définir la propriété ColorIndex de la classe Interior."
J'ai donc cette erreur alors que la feuille (ou même le classeur) n'est pas protégé...
De plus, j'ai essayé sur un autre PC et là, il n'y a pas de pb mais il faut que ça marche sur celui-là...
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 27 sept. 2005 à 21:51
Bonsoir,
STOP ! Quand la feuille est protégée l'erreur d'exécution qui se produit est belle et bien l'erreur 1004 ! exactement comme tu l'as écris :
"Erreur d'exécution '1004':
Impossible de définir la propriété ColorIndex de la classe Interior."
=
Avançons par étape pour isoler le problème.
Je suis sûr que le problème se situe autour de la protection... Vérifie de nouveau, Outils > Protections et regarde si dans les 3 menus présents, il y en a au moins un qui commence par "Ôter la protection" ... donc cliquer dessus.
Ensuite, test si tu peux mettre dans excel une case avec une couleur de fond normalement (donc sans passer par une macro). Si il y a une protection, alors c'est impossible. C'est donc un autre moyen de voir...
Essaye de faire une macro, par l'enregistreur (bouton rond = RECord). En principe la macro contiendra ce code :
Sub Macro3()
Range("C3").Select
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
End Sub
Si la macro se construit sans problème, alors tout doit fonctionner.
=
Dernière alternative pour localiser le problème, c'est d'ouvrir un nouveau classeur, et d'essayer la macro ci-dessus, par exemple...
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200621 27 sept. 2005 à 22:11
us_30, je suis bien ok avec toi, mais bon, si CDAlstom dit que ce n'est pas ça, ou il se trompe ou il y a autre chose (j'ai eu tellement de surprises avec vba Excel). Je te laisse poursuivre cette discussion, ma compétence en VBA Excel s'arrête là.
-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
CDAlstom
Messages postés69Date d'inscriptionmercredi 21 septembre 2005StatutMembreDernière intervention 6 mars 2006 28 sept. 2005 à 08:49
A "CanisLupus":
Tu as comme ref: (avec excel 97)
Visual Basic For Applications
Microsoft Excel 8.0 Object Library
OLE Automation
Microsoft Forms 2.0 Object Library
Microsoft Office 8.0 Object Library
CDAlstom
Messages postés69Date d'inscriptionmercredi 21 septembre 2005StatutMembreDernière intervention 6 mars 2006 28 sept. 2005 à 09:06
Par contre, pour contourner le problème, je pourrai utiliser "Range"...
Mais étant donné que je veux travailler sur une feuille précise on va dire "MaFeuil" et que je veux mettre la cellule (i,j) (i et j sont des variables), quelle sera la syntaxe...?
Parce que ça, Range(Worksheets("Mafeuil").Cells(i, j)).Select marche pas...
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 28 sept. 2005 à 22:53
Bonsoir,
La seule hypothèse que je vois, c'est un "dysfonctionnement" dans l'interprétation du code de CommandButton, mais bon, c'est pas clair... Faudrait-il réinstalller Excel ?... faute de savoir quel composant est en cause... je pense que c'est à essayer, en désinstallant correctement excel, avant son réinstallation.
Cette hypothèse se justifie par le fait que pour moi (comme pour CanisLupus) le code que tu proposes fonctionne parfaitement... et si j'ai bien compris, tu l'as aussi "essayé sur un autre PC et là, il n'y a pas de pb" (ton post du 27/9)... Donc, il n'y que sur ton PC actuel où le problème se pose. Ce n'est donc pas un problème de programmation en soit. Chercher une solution de contournement, n'est pas une vraie solution, car d'autres pb paradoxaux pourront survenir...
Amicalement,
Us.
PS : Sinon, dans ton idée de contournement, comme avec la macro ça marche, tu pourrais essayer avec un appel à la macro justement... En clair :
Dans ton userform,
Private Sub CommandButton1_Click()
Call Macro1
End Sub
Dans un module,
Sub Macro1()
Worksheets("feuil1").Cells(2, 3).Interior.ColorIndex = 2
End Sub
CDAlstom
Messages postés69Date d'inscriptionmercredi 21 septembre 2005StatutMembreDernière intervention 6 mars 2006 29 sept. 2005 à 08:53
L'appel à la macro cause la même erreur...
C'est donc un problème "piouuu"...
Mais, au fait, ça me fait la même chose avec mon autre outils de travail qui est un pc portable avec aussi excel 97...
Ce serai qd mm dingue tant la fonction est simple et nécessaire, tant il y a eu des millions d'utilisateurs d'excel 97 que ce problème viennzent de la version d'excel...
Prace que avec 2000 ou 2003, ça marche...
Je me demande si c'est pas parce que je ne suis pas administrateur sur ces 2 postes avec excel 97... mais bon!
En tout cas, j'attends la MAJ de 97 vers 2000 quoi...
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 1 oct. 2005 à 22:13
Euh... je ne sais pas, il faudrait que je teste... mais comme tu l'as déjà fait...
Amicalement,
Us.
PS : Si le fichier que je t'ai renvoyé, réponds bien à ta question, je t'invite à marquer "réponse acceptée", qu'ainsi à CanisLupus car telle que la question était posée, sa réponse est juste... La protection de la feuille, déclenche exactement le même message.
CDAlstom
Messages postés69Date d'inscriptionmercredi 21 septembre 2005StatutMembreDernière intervention 6 mars 2006 3 oct. 2005 à 09:04
La solution d'activer la feuille et de sélectionner la cellule avant de faire ce qu'on a à faire fonctionne bien avec excel 97 (avec 2000 et 2003 aussi)...
Bon, pour que ça marche avec 97, il me faut 3 lignes au lieu d'une, ça va pour ce cas mais heureusement que c'est pas comme ça pour tout car un code de 3000 lignes au lieu de 1000, ça change!