Lister cellules antécédents d'une formule

la macro ci-dessus fonctionne dans le fichier test, mais ne fonctionne pas dans mon fichier professionnel (que je ne peux pas partager pour des raisons de confidentialité, sinon ce serait trop simple...).

J'ai une erreur d'exécution 424, et c'est la ligne "Set rngToCheck = Feuil1.Range("A1")" qui est en jaune. J'ai essayé de changer la cellule, de renommer le feuillet, rien n'y fait...

Entre le fichier test et le fichier pro, le code VBA est copié-collé, donc il ne peut pas y avoir de faute de frappe.

Une idée SVP ???

je peux contourner le problème en mettent dans le fichier test une formule qui redirige vers le fichier pro, mais c'est assez sale comme solution, donc si quelqu'un pense à une solution clean à implémenter dans le fichier pro directement, ce serait top

Est-ce que tu peux essayer en remplaçant Feuil1 par sheets("nomdelafeuilledeA1") pour bien qualifier l'objet visé.

Cdlt,

Salut 3GB,

Suite à notre discussion par MP pourquoi pas Worksheets("nom de la feuille") ? Ce sera forcément une feuille de travail s'il y a des antécédents il y a des formules non ? :)

D'ailleurs je ne savais pas que Sheets1. était une syntaxe valide ..

Bonne soirée !

Feuil1 écrit comme ça c'est le codename de la feuille, pas le nom d'onglet :
image
Est-ce ok pour ton classeur ?
eric

Parce qu'on connait avec certitude le nom des onglets et moins souvent le nom des codename (comme le fait remarquer eriiic). Il est possible de renommer un codename ou de supprimer la feuille donc il suffit qu'il n'y ait plus de Feuil1 pour que ça bloque.

Sheet1 est un nom valide en version anglaise (Hoja en espagnol, ...).

Et ici, worksheets serait une façon d'être plus précis mais ce n'est pas nécessaire puisque tous les worksheets sont des sheets (mais la réciproque n'est pas vraie)...

Bonne soirée également (si on ne se recroise pas d'ici là)

Bonjour 3GB, Eriic

Merci pour vos réponses. Donc soit on met codename. ou worksheets("nom de l'onglet") ?

Je me disais qu'en précisant worksheets("nom de l'onglet") on diminuait la recherche, et donc soulageait le "cerveau", d'où ma remarque :)

Oui, les façons essentielles de faire référence à une feuille précise directement, c'est :

set ws = Codenamedelafeuille
set ws = Sheets("nom") 'ou worksheets bien sûr
set ws = sheets(index)

Après, il est possible de boucler sur la collection et de la trouver grâce à l'une de ses propriétés, de la trouver en tant qu'enfant du classeur, en tant que parent d'une cellule (ou autre objet de feuille)...

Et worksheets, c'est une sous-collection de sheets mais les 2 collections représentent la plupart du temps une même collection donc de mon point de vue, il n'y a pas vraiment de bénéfice. Et worksheets est le type de sheets par défaut si je ne dis pas de bêtise. eriiic me corrigera peut-être, il en sait sûrement plus que moi, c'est en partie grâce à lui que j'ai découvert ça (et plein d'autres choses d'ailleurs ).

Voilà, ce sont 2 façons différentes pour appeler le même objet.

L'avantage du codename (en plus d'être plus court à écrire) c'est qu'il reste constant si la feuille est renommée. Pas besoin de reprendre le code.
eric

Merci à vous 2 ! Donc mieux vaut partir sur du FeuilX. si la structure du classeur ne change pas. C'est noté !

Je vous souhaite une bonne soirée ! Désolé pour la pollution.

Pour éclairer plus précisément:
Worksheets ce sont les feuilles de travail (les normales dirait Coluche)
Sheets c'est les Worksheets + les feuilles graphiques

Donc le plus souvent ces 2 collections sont identiques en effet.
Disons que c'est mieux d'être précis sur les objets si on peut. Mais bon, si on est sûr qu'il n'y a pas de feuille graphique...

Par contre s'il risque d'y en avoir (on ne maîtrise pas toutes les actions des utilisateurs), c'est impératif d'utiliser Worksheets (si c'est ce qu'on veut) dans une boucle For Each. Les propriétés et objets inclus sont différents.
Par exemple pas de Cells dans une feuille graphique, plantage assuré.
eric

Ca marche.

Merci à tous !

Rechercher des sujets similaires à "lister antecedents formule"