Cliquer dans une listBox

Résolu/Fermé
vieuxray - 7 déc. 2016 à 15:28
 vieuxray - 8 déc. 2016 à 08:05
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

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
Modifié par cs_Le Pivert le 7/12/2016 à 15:59
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
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
7 déc. 2016 à 18:01
Pour le doubleclic, quand tu sélectionnes
Private Sub ListBox1_Click()
en haut à droite il y a un menu déroulant qui apparait, tu choisis:

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)


Pour trouver la derniere ligne d'une colonne au lieu de mettre
.Range("A4000")
:

https://forums.commentcamarche.net/forum/affich-37622001-vba-detection-de-cellule-vide-ligne-colonnne
1
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
7 déc. 2016 à 19:58
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
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
8 déc. 2016 à 07:52
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
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
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
Salut

Merci pour la réponse

ton lien s'affiche mais il disparait immédiatement
0
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