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

143cotation-sxb-iv.xlsm (444.88 Ko)

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

Rechercher des sujets similaires à "remplissage listview feuille double clic"