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 :

ListBox.list et nommage tableau Excel 2007 [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Inscrit en
    Décembre 2006
    Messages
    897
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 897
    Par défaut ListBox.list et nommage tableau Excel 2007
    bonsoir à tous,

    je souhaite remplir une zone de liste à deux colonnes en utilisant la propriété ".List" de la ZdL et le nom des colonnes format XL2007 ex : "TabAdresse[[CP]]" et "TabAdresse[[Ville]]"

    Cela fonctionne bien pour une colonne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TabArray = Range("TabAdresse[[CP]]")
    ZdL.List = TabArray
    Mais impossible de spécifier correctement la seconde colonne. La virgule entre les adresses dans "Range" ne fonctionne pas.

    Quelle est la synthaxe ?

    Merci.

    ESVBA

  2. #2
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    Pas sûr de comprendre, mais si tu veux remplir une variable tableau avec une référence directe à un range, il va te créer un tableau à 2 dimensions automatiquement.

    Mais pour ce faire, il faut que tu lui fournisses un range "continu" et non pas une Union de range.

    Si tes colonnes sont accolées, tu lui donne direct les 2 extrémités, si elles ne sont pas accolées, tu ne pourra pas faire une assignation directe.

    A tester, le plus rapide peut être de créer 2 variables tableaux distinctes et de créer une variable tableau finale en réunissant les deux... ou de copier la feuille, de supprimer les colonnes non voulues et d'affecter une variable tableau avec le reste.

    Reste selon le contexte et la volonté d'optimisation de construire la variable tableau avec une boucle.

    vois ici si besoin : http://didier-gonard.developpez.com/...vba/#LVIII-B-2

    cordialement,

    Didier

  3. #3
    Membre émérite
    Inscrit en
    Décembre 2006
    Messages
    897
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 897
    Par défaut Merci de la réponse Ormonth,
    que tu lui fournisses un range "continu" et [...]
    Si tes colonnes sont accolées, tu lui donne direct les 2 extrémités
    justement mon problème est la manière de lui écrire un range continu avec les appelations utilisées avec les références tableaux Excel 2007 (pas de problème d'ajout, pas de plage nommée supplémentaire, pas de référence, pas de gestion de cellules et d'emplacement, l'idéal).

    Je souhaitais une affectation directe sans passer par une boucle pour un code rapide, simple et propre (un peu à la Access).
    Puisqu'il y a des nouveautés dans Excel 2007...
    Nouveautés mais limitées à l'usage !

    Enfin s'il y a une solution...

    ESVBA

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    ne piste pour la lecture ici

  5. #5
    Membre émérite
    Inscrit en
    Décembre 2006
    Messages
    897
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 897
    Par défaut Résolu à moitié
    Merci à toi Ormonth mais on reste dans la déclaration de plages nommées et ses inconvénients.

    Je ne comprends pas comment mettre deux colonnes (contigües) d'un tableau excel 2007 dans une ListBox à deux colonnes (placée sur une UserForm).

    C'est un problème d'affectation à la "ListBox".

    J'ai résolu le problème par le code ci-dessous mais j'espérais qu'il y ait un moyen sans boucle et simplement en déclarant seulement le tableau (entêtes fixes).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Cpte = 0
    For Each v in Range("TabVille").
         LstAJout.Additem
         LstAjout.List(Cpte, 0) = v.Offset(0,-1).Value
         LstAjout.List(Cpte, 1) = v.Value
         Cpte =Cpte +1
    Next v
    Si quelqu'un connait la solution... un message MP serait le bien venu.

    Ca ressemble à un manque dans Excel 2007 et +.


    ESVBA

  6. #6
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    je ne comprends pas

    ce que tu veux, c'est alimenter une listbox avec 2 colonnes contiguës

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub UserForm_Initialize()
    ListBox1.RowSource = "A2:B998"
    End Sub
    fonctionne sans souci normalement ?

    cordialement,

    Didier

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

Discussions similaires

  1. [XL-2010] Ouvrir autant d'onglet firefox que d'URL listé dans un tableau excel
    Par tepuy dans le forum Macros et VBA Excel
    Réponses: 26
    Dernier message: 10/04/2015, 18h04
  2. Réponses: 7
    Dernier message: 01/06/2013, 06h50
  3. [WD-2003] RowSource de listbox avec contenu de tableau Excel
    Par maxxgraph dans le forum VBA Word
    Réponses: 3
    Dernier message: 27/01/2011, 13h21
  4. [XL-2007] autofilter de tableau excel 2007
    Par siuol dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/07/2010, 18h05
  5. gestion des droits sur un tableau excel 2007
    Par kev0631 dans le forum Excel
    Réponses: 1
    Dernier message: 20/04/2007, 08h54

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