Affichage données tableau dans listbox

Bonjour à toutes et tous,

J’ai un tableau sur ma feuille « matériels » qui me permet d’alimenter une listbox sur mon userform .

Jusque là  pas de problème.

Ma question : est-il possible, à partir de ma feuille et en cliquant sur une cellule de la colonne « A » de mon tableau, d’ouvrir mon userform+listbox et que toutes les données de la ligne sélectionnée du tableau s’affichent dans la listbox ?

Merci

Bonjour,

Effectivement possible ... avec l'évènement Worksheet_BeforeDoubleClick()

En espèrant que cela t'aide ...

bonjour

et merci. Effectivement j'ouvre bien mon UF par un 2clic, .

Je précise que dans l'intialize de mon UF j'ai : InitListBox "", 2

cela me permet d'afficher la liste de mes données mais je voudrais que soit sélectionnée la même ligne

que celle sur laquelle j'ai cliqué sur mon tableau pour ouvrir l'UF.

J'espère être assez clair !

Re,

Si tu manipules déjà avec une très grande aisance les ListBoxes ... tu connais certainement les propriétés ListIndex et Selected ...

Pourquoi n'en fais-tu pas usage ....???

('

tout simplement parce que je n'y arrive pas !

c'est la raison pour laquelle je m'adresse à vous.

Re,

As-tu essayé ...

Me.ListBox1.Selected(x) = True

Il va de soi que tu dois déterminer x pour que cela corresponde à la ligne de ta feuille ...

je vais essayer avec

Me.ListBox1.Selected(activerow) = True

je te tiens au courant

merci

j'ai tenté de mettre dans l'intialize de l'UF :

'*********************************************************************

Dim ma_ligne As Integer

InitListBox "", 2 ' pour afficher la liste des données dans la listbox

ma_ligne = Sheets("matériels").activerow

Me.ListBox1.Selected(ma_ligne) = True

'***********************************************************

mais ça ne marche pas !

Re,

Peux-tu poster ton code ...???

pas de soucis, le voilà !

Private Sub UserForm_Initialize()

Dim j As Long

' Déclaration des variables

'Dim Mondico As Object

'----------------

OteTitleBarre Me.Caption, False 'True pour le remettre

RoundCorners Me, Me.Width, Me.Height, 255

'------------ ----

With UserForm_Pièces

'.StartUpPosition = 3

.Width = Application.Width

'.Height = Application.Height

.Left = 0

.Top = 0

End With

Set Ws = Sheets("matériels")

'---

Me.TBInscrits = Ws.Range("A" & Rows.Count).End(xlUp).Row - 1

' ****************

With Me.ListBox1

.ColumnCount = 19

.ColumnWidths = "115;5;90;5;185;5;140;5;5;5;160;5;66;5;35;5;50;0;0"

End With

'****************************************************************

' RECHERCHE PRODUIT SANS DOUBLON

Dim k As Integer

'Récupérer les données de la colonne B...

For k = 2 To Range("A" & Application.Rows.Count).End(xlUp).Row

Me.CbbProduit.Value = Range("A" & k)

Me.CB_produit.Value = Range("A" & k)

'filtrer les doublons

If Me.CbbProduit.ListIndex = -1 Then Me.CbbProduit.AddItem Range("A" & k)

If Me.CB_produit.ListIndex = -1 Then Me.CB_produit.AddItem Range("A" & k)

Next k

'****************************************************************

' RECHERCHE TYPE SANS DOUBLON

Dim m As Integer

'Récupérer les données de la colonne B...

For m = 2 To Range("B" & Application.Rows.Count).End(xlUp).Row 'où 2 signifie à partir de la 2ème ligne

Me.CbbType.Value = Range("B" & m)

Me.CB_type.Value = Range("B" & m)

'filtrer les doublons

If Me.CbbType.ListIndex = -1 Then Me.CbbType.AddItem Range("B" & m)

If Me.CB_type.ListIndex = -1 Then Me.CB_type.AddItem Range("B" & m)

Next m

'****************************************************************

Me.TB_date.Value = Date

Me.TB_date.Value = Format(Me.TB_date.Value, "ddd dd mmm. yy")

'****************************************************************

Dim Répertoire As String

' les photos doivent être au format jpg

Répertoire = "C:\.......\mes fichiers\mes images\mon congélateur"

Me.Image1.Picture = LoadPicture(Répertoire & "\" & "vide.jpg")

'********** TRUE **************************************

Me.Label_recherche.Visible = True

Me.Label_transaction.Visible = True

Me.Label_qté_existante.Visible = False

'********** FALSE ***************************************

Me.CbbProduit.Visible = False

Me.CbbType.Visible = False

Me.CbbEmplacement.Visible = False

Me.Label_ancienneté.Visible = False

'---

Me.CB_photos.Visible = False

Me.Label_photos.Visible = False

'---

Me.cmdDateEntree.Visible = False

Me.TBInscrits.Visible = False

Me.TB_date_avant_modif.Visible = False

'Me.Label_modifier.Visible = False

Me.Label_ajout_même_pdt.Visible = False

Me.Label_nvelle_entrée.Visible = False

Me.Label_valider_nvelle_entrée.Visible = False

Me.TbStockMinim.Visible = False

Me.LbEmplacement.Visible = False

Me.LbNom.Visible = False

Me.LbPrénom.Visible = False

Me.Label_stock_minimum.Visible = False

Me.Label_reste_stock.Visible = False

Me.Label_produit.Visible = False

Me.Label_type.Visible = False

Me.Label_sortie_produit.Visible = False

Me.Label_sortie_produit.ForeColor = RGB(0, 0, 0)

Me.Label_sortie_produit.Font.Size = 10

Me.Label_transaction.Visible = False

Me.Label_transaction.Caption = ""

Me.Label_filtre_années.Visible = False

Me.Label_ou.Visible = False

Me.TextBox1.Visible = False

Me.OptionButton1.Visible = False

Me.OptionButton2.Visible = False

Me.OptionButton3.Visible = False

Me.CB_produit.Visible = False

Me.CB_type.Visible = False

Me.CB_filtres_années.Visible = False

Me.Label_valider_la_sortie.Visible = False

Me.TBTotal_Stock.Visible = False

Me.TBTotal_Stock.Value = ""

Me.TB_divers.Value = ""

Me.CB_Emplacement.Value = ""

Me.Label_valid_modif.Visible = False

Me.TB_départ.Visible = False

Me.TBTotal_Stock.Visible = False

Me.Label_sortir_1_pdt.Visible = True

'-----------------------------------------------

Me.TBSortie_Stock.Value = Format(Me.TBSortie_Stock.Value, "#0.000")

Me.TextBox1.Value = Format(Me.TextBox1.Value, "#0.0")

Me.TbEntrée_Stock.Value = Format(Me.TbEntrée_Stock.Value, "#0.000")

Me.TBTotal_Stock.Value = Format(Me.TBTotal_Stock.Value, "#0.000")

Me.TB_départ.Value = Format(Me.TB_départ.Value, "#0.000")

'-----------------------------------------------

Me.Label_ajout_produit.Caption = "ajout Produit"

'----------------------------------------------

Me.OptionButton2.Value = True

'*********************************************************************

Dim ma_ligne As Integer

InitListBox "", 2 ' pour afficher la liste des données dans la listbox

ma_ligne = Sheets("matériels").activerow

Me.ListBox1.Selected(ma_ligne) = True

'***********************************************************

Me.Label_nbre_produits.Caption = Me.TBInscrits.Value

Me.BackColor = RGB(235, 241, 222)

'-*/-*/-*/-*/-*/-*/-*/-*/-*/-*/

'Me.LbEmplacement.Visible = True

Me.CB_Emplacement.Visible = False

Me.TbConditionnement.Visible = False

Me.TB_divers.Visible = False

Me.Label_Emplacement.Visible = False

Me.Label_conditionnement.Visible = False

Me.Label_divers.Visible = False

'

Me.Label_ajout_produit.Visible = False

Me.TbEntrée_Stock.Visible = False

Me.TBSortie_Stock.Visible = False

Me.Label_ajout_produit.Visible = False

Me.Label_sortie_produit.Visible = False

End Sub

Re,

Si tu le permets ... une première remarque ...

Tu es un membre habitué avec plus de 120 Messages ...

Donc tu dois savoir que :

Concernant l'usage du Forum ... pour poster du Code .... il faut utiliser les balises Code ... Bouton N°5 photo jointe ...

balise code

mille excuses !

Private Sub UserForm_Initialize()
Dim j As Long
' Déclaration des variables
'Dim Mondico As Object
  '----------------
  OteTitleBarre Me.Caption, False 'True pour le remettre
  RoundCorners Me, Me.Width, Me.Height, 255
 '------------ ----

   With UserForm_Pièces
 '.StartUpPosition = 3
 .Width = Application.Width
 '.Height = Application.Height
 .Left = 0
 .Top = 0
  End With

  Set Ws = Sheets("matériels")
    '---
    Me.TBInscrits = Ws.Range("A" & Rows.Count).End(xlUp).Row - 1
    ' ****************
    With Me.ListBox1
    .ColumnCount = 19
    .ColumnWidths = "115;5;90;5;185;5;140;5;5;5;160;5;66;5;35;5;50;0;0"
     End With
     '****************************************************************
    ' RECHERCHE PRODUIT SANS DOUBLON
    Dim k As Integer
     'Récupérer les données de la colonne B...
    For k = 2 To Range("A" & Application.Rows.Count).End(xlUp).Row
        Me.CbbProduit.Value = Range("A" & k)
        Me.CB_produit.Value = Range("A" & k)
        'filtrer les doublons
        If Me.CbbProduit.ListIndex = -1 Then Me.CbbProduit.AddItem Range("A" & k)
        If Me.CB_produit.ListIndex = -1 Then Me.CB_produit.AddItem Range("A" & k)
    Next k
     '****************************************************************
     ' RECHERCHE TYPE SANS DOUBLON
    Dim m As Integer
     'Récupérer les données de la colonne B...
    For m = 2 To Range("B" & Application.Rows.Count).End(xlUp).Row 'où 2 signifie à partir de la 2ème ligne
        Me.CbbType.Value = Range("B" & m)
        Me.CB_type.Value = Range("B" & m)
        'filtrer les doublons
        If Me.CbbType.ListIndex = -1 Then Me.CbbType.AddItem Range("B" & m)
        If Me.CB_type.ListIndex = -1 Then Me.CB_type.AddItem Range("B" & m)
    Next m
     '****************************************************************
       Me.TB_date.Value = Date
       Me.TB_date.Value = Format(Me.TB_date.Value, "ddd dd mmm. yy")

    '****************************************************************

Dim Répertoire As String
  ' les photos doivent être au format jpg
  Répertoire = "C:\.....[Inline][/Inline]\mes fichiers\mes images\mon congélateur"
  Me.Image1.Picture = LoadPicture(Répertoire & "\" & "vide.jpg")

'********** TRUE **************************************
Me.Label_recherche.Visible = True
Me.Label_transaction.Visible = True
Me.Label_qté_existante.Visible = False

'********** FALSE ***************************************
Me.CbbProduit.Visible = False
Me.CbbType.Visible = False
Me.CbbEmplacement.Visible = False
Me.Label_ancienneté.Visible = False
'---
Me.CB_photos.Visible = False
Me.Label_photos.Visible = False
'---
Me.cmdDateEntree.Visible = False
Me.TBInscrits.Visible = False
Me.TB_date_avant_modif.Visible = False
'Me.Label_modifier.Visible = False
Me.Label_ajout_même_pdt.Visible = False
Me.Label_nvelle_entrée.Visible = False
Me.Label_valider_nvelle_entrée.Visible = False
Me.TbStockMinim.Visible = False
Me.LbEmplacement.Visible = False
Me.LbNom.Visible = False
Me.LbPrénom.Visible = False
Me.Label_stock_minimum.Visible = False
Me.Label_reste_stock.Visible = False
Me.Label_produit.Visible = False
Me.Label_type.Visible = False
Me.Label_sortie_produit.Visible = False
Me.Label_sortie_produit.ForeColor = RGB(0, 0, 0)
Me.Label_sortie_produit.Font.Size = 10
Me.Label_transaction.Visible = False
Me.Label_transaction.Caption = ""
Me.Label_filtre_années.Visible = False
Me.Label_ou.Visible = False
Me.TextBox1.Visible = False
Me.OptionButton1.Visible = False
Me.OptionButton2.Visible = False
Me.OptionButton3.Visible = False
Me.CB_produit.Visible = False
Me.CB_type.Visible = False
Me.CB_filtres_années.Visible = False
Me.Label_valider_la_sortie.Visible = False
Me.TBTotal_Stock.Visible = False
Me.TBTotal_Stock.Value = ""
Me.TB_divers.Value = ""
Me.CB_Emplacement.Value = ""
Me.Label_valid_modif.Visible = False
Me.TB_départ.Visible = False
Me.TBTotal_Stock.Visible = False

Me.Label_sortir_1_pdt.Visible = True
'-----------------------------------------------
Me.TBSortie_Stock.Value = Format(Me.TBSortie_Stock.Value, "#0.000")
Me.TextBox1.Value = Format(Me.TextBox1.Value, "#0.0")
Me.TbEntrée_Stock.Value = Format(Me.TbEntrée_Stock.Value, "#0.000")
Me.TBTotal_Stock.Value = Format(Me.TBTotal_Stock.Value, "#0.000")
Me.TB_départ.Value = Format(Me.TB_départ.Value, "#0.000")
'-----------------------------------------------
Me.Label_ajout_produit.Caption = "ajout Produit"
'----------------------------------------------
Me.OptionButton2.Value = True
'*********************************************************************
[Inline]Dim ma_ligne As Integer
InitListBox "", 2 ' pour afficher la liste des données dans la listbox
ma_ligne = Sheets("matériels").activerow
Me.ListBox1.Selected(ma_ligne) = True[/Inline]
'***********************************************************
Me.Label_nbre_produits.Caption = Me.TBInscrits.Value
Me.BackColor = RGB(235, 241, 222)
'-*/-*/-*/-*/-*/-*/-*/-*/-*/-*/
'Me.LbEmplacement.Visible = True
Me.CB_Emplacement.Visible = False
Me.TbConditionnement.Visible = False
Me.TB_divers.Visible = False
Me.Label_Emplacement.Visible = False
Me.Label_conditionnement.Visible = False
Me.Label_divers.Visible = False
'
Me.Label_ajout_produit.Visible = False
Me.TbEntrée_Stock.Visible = False
Me.TBSortie_Stock.Visible = False
Me.Label_ajout_produit.Visible = False
Me.Label_sortie_produit.Visible = False

End Sub

Re,

Merci por les balises ... !!!

Je t'avoue que cela soulage vraiment les yeux ... !!!

Concernant ton code, il y aurait beaucoup de choses à dire ...

Mais la première ... c'est que tu n'utilises pas Option Explicit ... ( en début de module ...)

Donc tu ne peux pas debugger ... et tu ne peux pas retrouver tes propres erreurs ...

L'instruction suivante

ma_ligne = Sheets("matériels").activerow

aurait tout de suite généré un beep ...

car cela n'existe pas ...

Tu pourrais, dans un premier tester :

ma_ligne = Sheets("matériels").ActiveCell.Row

En espèrant que cela t'aide ...

non ça ne change rien, j'obtiens le message suivant :

capture

Re,

A priori ... ce n'est pas toi qui a rédigé cette macro ... pour ton fichier ...

Peux-tu joindre ton fichier ... ???

sans problème pour le fichier....le seul souci c'est qu'apparemment il est trop volumineux.

Re,

Nul besoin que ce soit le fichier ... dans son entier ...

Il suffit d'en faire une copie et de supprimer toutes les données .. sauf une dizaine de lignes ... pour illustrer ton propos ...

c'est chose faite...

bonne lecture

Re,

Merci pour le fichier ...

Sans abuser ... peux-tu m'indiquer quelle est la macro évènnementielle qui ouvre ton formulaire ...???

clic droit

Rechercher des sujets similaires à "affichage donnees tableau listbox"