Problème syntaxe Cellules Variables

white-spirit

XLDnaute Occasionnel
Bonjour Tout le Monde,

de retour après bien longtemps ...

aujourd'hui je bloque sur un problème de syntaxe dans une macro qui automatise la créatoon de noms de liste, pour servir plus tard des menus déroulants.

Je commence par créer le nom d'une liste simple, la syntaxe utilisée provient de l'enregistreur.
Et ça fonctionne bien...
Ensuite je veux créer d'autres noms de liste à partir de titres de colonnes, et de colonnes de longueur variables. Voir le code commenté :

'ici, je recherche la derniere ligne de la liste que je veux enregistrer
derlgn = Range("A" & Rows.Count).End(xlUp).Row
' je sélectionne cette liste
Range("A3:A" & derlgn).Select
'je nomme cette liste d'un nom préalablement chargé dans NomListe
ActiveWorkbook.Names.Add Name:=NomListe, RefersToR1C1:="=SponsorsStudies!R3C1:R" & derlgn & "C1"

' ET J'OBTIENS BIEN LA LISTE DISPONIBLE (listing en haut à gauche) AVEC LE NOM CHOISI !

' ensuite j'ai un certain nombre de colonnes avec un mot clé en 1ere ligne, et un certain nombre de mots dans chaque colonne (relatifs au mot clé)
' j'ai déja recherché la dernière colonne au préalable (dercol)

Dim colonne As Integer
For colonne = 3 To dercol Step 1
' je charge ici le nom de la liste (le mot clé)
NomListe = Cells(1, colonne).Value
' je recherche la dernière ligne de la liste située dessous
derlgn = Cells(Rows.Count, colonne).End(xlUp).Row
' je sélectionne cette liste
Range(Cells(2, colonne), Cells(derlgn, colonne)).Select

' je nomme cette liste avec ce mot clé, ET LA CA NE MARCHE PAS !!!
' l'avance incrémentale se fait bien, mais AUCUNE LISTE ENREGISTREE N'APPARAIT DANS LE LISTING !!!
' JE PENSE QUE LE SOUCI SE NICHE APRES LE NOM DE LA FEUILLE ! mais je ne trouve pas ...

ActiveWorkbook.Names.Add Name:=NomListe, RefersToR1C1:="=SponsorsStudies! Cells(2, colonne), Cells(derlgn, colonne)"
Next colonne



J'espère avoir décrit ce qui se passe, si quelqu'un connait bien la syntaxe de la création de noms de liste, merci de m'éclairer..

A vous lire.

Cordialement
WS.
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
Peut être auriez vous intérêt à essayer l'autre syntaxe :
VB:
Range(Cells(2, colonne), Cells(derlgn, colonne)).Name = NomListe
Sinon c'est :
VB:
ActiveWorkbook.Names.Add Name:=NomListe, RefersToR1C1:="=SponsorsStudies!R2C" & colonne & ":R" & derlgn & "C" & colonne
 

eriiic

XLDnaute Barbatruc
Bonjour,

si ça t'intéresse une macro pour créer les noms réalisée il y a quelques temps.
Le titre en ligne 1 est utilisé pour créer le nom, modifié si besoin pour avoir un nom valide (par exemple Cas2 est un nom invalide, _Cas2 est créé).
eric
 

Pièces jointes

  • Noms dynamiques.xlsm
    87.4 KB · Affichages: 35

white-spirit

XLDnaute Occasionnel
Bonjour tt le monde, Bjr Dranreb & eriiiic,

Merci à vous d'avoir répondu à mes questions.
J'ai essayé hier soir votre deuxième solution, Dranreb, et ça fonctionne comme je le souhaitais. Merci encore.

ériiiic : je vais prendre un peu de temps pour analyser votre fichier joint, merci à vous d'avoir aussi répondu.

Ce sujet peut être considéré comme RESOLU !!

Bien cordialement.

WS.
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 084
Messages
2 085 192
Membres
102 809
dernier inscrit
Sandrine83