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 :

vba, listbox avec plusieur colonne


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Points : 235
    Points
    235
    Par défaut vba, listbox avec plusieur colonne
    Bonjour
    je reviens vers vous car cela fait 1semaine et demi que je n'avance pas.
    je vous décris mon problème, comme je programme habituellement en php je vais fonctionnerpareil avec une colonne ID
    Sous excel j'ai une feuille avec 3 colonnes, A=ID, B=nom, et C=age.
    la premier ligne de chaque colonne indique a quoi elle corespond:
    |id| nom | age |
    -------------------
    | | | |

    J'ai créé un userform afin d'ajouter des entrées, et j'ai fait une list box simple colonne qui affiche la colonne nom, et lorsque l'on clique dessus cela affiche un nouveau userform avec des textbox pour modifier l'entré cliqué,mais mon probleme et que si il y a plusieur nom identique ça n'en prend qu'un, cest pourquoi j'ai décidé de travailler avec un id pour chaque.
    Donc je voudrai savoir comme faire pour afficher dans la listbox 3 colonnes:id,nom et age et que ça ai les meme fonctionnalité que précédément.(ouvrir l'autre userform et pouvoir modifier l'entré)
    je galère avec le rowsource mais je ne sais pas si c'est avec cela que l'on peut le faire.
    si quelqu'un pouvais m'aider, ca serait super simpas.
    merci

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    voir la un exemple d'utilisation listbox en multicolonne..

  3. #3
    Membre actif
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Points : 235
    Points
    235
    Par défaut merci
    merci pour la rapidité de ta réponse
    mais toit tu parle en vb ou vbnet non?
    parceque moi je débute juste en vba.
    je vais quand meme essayer d'analysé ton code ce soir quand je rentrerai chez moi meme si il me fait peur au yeux

  4. #4
    Membre actif
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Points : 235
    Points
    235
    Par défaut j'ai fait un petit code.
    C'est encore moi,
    j'ai fait un petit code petit a petit mais j'ai 2-3 probleme, jespere que vous pourrez m'aider.
    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Private Sub UserForm_Initialize()
    i = 2
    While Feuil1.Cells(i, 1) <> ""
    i = i + 1
    Wend
    i = i - 1
     
    'For j = 2 To i
    'choix.AddItem Cells(j, 2)
    'Next j
     
    UserForm1.choix.ColumnCount = 3
    UserForm1.choix.BoundColumn = 2
    choix.RowSource = ("Feuil1!A2:Ci")
     
    End Sub
    Alor mon premier probleme c'est que dans ("Feuil1!A2:Ci") le in'est pas remplacer par le bon nombre parce que j'ai une erreur et lorsque je remplace i par un nombre la listbox multicolonne marche avec les 3 colones, pourquoi le i n'est t'il pas prit comme un chiffre?

    et mon secon probleme c'est lorsque l'on clique sur une ligne,ça ouvre un nouveau userform,
    dont voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub UserForm_Initialize()
    moi = UserForm1.choix.Text
    UserForm2.nom2.Text = UserForm1.choix.Text
    Unload UserForm1
    End Sub
    normalement cela devrai afficher le nom de la ligne cliqué dans un textbox mais la ça m'affiché l'id qui est dans la premier colonne, pourtant j'ai bien mis BoundColumn = 2 et non pas BoundColumn = 1.

    je sais pas si j'ai été trés clair, si quelqu'un pouvait une nouvelle fois me répondre
    merci

  5. #5
    Membre régulier Avatar de zebulon2212
    Inscrit en
    Juin 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2006
    Messages : 77
    Points : 88
    Points
    88
    Par défaut
    j'ai deja eu ce probleme mais je ne l'avais pas résolu par un list box multicolone...
    j'avais utilisé une concaténation de données que j'affichais dans l'unique colonne de mon listbox.
    ca fait un peu plus de code puisqu'il faut faire la concaténation au remplissage et la deconcatenation pour savoir quelle ligne tu as selectionné.
    mais si tu te sert d'un ID tu n'aura qu'a recupérer le debut de ta ligne...
    Bonne chance

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    pour ton 1° probléme sort le i des des " ..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    choix.RowSource = ("Feuil1!A2:C" & i)
    PS: soit dit en passant pourquoi sur cette ligne tu préfixe pas par userform1... alors que sur les lignes précédente tu préfixe choix par userform1..?


    2° Probléme .. utilise la propriété value en lieu et place de text :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UserForm2.nom2.Text = UserForm1.choix.value

  7. #7
    Membre actif
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Points : 235
    Points
    235
    Par défaut merci
    merci c'est super cool ca marche,
    mais juste un truc pourrai tu m'expliquer pourquoi avec le Text ca marche pas et avec le Value ca marche?

    et pour le rowsource b je croyai que le rowsource ne marché que dans luserform ou il été lancé c'est pour ca que je ne le prédéde pas de userform1.

    en tout ca merci beaucoup

  8. #8
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par morgan47
    merci c'est super cool ca marche,
    mais juste un truc pourrai tu m'expliquer pourquoi avec le Text ca marche pas et avec le Value ca marche?
    Citation Envoyé par Aide en ligne Excel boundcolumn
    Vous pouvez afficher un ensemble de données aux utilisateurs, mais stocker différentes valeurs associées pour l'objet en utilisant la propriété BoundColumn et les propriétés TextColumn. TextColumn identifie la colonne de données affichées dans une zone de texte d'un contrôle ComboBox et la valeur stockée dans la propriété Text

    Citation Envoyé par morgan47
    et pour le rowsource b je croyai que le rowsource ne marché que dans luserform ou il été lancé c'est pour ca que je ne le prédéde pas de userform1.
    en tout ca merci beaucoup
    ? userform1 ne précéde pas rowsource .. mais ton list box Choix... et vu que ton code et dans l'userform1 .. tu n'est pas obligé de précédé choix d'userform1..

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

Discussions similaires

  1. problème listbox avec plusieurs colonnes
    Par djams9 dans le forum VB.NET
    Réponses: 12
    Dernier message: 07/07/2011, 10h38
  2. comment avoir Listbox avec plusieurs colonnes
    Par pseudo88 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 20/05/2010, 10h45
  3. Comment créer une listBox avec plusieurs colonnes ?
    Par volcom_2222 dans le forum VB.NET
    Réponses: 6
    Dernier message: 27/02/2010, 11h44
  4. [ComboBox] Combobox avec plusieurs colonnes
    Par madica dans le forum Windows Forms
    Réponses: 6
    Dernier message: 15/01/2007, 11h25
  5. Réponses: 1
    Dernier message: 04/05/2005, 11h43

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