Rectification code

Bonjour le Forum

En double cliquant sur n'importe quel item de ma listbox1, userform2 s'ouvre, et le ComboBox1 de la useform2 prend automatiquement la valeur de l'item de la listbox1 sur lequel j'ai double cliqué.

Tout fonctionne correctement, sauf quant j'effectue un filtre de ma listbox1, quand le filtre est appliqué, le doubleclic ne donne pas la valeur exacte, il renvoie une autre valeur non affichée dans la listbox.

est ce que quelqu’un peut m'aider à rectifier mon code ?

code doubleclique listbox

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

Dim ligne
On Error Resume Next
ReDim TbListbox(1 To ListBox1.ColumnCount)
ligne = ListBox1.ListIndex
For x = 1 To ListBox1.ColumnCount
  TbListbox(x) = ListBox1.List(ligne, x - 1)
Next x

UserForm11.Show

End Sub

le code d'initialisation de la userfom2

Private Sub UserForm_Initialize()
UserForm2.ComboBox1.Value = Worksheets("BD").Cells(UserForm1.ListBox1.ListIndex + 2, "F")
Sheets("bd").Activate
Dim no_ligne As Integer
no_ligne = ComboBox1.ListIndex + 2
    ComboBox1.Value = Cells(no_ligne, 6).Value
    ComboBox2.Value = Cells(no_ligne, 3).Value
    ComboBox3.Value = Cells(no_ligne, 4).Value
    ComboBox4.Value = Cells(no_ligne, 5).Value
    'ComboBox5.Value = Cells(no_ligne, 6).Value
    ComboBox6.Value = Cells(no_ligne, 1).Value
    TextBox1.Value = Cells(no_ligne, 2).Value
    TextBox2.Value = Cells(no_ligne, 8).Value
    TextBox3.Value = Cells(no_ligne, 9).Value
    TextBox4.Value = Cells(no_ligne, 10).Value
    TextBox5.Value = Cells(no_ligne, 11).Value
    TextBox6.Value = Cells(no_ligne, 12).Value
    Cells(no_ligne, 1).Select
    ActiveCell.EntireRow.Select
End Sub

Bonjour Saber36 le forum

et le fichier il est ou??

en plus tu parles de filtre et il n'y a aucune macro filtre dans ce que tu as donné!!!!

a+

Papou

j'ai trouvé l'origine du problème mais pas la solution, en fait le problème provient de cette partie du code :

Private Sub UserForm_Initialize()
UserForm2.ComboBox1.Value = Worksheets("BD").Cells(UserForm1.ListBox1.ListIndex + 2, "F")

ici le combobox1 récupère la valeur de ma base de donné avec comme numéro de ligne celle de la sélection de la listbox. Quand je n' applique aucun filtre au niveau de la listbox, la listbox et ma base seront identiques donc aucun problème, mais quand j'effectue un filtre, le ligne 2 par exemple au niveau de la listbox n est pas la ligne 2 du listbox, c'est delà que vient le problème, je dois alors trouver une autre méthode pour récupérer la valeur de l'item listbox.

Bonsoir saber 36 le forum

Bah tu as tout compris sauf que tu ne récupères pas une ligne de la listbox mais de la feuille BD

Alors la solution est simple mais encore faudrait il voir la macro et donc le fichier!!!!

Et comme tu ne joins pas le fichier bah ???

Bonne soirée

Papou

bonjour saber36, paritec,

par sûr d'avoir tout compris .... et sans le classeur .....

à tout hasard , charger dans la listbox de l'USF 1 , dans une colonne supplémentaire (qui ne sera pas visible) , le N° de la ligne de la feuille Excel.

Par exemple si cette colonne supplémentaire est la troisième, on pourra, au niveau de l'USF 2 , retrouver ce numéro de ligne par:

With UserForm1.ListBox1
  no_ligne = .List( .ListIndex, 2)
End With

A+

merci vous,

En terme plus simple comment récupérer dans la combobox1, la valeur de la 6 éme colonne de la listbox1 sur laquelle je viens de cliquer. Donc sans passer par la base de donnée excel, est ce que c'est possible?

Re Saber36 le forum

bah oui c'est simple, mais cela ne réglera pas ton problème!!

mais comme tu le veux voici

a+

Papou

combobox1=listbox1.list(listbox1.listindex,5)
Rechercher des sujets similaires à "rectification code"