Bonjour à tous,
Je suis entrain de retravailler une application sous Excel, donc avec des macros VB, et j'ai un souci avec une zone de nom.
Pour mieux comprendre ce qu'il se passait, j'ai codé une procédure me permettant d'afficher la valeur contenue dans la cellule cible et la référence de la zone de nom en question.
Le problème que je rencontre est le suivant:
Mon classeur comprend plusieurs feuilles, et dans ces feuilles certaines cellules se sont vues attribuer une zone de nom.
Voici le code de la procédure de test:
Pour la feuille Action (worksheet(2)) avec la zone de nom "_ActionEnd", la référence et le contenu de la cellule correspondantes s'affiche bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Sub Test() Dim nme As Variant ' Variable tampon recevant la liste des Zone de nom du classeur For Each nme In ThisWorkbook.Names 'classeur actif If nme.Name = "_ActionEnd" Then ' on affiche la référence de la zone de nom MsgBox (nme.RefersToR1C1) ' on affiche la valeur de la cellule (zone correspondante) pour la zone de nom de la feuille concernée MsgBox (ThisWorkbook.Worksheets(2).Range(nme.Name).Value) End If Next End Sub
Par contre pour la feuille Décision (worksheet(6)) avec la zone de nom "_DecisionEnd", la référence s'affiche bien mais il me renvoie une erreur quand il veut afficher la valeur de la cellule correspondante.
Voici l'erreur renvoyée:
Erreur d'execution '1004':
Erreur définie par l'application ou par l'objet
C'est une erreur assez générale et je comprend vraiment pas pourquoi elle intervient. Dans ma feuille Décision, la zone de nom est bien définie et sa référence aussi, mais il ne veut pas prendre la valeur contenu dans la cellule.
J'ai déjà essayé plusieurs fois de refaire la zone de nom mais sans résultat.
Sur toute les autres feuilles le même principe est appliqué et tout marche correctement, alors pourquoi sur cette feuille là ça plante ?
Manque t'il un lien quelque part dans le code ou une déclaration ?
Si quelqu'un peut me répondre, ça me serait d'une grande aide.
En vous remerciant par avance
Lauby Christophe
Partager