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 :

Gestion de listbox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 19
    Par défaut Gestion de listbox
    Bonjour à tous !!


    J'ai un tableau Excel dans j'ai lequel j'ai plusieurs colonnes.
    Je dois faire un traitement sur chaque colonne que l'utilisateur aura choisi via une listbox.

    L'idéal serait de faire une boucle dans laquelle je dirai quelquechose du style :

    for each aaa in listbox
    ...traitement avec la valeur de aaa...
    next aaa


    où aaa serait le listbox.index (le numero de la valeur selectionnée)
    Ainsi, je récupèrerai le numero de la colonne sélectionnée et je pourrai faire mon traitement dessus.


    Mon problème est pour la mise en place de cette boucle !!

    Merci d'avance..


    PS : si vous voyez une autre solution à mon probleme n'hesitez pas

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    Question imprécise, pour les raisons suivantes :

    - Sous VB6 (la présente section du forum) , une listbox ne possède pas plusieurs colonnes réelles (il ne peut y avoir qu'une disposition d'affichage en colonnes, ce qui n'a rien à voir avec des colonnes distinctes)

    - tu ne nous parles pas de ta valeur que tu as donnée à la propriété multiselect de ta listbox :

    Alors :

    1) passage en "revue" de tous les items (sélectionnés ou non) d'une listbox :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Command1_Click()
     For i = 0 To List1.ListCount - 1
       MsgBox List1.List(i)
     Next
    End Sub
    2) passage en revue des seuls items sélectionnés (si sélection multiple prédéfinie) d'une listbox :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Command1_Click()
      For i = 0 To List1.ListCount - 1
       If List1.Selected(i) Then
         MsgBox List1.List(i)
       End If
     Next
    End Sub
    Une autre fois : si tu développes bien sous VB6 et non sous VBA (pour Office)

  3. #3
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 19
    Par défaut
    pour la difference vb6 ou vba (pour office) je suis pas sûr à 100% mais je pense que c'est du vb6 (je suis sous excel 2002, et je développe sous visual basic editor).

    quand je parlais de colonne, c'est les colonnes de mon tableau excel. la listbox sera dans un userform que j'aurai créé et qui s'ouvrira lorsque l'utilisateur lancera la macro correspondante.

    pour la valeur multiselect de la listbox, je ne vois pas exactement le lien avec ma demande, mais tu dois surement savoir, c'est le "1-fmMultiSelectMulti".

    Sinon, sur les deux solutions que tu m'as donnée, je pense que celle qui repond le mieux a ma demande c'est la 2ème : ainsi, je pourrai executer mes traitements dans la boucle "if".


    Pour mieux comprendre ma demande, je vais mieux expliquer ma situation :
    - j'ai un tableau excel, qui est contruit comme une base de données (plusieurs colonnes, plusieurs lignes. la premiere ligne contient des champs, et les suivantes contiennent des valeurs).
    - dans les champs, j'ai un numero d'identifiant par personne, et des propriétés sur ces personnes.

    Mon objectif est d'identifier les lignes qui correspondent a la meme personne, et lorsqu'il trouve un bloc de plusieurs lignes sur la meme personne, de conserver entierement la premiere ligne, et de supprimer certaines infos des lignes suivantes. L'utilisateur doit au prealable choisir quelles colonnes il souhaite supprimer pour un meme identifiant.

    C'est pour ça que je veut mettre une listbox où l'utilisateur peut choisir plusieurs entrées. Lorsqu'il appuiera sur le bouton de validation, il faut que je lance une boucle sur chaque valeur selectionnée dans la listbox, boucle qui supprimera les données lignes (prealablement calculées) seulement dans .


    c'est un peu plus clair ?

    en tout cas, si je peux utiliser le " i " dans ta deuxieme solution ça devrait repondre a mon probleme...

    je te tiens au courant

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

Discussions similaires

  1. Gestion de données Access <-> Listbox
    Par hugues03 dans le forum VBA Access
    Réponses: 9
    Dernier message: 25/06/2010, 08h24
  2. Gestion de données Access <-> Listbox
    Par hugues03 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 24/06/2010, 18h45
  3. Gestion de l'affichage des éléments d'une ListBox
    Par Tod_sd dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 15/05/2009, 11h46
  4. [TextBox] [listBox] gestion des scrollbars
    Par maxdwarf dans le forum Windows Forms
    Réponses: 1
    Dernier message: 22/01/2008, 13h36
  5. C#:gestion d'un listbox
    Par tatikambwa dans le forum C#
    Réponses: 2
    Dernier message: 16/10/2007, 15h42

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