ListBox et GO !

W

Will

Guest
Bonjour à tous !

Voilà ma question :

J'ai une listbox qui prend ses valeurs(20) dans une colonne et sur la même feuille. A cette liste, j'associe un bouton GO !, donc comment en appuyant sur ce bouton, je peux ouvrir un fihier word par exemple.

Est-ce possible ?

Merci pour contribution.

Will
 
@

@+Thierry

Guest
SAlut Will

Tu devrais être un peu plus détaillé non ? Car là je ne sais même pas ce qu'il y a dans ta ListBox !! lol

Sans s'emboucaner avec un Set de CreateObject("Word.Application") ou encore faire une commande Shell.......

Un simple FollowHyperLink et le tour est joué !

Admettons que ce soit le nom de tes fichiers Word qui soit dans la "ListBox1" de ta Feuil1, et que ces fichiers Word se trouve tous dans le même répertoire, il te suffit de faire une Constante avec le Chemin du Répertoire et un FollowHyperLink ... Comme ceci :

Dans le Private Module de la Feuille où se Trouve ton Bouton "GO" et la ListBox1

(ATTENTION on parle ici d'ActiveX : CommandButton1 & ListBox1 => de la barre d'outils "Contrôles" et pas de la barre d'outils "Formulaire"


Private Sub CommandButton1_Click()
Const Chemin As String = "c:\mes documents\"
Dim Link As String
Dim LeDoc As String

If Me.ListBox1.ListIndex = -1 Then Exit Sub 'si il n'y a pas de sélection on sort
LeDoc = Me.ListBox1

Link = Chemin & LeDoc & ".doc" 'si la listBox ne contient pas l'extension ".doc"
ActiveWorkbook.FollowHyperlink Address:=Link, NewWindow:=True
End Sub

C'est le plus simple et le plus pratique (comme à dit STéphane d'ailleurs dans ce Lien supprimé et je suis tout à fait d'accord !!!

Bonne Soirée
@+Thierry
 
W

Will

Guest
Merci à toi pour ces infos...
En fait ce que je vais faire (dis-moi si c'est ok).

1- Je crée une "zone de liste modifiable"

2- J'insère l'image bouton "GO"

2- Sur la même feuille, j'entre des fichiers .doc sous format hypertexte (la colonne sera ensuite masquée)

3- Dans les propriétés de la "zone de liste modifiable", je renseigne "ListFillRange"

4-Je copie ton script dans la page correspondante

Est-ce bon ?

Merci à toi.

Will
 
@

@+Thierry

Guest
Salut Willy

Je travaille en Anglais US, donc "zone de liste modifiable" je ne suis pas sûr et certain que l'on parle de la "Combo Box" de la Boite à Outils "Contrôle"...Mais vu que tu parles de "ListFillRange" oui, je pense que c'est une ComboBox ActiveX

Ensuite pour l'incrémentation de données dans ta ComboBox, si tu veux ne travailler qu'avec les Propriété sans VBA, tu peux utiliser ListFillRange, OK

Par contre sur ta feuille, si tu ne veux QUE entrer les noms de fichiers Word au lieu de leur chemin complet tu peux faire ceci (à conditions que tous les Documents Word soient dans le mêmpe répertoire!!!)

Exemple :

Le Doc World se Trouve :
"c:\mes documents\World\mes factures\leDocWord1.doc"

Au lieux de taper dans chaque cellules :
"c:\mes documents\World\mes factures\leDocWord1.doc"
"c:\mes documents\World\mes factures\leDocWord2.doc"
"c:\mes documents\World\mes factures\leDocWord3.doc"

Tu ne tapes QUE :
leDocWord1
leDocWord2
leDocWord3

C'est ce code comme je t'avais déjà indiqué qui va compléter automatiquement :

Const Chemin As String = "c:\mes documents\World\mes factures\"
Dim Link As String
Dim LeDoc As String

LeDoc = Me.ListBox1

Link = Chemin & LeDoc & ".doc"

Explication :

Le ListFillRange va te remplir ta ListBox1 avec "LeDocWord1","LeDocWord2","LeDocWord3"...

Quand tu fais une sélection dans la ListBox1 et que tu clicks sur le bouton OK :
La ListBox1 va retourner (par exemple) LeDocWord3 et le Bouton OK va compléter :
Chemin & ListBox1 & ".Doc"
c'est à dire :
c:\mes documents\World\mes factures\LeDocWord3.doc

Voilà c'est tout


Pour finir "J'insère l'image bouton "GO" c'est quoi ce quer tu entends par une "Image Bouton" ? Si c'est une vrai image... c'est à dire que tu vas avoir ceci :

Sub Picture1_Click()

End Sub

... Dans un Module Standard

Ce serait dix fois plus simple d'avoir un vrai bouton (CommandButton comme décrit dans mon précédent post)...Mais si tu persistes avec une Image, donc tu t'arranges pour mettre ce genre de code dans un module standard et tu affectera (assignera) cette macro...

Sub Image_Click()
Const Chemin As String = "c:\mes documents\"
Dim Link As String
Dim LeDoc As String

If Sheets("Feuil1").ListBox1.ListIndex = -1 Then Exit Sub 'si il n'y a pas de sélection on sort
LeDoc = Sheets("Feuil1").ListBox1

Link = Chemin & LeDoc & ".doc" 'si la listBox ne contient pas l'extension ".doc"
ActiveWorkbook.FollowHyperlink Address:=Link, NewWindow:=True
End Sub

Bon Courage
@+Thierry
 
W

Will

Guest
Bonsoir @+Thierry,

J'ai fait exactement ce qu tu as écris mais à la compil', j'ai un message d'erreur à la ligne :

If sheets ('Nom de ma feuille").ListBox1.ListIndex = -1 Then

@+ et merci.

Will
 
@

@+Thierry

Guest
Bonjour Will, le Forum


Huum, pour qu'une ligne comme ceci fonctionne :

If Sheets("Feuil1").ListBox1.ListIndex = -1

Il faut :

1°) que la "Feuil1" existe.

2°) que sur cette "Feuil1" existe bien une "ListBox1" de de la Boite à Outils "Contrôle" (pas une autre ListBox de la barre d'outils "Formulaire" ou encore une Liste de Validation)

Bonne Journée
@+Thierry
 

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz