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
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 ...
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 ...
Re,
Merci pour le fichier ...
Sans abuser ... peux-tu m'indiquer quelle est la macro évènnementielle qui ouvre ton formulaire ...???
clic droit