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 :

Problème de référence dans Listbox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 42
    Par défaut Problème de référence dans Listbox
    Bonjour,

    J'essaye d'afficher des données filtrées dans ListBox

    L'affichage fonctionne bien avec la fonction ListBox1.AddItem mais lorsque je clique sur un élément de la Listbox pour afficher les détails dans des Textbox, ce sont les données d'un autre élément qui sont pris en compte

    Je suis sur que cette situation a déjà été posée dans ce forum mais je ne trouve aucune discussion qui répond à ma question

    Je peux joindre un fichier comme exemple mais je laisse cela comme dernier recours tel que mentionné dans les règles de ce forum

    Voici le code pour ajouter des éléments à la listeBox :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Private Sub Affiche_Liste()
     
    With Me.ListBox1
     
    .ColumnCount = 4
    .ColumnWidths = "80;100;120;80"  'Statut,Nom, Prénom, CodePostal
    .Clear
     
    End With
     
    Dim k, i
    k = 0
    With Sheets("Data")
    For i = 3 To .[A65000].End(xlUp).row
    If .Cells(i, 2) = "TempsPlein" Then
    Me.ListBox1.AddItem
    Me.ListBox1.List(k, 0) = .Cells(i, 2) 'Statut
    Me.ListBox1.List(k, 1) = .Cells(i, 3) 'Nom
    Me.ListBox1.List(k, 2) = .Cells(i, 4) 'Prénom
    Me.ListBox1.List(k, 3) = .Cells(i, 8) 'CodePostal
     
    k = k + 1
    End If
    Next i
    End With
     
    End Sub
    Voici le code pour afficher dans des textbox :

    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
    18
    19
    20
    Private Sub ListBox1_Click()
     
    Dim Ligne As Long
     
      Ligne = Me.ListBox1.ListIndex + 3
     
      With Sheets("Data")
     
    txt_date = .Range("A" & Ligne)
    txt_statut = .Range("B" & Ligne)
    txt_nom = .Range("C" & Ligne)
    txt_prenom = .Range("D" & Ligne)
    txt_ddn = .Range("E" & Ligne)
    txt_tel = .Range("F" & Ligne)
    txt_adresse = .Range("G" & Ligne)
    txt_codepostal = .Range("H" & Ligne)
     
      End With
     
    End Sub
    Merci pour vos conseils

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, à lire : Utiliser les contrôles dans un UserForm, en VBA Excel

    Sinon j'avais donné un exemple de listbox dans un contexte totalement différent : ici

    P.-S. : Balise ton code

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 42
    Par défaut
    Bonjour kiki29,
    Je viens de lire le manuel référé dans ton message ainsi que ton exemple de listbox mais je ne trouve pas comment adapter mon code
    En fait mon code fonctionne bien si je ne filtre pas les données mais étant donné que ma listbox n'affiche pas tous les éléments du tableau, je ne touve pas comment adapter mon code car l'erreur se trouve surement dans
    Ligne = Me.ListBox1.ListIndex + 3
    Au lieu de me référer à d'autres manuels, est-ce possible de regarder mon code et me dire quoi modifier?
    Merci d'avance

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    tu as deux solutions simples :

    1) au lieu d'avoir 4 colonnes, tu mets les 9 colonnes de données dans ta listbox. Ainsi, tout est déjà sur ton userform et ta procédure ListBox1_Click va simplement piocher chaque élément de la ligne choisie.
    A noter qu'une colonne peut être invisible dans ton ListBox (mettre son ColumnWidths à 0) avec 9 colonnes de données et uniquement 4 visibles

    2) tu crées une cinquième colonne (visible ou invisible) dans laquelle tu stockes le numéros de la ligne de la feuille Excel : Me.ListBox1.List(k, 4) = i
    Ainsi, après avoir cliqué sur un élément du listbox, la ligne où piocher dans Excel est identifiée dans la 5ème colonne

Discussions similaires

  1. Problème de selection dans listbox
    Par Chris171717 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/02/2013, 14h00
  2. Problème de suppression dans listbox
    Par Chris171717 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/02/2013, 12h30
  3. problème d'affichage dans listbox
    Par azräel dans le forum VB.NET
    Réponses: 6
    Dernier message: 06/11/2008, 10h39
  4. Problème de nombre de caractères max dans Listbox
    Par jojoestpetit dans le forum Access
    Réponses: 1
    Dernier message: 09/04/2006, 11h39
  5. problème de références _ptr dans une map STL
    Par Mr_Tyu dans le forum CORBA
    Réponses: 1
    Dernier message: 10/08/2004, 10h39

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