Remplissage ListView depuis feuille Excel + Double Clic
Bonjour le forum, bonjour à tous,
Actuellement je travail sur un projet VBA pour de la saisie de cotation.
Jusqu'à hier, tout se passait bien, un peu lentement vu le temps que je peux y accorder mais bon c'est la vie ..... C'est alors que je me rend compte que la ListBox que j'utilise ne pourra me permettre de mettre en couleur les lignes de celles ci selon condition. j'ai donc entrepris hier soir de supprimer ma ListBox et d'y insérer à la place une ListView.
Mon problème, je n'arrive pas, malgré mes recherches à pouvoir afficher dans ma listview les données comprise dans ma feuille "QUOTATION" de (A2:R1048576) et d'y appliquer une fonction double clic sur une ligne et qu'ainsi mon UF modif se lance en se remplissant avec les données de ligne pour modification puis de les réinsérer dans le tableau.
j'espère avoir était assez clair, je vous joint ci dessous le fichier
Merci de votre aide
A vous lire
Pipin54000
Bonjour,
Testes et adaptes :
Private Sub UserForm_Initialize()
Dim Plage As Range
Dim PlgEntete As Range
Dim Lig As Range
Dim Cel As Range
Dim I As Long
Dim J As Integer
With Worksheets("QUOTATION")
Set PlgEntete = .Range(.Cells(1, 1), .Cells(1, 18))
Set Plage = .Range(.Cells(2, 18), .Cells(.Rows.Count, 1).End(xlUp))
End With
With ListView1
'Entêtes
With .ColumnHeaders
For Each Cel In PlgEntete: .Add , , Cel.Value, 80: Next Cel
End With
'parcours les lignes de la plage
For Each Lig In Plage.Rows
'valeur de la première colonne de la ligne en cours
.ListItems.Add , , Lig.Cells(1, 1).Value
I = I + 1
'valeurs des cellules suivantes de la ligne en cours (la première colonne étant la colonne de référence)
For J = 2 To Lig.Cells.Count: .ListItems(I).ListSubItems.Add , , Lig.Cells(1, J).Value: Next J
Next Lig
.View = 3
End With
End Sub
Private Sub ListView1_DblClick()
With MODIF_QUOTE
.TextBox1.Text = ListView1.ListItems(ListView1.SelectedItem.Index).ListSubItems(1).Text 'n° cotation
.TextBox2.Text = ListView1.ListItems(ListView1.SelectedItem.Index).ListSubItems(2).Text 'demandeur
.TextBox3.Text = ListView1.ListItems(ListView1.SelectedItem.Index).ListSubItems(10).Text 'agent
.TextBox4.Text = ListView1.ListItems(ListView1.SelectedItem.Index).Text 'date
.TextBox5.Text = ListView1.ListItems(ListView1.SelectedItem.Index).ListSubItems(3).Text 'mode
.Show
End With
End Sub
Bonjour Theze,
Merci de ton retour, ça fonctionne pas trop mal apparement poyr la première étape : transfert des données dans la listView.
Au moment de double cliqué sur la ligne dans la listview, j'ai une erreur de compilation sur "TbListView" dans le code de mon UF MODIF_QUOTE ....
A te lire
Pipin54000
Dans mon code je n’ai pas fait état d’un quelconque «TbListView », que vient-il faire ici ? Je t’ai montré comment remplir la ListView à partir d’une feuille et comment récupérer les valeurs de la ligne sélectionnée et comme dit dans mon post, il te faut adapter sinon, reviens avec plus de précisions
Theze,
Merci de ton retour, je me suis un peu précipité sans refléchir vais je dire
Après adaptation tout fonctionne correctement
Ce que je cherche à faire au final c'est qu'une fois que l'on double clic sur une ligne, l'UF_MODIF s'ouvre et rempli les textbox, on puisse cocher la checkbox souhaité et qu'au moment de valider soit :
- la ligne source est supprimée dans ma feuille et ça en réinserre une nouvelle, soit
- le programme recherche la ligne de l'on a utilisé pour chargé les donnée et rajoute la valeur des checkbox sur la même ligne de départ
Dans les 2 cas je ne trouve rien sur le net à ce sujet, si tu avais la gentillesse de m'aider ce serait cool
Merci
A te lire
Pipin54000