Problème de selection dans listbox
Bonjour à tous,
Je me permet d'ouvrir un nouveau post sur mon soucis, car finalement on pourrait croire qu'il faut me mâcher le travail, hors il n'en est pas question.
Donc, le seul et unique problème qui réside pour le moment, est, que lorsque je sélectionne un élément dans ma listbox, il ne me sort pas la bonne fiche, pour exemple :
mon tableau contient plus de 1400 lignes, chaque ligne correspond à une fiche (un rapport).
mon USF (composée de 4 combo et une listbox), les combo me servent à filtrer sur les élément de la listbox (en lien avec mon tableau)
et ensuite si je choisi la premiere ligne de la listbox (qui correspond via mon filtre a la ligne 605 du tableau) il me sort la premiere ligne du tableau...
Je ne peux mettre le fichier de part ça taille, mais le code utilisé si besoin...
Merci de votre aide
Chris
Bonjour,
Sans voir le malade... !
Mets déjà la macro qui te sort la ligne après sélection sur ListBox.
A+
Ferrand
Bonjour MFerrand,
Merci de ta reponse, il va falloir que je te mette le code complet, je vais le faire proprement qui fait quoi :
Les combobox qui filtre les elements
Private Sub ComboBox1_Change() ' ComboBox Site
Set plage = f.Range("A4:A" & f.Range("A" & Rows.Count).End(xlUp).Row)
ComboBox2.Clear: ComboBox3.Clear: ComboBox4.Clear
'Set dicoType = CreateObject("Scripting.Dictionary")
'Set dicoOI = CreateObject("Scripting.Dictionary")
'Set dicoDate = CreateObject("Scripting.Dictionary")
dicoType.RemoveAll: dicoOI.RemoveAll: dicoDate.RemoveAll
For Each C In plage
If C.Value = ComboBox1 Then
dicoType(C.Offset(0, 16).Value) = ""
dicoOI(C.Offset(0, 2).Value) = ""
dicoDate(C.Offset(0, 55).Value) = ""
End If
Next C
ComboBox2.List = dicoType.Keys
ComboBox3.List = dicoOI.Keys
ComboBox4.List = dicoDate.Keys
Call ChargementListBox1
End Sub
Private Sub ComboBox2_Change() ' ComboBox Date
Set plage = f.Range("A4:A" & f.Range("A" & Rows.Count).End(xlUp).Row)
ComboBox3.Clear: ComboBox4.Clear
dicoOI.RemoveAll: dicoDate.RemoveAll
For Each C In plage
If C.Value = ComboBox1 And C.Offset(0, 16).Value = ComboBox2 Then
dicoOI(C.Offset(0, 2).Value) = ""
dicoDate(C.Offset(0, 55).Value) = ""
End If
Next C
ComboBox3.List = dicoOI.Keys
ComboBox4.List = dicoDate.Keys
Call ChargementListBox1
End Sub
Private Sub ComboBox3_Change()
Set plage = f.Range("A4:A" & f.Range("A" & Rows.Count).End(xlUp).Row)
ComboBox4.Clear
dicoDate.RemoveAll
For Each C In plage
If C.Value = ComboBox1 And C.Offset(0, 16).Value = ComboBox2 And C.Offset(0, 2).Value = ComboBox3 Then
dicoDate(C.Offset(0, 55).Value) = ""
End If
Next C
ComboBox4.List = dicoDate.Keys
Call ChargementListBox1
End Sub
Private Sub ComboBox4_Change()
Call ChargementListBox1
End SubLe chargement de la listbox
Sub ChargementListBox1()
Set plage = f.Range("A4:A" & f.Range("A" & Rows.Count).End(xlUp).Row)
ListBox1.Clear
For Each C In plage
If (C.Value = ComboBox1 Or ComboBox1 = "") And (C.Offset(0, 16).Value = ComboBox2 Or ComboBox2 = "") _
And (C.Offset(0, 2).Value = ComboBox3 Or ComboBox3 = "") _
And (C.Offset(0, 55).Value = ComboBox4 Or ComboBox4 = "") Then
ListBox1.AddItem
ListBox1.Column(0, ListBox1.ListCount - 1) = C.Offset(0, 55).Value
ListBox1.Column(1, ListBox1.ListCount - 1) = C.Value
ListBox1.Column(2, ListBox1.ListCount - 1) = C.Offset(0, 2).Value
ListBox1.Column(3, ListBox1.ListCount - 1) = C.Offset(0, 9).Value
ListBox1.Column(4, ListBox1.ListCount - 1) = C.Offset(0, 16).Value
End If
Next C
End SubEt le bouton servant a creer les fiche (le debut du code car il est tres tres long)
Private Sub Cmd_PDF_Click()
rep = Environ("USERPROFILE") & "\"
classeurpath = rep & "Documents\InspectionAncrages\Rapports_expertise\rap_exp_chevilles.xlsm"
classeurphoto = rep & "Documents\InspectionAncrages\Photos"
classeurplan = rep & " Documents\InspectionAncrages\Plans\RIMG"
'ligne_fin = Cells.Find("*", Range("J1"), , , xlByRows, xlPrevious).Row
Set bdd = ThisWorkbook
Set rapex = Workbooks.Open(classeurpath)
nbToGo = ListBox1.ListCount
For i = 0 To nbToGo - 1
'Application.ScreenUpdating = False
If ListBox1.Selected(i) = True Then
'LI = i 'à adapter
DoEvents
'Creer_rapports
With rapex.Worksheets("RE_Type_Cheville")
nrapex = CStr(bdd.Worksheets("BDD").Range("J" & i + 4))
rapex.Worksheets("RE_Type_Cheville").Copy Before:=rapex.Worksheets("RE_Type_Cheville")
ActiveSheet.Name = nrapex
' Renseignement sur l'inspectionMerci pour ton aide
Chris
Bonjour,
Il me semble que tu n'as pas lu ma demande.
Je ne vais pas avaler des centaines de lignes de code en faisant des hypothèses en l'absence de fichier...
Tu cherches pourquoi à ta sélection sur ListBox la sortie ne correspond pas.
Cette sortie (dont tu n'as pas précisé la nature) est donc produite par la sélection elle-même sur le ListBox ou par une action sur un bouton. L'un de ces deux évènements déclenche la procédure qui réalise la "sortie". Ou bien elle redonne la main à la procédure appelante (ou à une autre) pour récupérer le résultat de la recherche.
Sans fichier, on peut toujours examiner ces quelques lignes de code pour voir s'il est possible d'y déceler les raisons de ce que tu constates.
Si tu fournis l'information utile je regarde, mais je ne vais pas m'indigestionner
Cordialement,
Ferrand
Re,
Je rentre chez moi... (500km), je anonymiser le fichier et réduire ça taille puis le poster en détaillant le soucis
En attendant merci de te pencher sur mon soucis.
A bientôt
merci
Chris