IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Nom de champs defini sous VBA [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut Nom de champs defini sous VBA
    Bonjour,

    Lorsque je nomme un champs de cellules sous VBA, ce nom n'apparait pas dans la liste déroulante située à gauche de fx sur la feuille excel.
    En revanche, le nom figure bien dans le gestionnaire de nom.
    Est-ce normal ?
    Y a-t-il une instruction permettant sa parution das la liste déroulante ?

    L'enregistreur de macro ne me permet pas de voir ce qu'il faut ajouter.

    Cordialement.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 334
    Par défaut
    Bonjour,
    Pour que le nom apparaisse dans cette liste, il faut passer par Insertion Nom Définir (Excel 2003).

  3. #3
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut nom de champs défini sous vba
    bonjour vieuxmonsieur,

    Merci.
    Je connais bien entendu la manière de nommer une plage de cellules sous Excel.

    Ce que je ne comprends pas: C'est pourquoi le fait de donner un nom en passant par un code VBA n'ajoute pas ce nom dans la fenêtre déroulante.

    De plus, si je donne par exemple un nom "total" en passant par VBA à la plage b2:b7 remplie de chiffre, la formule =somme(total) en b8 ne donne aucun résultat.
    le nom total semble ignoré (#NOM?) alors que ce nom figure bien dans le gestionnaire de noms.

    cordialement.

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Ça fonctionne pourtant bien ici, sous 2007 (?)
    Les noms créés sous VBA apparaissent dans la liste et les sommes se font bien par code ou manuellement en utilisant ces noms....

  5. #5
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 572
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 572
    Par défaut
    Bonjour

    Il faudrait donner ton code pour voir ce qui cloche...

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Si un nom n'apparaît pas dans la liste déroulante de la zone des noms c'est que le nom a une portabilité feuille et que la feuille active n'est pas celle où ce nom existe.
    Autre possibilité rendre invisible le nom (par code VBA).
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ThisWorkbook.Names.Add Name:="dbPopulation", RefersToR1C1:="=db!R1C1:R106C10"
    ThisWorkbook.Worksheets("Feuil1").Names.Add Name:="TestToto", RefersToR1C1:="=Feuil1!R74C12"
    La deuxième instruction applique le nom TestToto à une cellule sur la feuille nommée [Feuil1] et ce nom est de portée feuille alors que la première instruction applique un nom de portée Classeur à une plage se trouvant dans la feuille nommée [db]
    Le nom dbPopulation sera visible dans la liste déroulante de la zone des noms quelques soit la feuille active du classeur alors que le nom TestToto ne sera visible dans la liste déroulante à la seule condition d'être dans la feuille [Feuil1]
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut nom de champs défini sous vba
    Bonjour à tous,

    Tout d'abord merci pour vos réponses.

    J’essaie de reproduire les exemples de la formation internet de J. Boisgontiers excellente à bien des égards même si on relève quelques cookies.
    J'aurai été bien avisé pour cette fois de m'en tenir à sa ligne de code sans essayer de la reproduire avec l'enregistreur de macro pour comparaison.

    En faisant du pas à pas, je me suis rendu compte que c'est la dernière ligne ajoutée par l'enregistreur je ne sais dans quel but qui effaçait le nom (partie mise par moi en commentaire vert) .

    Je ne comprends pas cette ligne. Il me semblait que l'instruction "comment" concernait les commentaires joints à une cellule or elle semble bien remplacer "total" par "".

    code mis sur feuil1 concernée par le nom.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Sub Macro1()
    '
        Range("B2:B7").Select
        ActiveWorkbook.Names.Add Name:="Total", RefersToR1C1:="=Feuil1!R2C2:R7C2"
        'ActiveWorkbook.Names("Total").Comment = ""
    End Sub
    Par contre, je n'ai toujours pas réussi a faire apparaitre un nom 3D directement sur la feuille Excel (exemple donné par J. BOISGONTIERS) dans la liste déroulante alors qu'il figure dans le gestionnaire de nom.
    Avec un peu de persévérance je devrai y parvenir.

    Cordialement.

  8. #8
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 572
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 572
    Par défaut
    Bonjour

    Si je lance ta macro1 sur un classeur, je vois bien le nom "Total dans la liste déroulante.

    N'as tu pas plusieurs noms "Total" dans ton classeur ?

  9. #9
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut nom de champs défini sous vba
    Bonsoir Chris,

    En effet, le code joint propose bien le nom dans la liste déroulante parce que, comme je l'indique dans ma précédente réponse, j'ai mis en commentaire la dernière ligne bizarrement ajoutée par l'enregistreur de macro .

    Comme je l'indiquais, je ne comprends pas cette ligne ajoutée par l'enregistreur.

    cordialement.

  10. #10
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 572
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 572
    Par défaut
    Re

    L’enregistreur n'ajoute pas cette ligne chez moi si je nomme via la zone de noms.
    Je l'ai si je passe par le gestionnaire de nom mais j'ai néanmoins bien le nom dans la liste déroulante (on peut commenter les noms dans le gestionnaire, d'où la ligne).

    Edit : non, tu as raison en passant par le gestionnaire de noms le code enregistré n'est pas bon : si on supprime le nom fait lors de l'enregistrement, cela ne marche pas.
    Il y a un bug : le nom créé correspond à une pseudo référence LC mais ne correspond donc à la syntaxe obtenu en créant le nom par la zone de noms qui, elle, fonctionne.

    Edit2 : vérification faite c'est l'ajout en VBA d'un commentaire, quel qu'il soit, au nom, qui bugue.
    Bug a noter...

  11. #11
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut nom de champs défini sous vba
    Bonjour,

    Je clos la discussion bien que perplexe.

    En effet, il semble qu'avec les noms 3D, le problème soit le même (pas d'affichage dans la liste déroulante).

    cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] aide avec les nom definie sous vba
    Par dris974 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/03/2011, 18h37
  2. Insertion documents word dans champ objet OLE sous VBA
    Par frankouche dans le forum Access
    Réponses: 4
    Dernier message: 20/12/2006, 21h35
  3. Modifier les noms des champs sous VBA
    Par shadockgreg dans le forum Access
    Réponses: 2
    Dernier message: 22/09/2006, 17h50
  4. changer les noms de champs sous access
    Par Flo42 dans le forum Access
    Réponses: 4
    Dernier message: 11/04/2006, 11h29
  5. [VBA-A]noms des champs d'un recordset
    Par wildpenguin dans le forum VBA Access
    Réponses: 5
    Dernier message: 08/02/2006, 09h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo