? maVariablepour qu'elle s'inscrive dans la fenêtre.
nCouleur = Cells(nLigne, nCol).Interior.ColorIndex
Pour info, la formule fonctionne correctement si je m'amuse avec le filtre hors macros.*
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionDans ESTDOUBLON, tu sembles gérer la détection de défaut quand tu t'adresses à Plage1, mais pas pour Plage2 : Ne connaissant pas la syntaxe d'appel de ta fonction, impossible de t'aider.Je ne gère que l'erreur sur la première plage car si l'un ne fonctionne pas, le 2e qui est identique ne fonctionnera pas mieux.
Sur quelle ligne as-tu cette erreur ?
nCouleur = Plage1.Interior.ColorIndex If (Err.Number > 0) ThenSur celle qui précéde la gestion d'erreur.
? Plage1.Interior.ColorIndexQui déclenche l'erreur 1004 avec le message suivant :
Erreur 1004 Impossible de lire la propriété Interior de la classe Range.
Cells ne se rapporte à aucune feuille précise !J'ai ajouté :
on se demande d''ailleurs pourquoi toutes ces "circonvolutions".
Que serait
Cells(nLigne, nCol)
ou
nLigne Plage1.Row et nCol Plage1.Column
Windows("signature_report.xls").Activate Sheets("Exports").Select Plage1.Select nCouleur = PlageDA.Interior.ColorIndex nCouleur = ActiveSheet.Cells(nLigne, nCol).Interior.ColorIndex nCouleur = Selection.Interior.ColorIndexCes 3 variantes pour récupérer la couleur déclenchent toutes l'erreur.
Et il est par ailleurs assez vraisemblable (bien que tu ne nous en aies pas dit un mot) que lors de tes diverses opérations, tu changes de feuille active, ce qyui tendrait )à expliquer ce qui t'étonne
ActiveCell.FormulaR1C1 = "=ESTDOUBLON(RC[-6],RC[-4])"Je confirme que la fonction ESTDOUBLON n'est appelée que via cette formule et non depuis le code VBA.
ActiveCell.FormulaR1C1 = "=ESTDOUBLON(RC[-6],RC[-4])"
passe les noms du classeur et de la feuille en paramètre supplémentaire de ta fonction.Si tu parles de la formule, elle ne travaille que sur la feuille courante. La formule deviendrai :
Ce sera plus propre et moins tortueux
=ESTDOUBLON("signature_report.xls";"Exports";A6;C6)Alors que c'est sur ce fichier et cette feuille que se trouve la formule.
remplace activecell par ses pointeurs complets (feuille et range)
la propriété "Interior" n'est plus accessible
Rien d'autre que la plage plage1 (la cellule A8 dans ton exemple, puisque ta formuler n'utilise qu'une seule cellule (A8) pour la plage plage1 passée en paramètre !
et ton erreur ne vient pas, comme je te l'ai vu affirmer, d'une "couleur indisponible" (), mais d'une plage non définie (Cells(nLigne, nCol))