Rectification code

Y compris Power BI, Power Query et toute autre question en lien avec Excel
s
saber36
Jeune membre
Jeune membre
Messages : 49
Inscrit le : 18 août 2017
Version d'Excel : 2007

Message par saber36 » 5 août 2019, 10:57

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
Avatar du membre
paritec
Passionné d'Excel
Passionné d'Excel
Messages : 3'864
Appréciations reçues : 389
Inscrit le : 7 juin 2011
Version d'Excel : W10 - 2003 FR - 2010 FR

Message par paritec » 5 août 2019, 11:09

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 :)
Des bonnes explications et des petits fichiers représentatifs vont nous aider à vous aider !!!!
s
saber36
Jeune membre
Jeune membre
Messages : 49
Inscrit le : 18 août 2017
Version d'Excel : 2007

Message par saber36 » 5 août 2019, 18:23

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.
Avatar du membre
paritec
Passionné d'Excel
Passionné d'Excel
Messages : 3'864
Appréciations reçues : 389
Inscrit le : 7 juin 2011
Version d'Excel : W10 - 2003 FR - 2010 FR

Message par paritec » 5 août 2019, 18:42

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 :)
Des bonnes explications et des petits fichiers représentatifs vont nous aider à vous aider !!!!
A
AlgoPlus
Membre dévoué
Membre dévoué
Messages : 566
Appréciations reçues : 46
Inscrit le : 27 février 2019
Version d'Excel : 2003

Message par AlgoPlus » 5 août 2019, 18:48

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+
s
saber36
Jeune membre
Jeune membre
Messages : 49
Inscrit le : 18 août 2017
Version d'Excel : 2007

Message par saber36 » 5 août 2019, 18:55

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?
Avatar du membre
paritec
Passionné d'Excel
Passionné d'Excel
Messages : 3'864
Appréciations reçues : 389
Inscrit le : 7 juin 2011
Version d'Excel : W10 - 2003 FR - 2010 FR

Message par paritec » 5 août 2019, 20:07

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)
Des bonnes explications et des petits fichiers représentatifs vont nous aider à vous aider !!!!
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message