Cliquer dans une listBox

Résolu
Bonjour a tous, forum bonjour

<config>Windows 7-32 bits / Explorer 11.0</Excel 2007>

J'ai une liste de vidéos dans ma colonne (A) feuil1 fichier .avi

Quand je clic sur une vidéo celle ci lance le multi player windows pour la lecture ca c'est bon.

Je transfère cette liste colonne A vers un UserForm1 et une ListBox1 ca c'est bon aussi.

Mais que reste t'il alors: hé bien
Je souhaiterai d'un clic ou un double clic lancer une vidéo .avi a partir de la liste de la ListBox1 avec le lecteur ci dessous.
le code ci dessous est celui que j'utilise et ca fonctionne bien.

Merci a tous pour votre aide, bonne après midi a vous.

Cdlt Raymond


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Chemin As String, Film As String

If Not Intersect(Target, Range("A1:A" & [A4000].End(xlUp).Row)) Is Nothing Then
Cancel = True
Range(Cells(Target.Row, 1), Cells(Target.Row, Target.Column)).Interior.ColorIndex = 4 'Vert
Chemin = "H:\": Film = Target & ".avi"

UserForm1.Label91 = Film 'Affiche le titre du film a visionner
End If

Shell """C:\Program Files\Windows Media Player\wmplayer.exe"" """ & Chemin & Film, vbMaximizedFocus
End Sub

9 réponses

  1. Contributeur
    Bonjour,

    En partant du principe que les données contenues dans la Listbox sont les même que celles de la colonne, voici le code pris sur ce site:

    https://silkyroad.developpez.com/VBA/ControlesUserForm/#LII-G

    Option Explicit
    'http://silkyroad.developpez.com/VBA/ControlesUserForm/#LII-G
    Private Sub ListBox1_Click()
    Dim chemin As String
    Dim nom As String
    If ListBox1.ListIndex = -1 Then Exit Sub
    nom = ListBox1.List(ListBox1.ListIndex)
     chemin = "H:\": Film = nom & ".avi"
       Shell """C:\Program Files\Windows Media Player\wmplayer.exe"" """ & chemin & Film, vbMaximizedFocus
    End Sub
    Private Sub UserForm_Initialize()
    ListBox1.List() = Range("A1:A12").Value 'a adapter
    End Sub
    
    

    @+ Le Pivert
    1
    1. Contributeur
      comme ceci:

      Private Sub UserForm_Initialize()
      Dim DernLigne As Long
      DernLigne = Range("A1048576").End(xlUp).Row 'Excel 2007
      ListBox1.List() = Range("A1:A" & DernLigne).Value
      End Sub
      

      1
      1. Salut cs_Le Pivert,

        Merci pour ta réponse, un peu de mal mais j'ai adapter et c'est bon ca fonctionne.
        La vidéo sélectionnée démarre sur un clic et ca réponds a mon besoin dans l'immédiat

        Néanmoins j'ai deux questions si tu veux bien:

        (1) Comme je disais le film démarre sur un clic MAIS au cas ou je souhaiterai que le film démarre sur un double clic, le code serait quoi svp.

        (2) Je souhaiterai que lorsque je sélectionne dans la ListBox1 ne pas avoir a me soucier si j'arrive a la fin de la liste disons une gestion automatique.

        ---Alors j'ai remplacer le code ci dessous par celui plus bas

        je voulais savoir svp si j'ai bon ou pas ou faut t'il modifier ???

        Je te remercie, c'est bien gentil a toi, bonne soirée

        Cdlt Raymond

        Ancien code
        Private Sub UserForm_Initialize()
        ListBox1.List() = Range("A1:A12").Value 'a adapter
        End Sub


         Remplacer par ce nouveau code
        ListBox1.List() = Range("A1:A" & .Range("A4000").End(xlUp).Row).Value
        0
        1. Salut cs_le pivert,

          Merci pour ta réponse, pour le double clic c'est bon j'ai adapter ca fonctionne

          Mais pour le code ci dessous la c'est pas bon, j'ai suivi ton lien (merci) mais ca me plante l'ouverture de mon USF avec une erreur 400


          ListBox1.List() = Range("A4000").End(xlUp).Row


          je n'ai pas tout compris même avec divers essais

          bonne soirée a toi et merci

          Cdlt Raymond
          0
          1. Salut cs_le pivert,

            Merci pour ta réponse,

            Ca ne plante plus mon USF1 voila donc ca fonctionne

            Mais pourquoi svp Range("A1048576").

            Merci et bonne journée a toi

            Vdlt Ray
            0
            1. Salut

              Merci pour la réponse

              ton lien s'affiche mais il disparait immédiatement
              0
              1. Salut cs_le pivert

                ok c'est bon j'ai trouver, je n'avais pas fait le rapprochement, désoler

                A l'inverse de la combinaison précédente, lorsque vous sélectionnez la dernière cellule de votre colonne (C65536 ou C1048576 selon votre version)

                merci pour ton aide je clos le sujet

                passe une très bonne journée

                et encore grand merci a toi

                Cdlt Raymond
                0