Modification de la plage d'une liste définie par un nom dans le calsseur
SamGuelis
-
17 févr. 2013 à 22:51
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
18 févr. 2013 à 15:46
bonjour
Je souhaite modifier dynamiquement la plage des listes quand la feuille qui contient ces listes est mise à jour à partir d'un autre fichier. Après recopie je souhaite modifier les listes au cas où leur taille a changé. J'ai utilisé le code suivant (maplage contenant le nom de chaque colonne identifiant une liste):
----------------------------------
For Each cell In maplage
If cell <> "" Then
'Debug.Print cell
Set objNom = ThisWorkbook.Names.Item(cell)
TableauNom = Split(objNom.RefersTo, "!")
sizeTab = Range(TableauNom(1)).Rows.Count
newsizeTab = Cells(indiceLoop, Rows.Count).End(xlUp).Row
ThisWorkbook.Names.Add _
Name:=objNom.Name, _
RefersTo:=TableauNom(0) & "!" & _
Range(TableauNom(1)).Resize(Range(TableauNom(1)).Rows.Count + (newsizeTab - sizeTab)).Address
indiceLoop = indiceLoop + 1
End If
Next
Set maplage = Nothing
-----------------------------------------
j'ai une erreur de compilation "d'utilisation incorrecte de la propriété" quand j'exécute l'instruction:
objNom = ThisWorkbook.Names.Item(cell)
ou une erreur d'exécution #1004 a été générée par VBA Project si je fais
Set objNom = ThisWorkbook.Names.Item(cell)
Quelqu'un peut-il m'indiquer où est le problème? Merci pour vos suggestions.
Samguelis
SamGuelis
A voir également:
Modification de la plage d'une liste définie par un nom dans le calsseur
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 18 févr. 2013 à 00:59
Salut
Appeler une variable 'cell', c'est audacieux; méfie t-en : cela ressemble de trop à un mot clé du langage.
'cell' tout court : essaye avec la syntaxe complète 'cell.Value' ou .Text
.Names ne va te renvoyer qu'un texte (je pense).
Comment est défini objNom ?
Pourquoi un 'Set' devant ?
Que penses-tu récupérer dans cette variable ?
Si c'est une feuille :
Set objNom = ThisWorkbook.Sheets("Le nom de la feuille") (ou une variable)
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on le partage (Socrate)
La variable ObjNom est de type Name et je voudrais récupérer le nom de la liste. J'ai mis Set pour avoir une référence sur la variable. mais ce n'est peut-être pas vraiment nécessaire.