Excel / Ovrire un fichier ou un dossier depuis une listBox
Résolu
Rivet
-
Yoda -
Yoda -
Bonjour,
Je débute en programmation Excel.
J'ai fait un UserForm qui vas me rechercher les fichiers commençant par la même chose que la cellule sélectionnée, il les affiche dans une listBox en deux colonnes. La première contient le nom du fichier et la seconde, le chemin du dossier contenant le dit fichier.
Dans mon formulaire, il y à deux boutons: un qui dont ouvrir le fichier sélectionné dans la liste ; et l'autre qui devrais ouvrir le dossier du fichier.
J'ai bien le chemin (C:\truc\Chose.txt) mais après ??? Je n'arrive pas à trouver la fonction qu'il faut employer dans mon formulaire. (ligne de commande)
Je débute en programmation Excel.
J'ai fait un UserForm qui vas me rechercher les fichiers commençant par la même chose que la cellule sélectionnée, il les affiche dans une listBox en deux colonnes. La première contient le nom du fichier et la seconde, le chemin du dossier contenant le dit fichier.
Dans mon formulaire, il y à deux boutons: un qui dont ouvrir le fichier sélectionné dans la liste ; et l'autre qui devrais ouvrir le dossier du fichier.
J'ai bien le chemin (C:\truc\Chose.txt) mais après ??? Je n'arrive pas à trouver la fonction qu'il faut employer dans mon formulaire. (ligne de commande)
A voir également:
- Excel / Ovrire un fichier ou un dossier depuis une listBox
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier bin - Guide
- Fichier rar - Guide
- Dossier appdata - Guide
3 réponses
J'ai essayé la fonction que tu propose, mais elle ouvre tous les documents dans une fenêtre Excel. Hors moi j'aimerais ouvrir les documents comme le fait un lien hypertexte.
PS: comment je peut joindre un document? suis-je obliger d'être membre du forum pour le faire?
PS: comment je peut joindre un document? suis-je obliger d'être membre du forum pour le faire?
On progresse, mais ça vas être compliquer de le faire pour toutes les extensions.
vous devriez pouvoir télécharger le fichier teste que j'ai fait ici :
https://www.cjoint.com/c/CCowQIenm2v
vous devriez pouvoir télécharger le fichier teste que j'ai fait ici :
https://www.cjoint.com/c/CCowQIenm2v
J'ai utilisé les cellules J2 et J3 pour inscire des hyperliens
Dans le code de UserForm2, remplacer ces prodédures:
j'espère que c'est ce que tu cherchais à faire
A+
Dans le code de UserForm2, remplacer ces prodédures:
Private Sub CB_Fermer_Click() Range("J2:J3").Delete Unload Me End Sub Private Sub CB_OpenDoc_Click() Range("J3").Select Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True End Sub Private Sub CB_OpenDos_Click() Range("J2").Select Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True End Sub Private Sub ListBox1_Change() Sheets("Liste_Dossier").Range("F2") = Me.ListBox1.Column(1) & "\" Sheets("Liste_Dossier").Range("F4") = Me.ListBox1.Column(1) & "\" & Me.ListBox1.Value Range("J2").Select ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _ Me.ListBox1.Column(1), TextToDisplay:= _ Me.ListBox1.Column(1) Range("J3").Select ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _ Me.ListBox1.Column(1) & Me.ListBox1.Value, TextToDisplay:= _ Me.ListBox1.Column(1) & Me.ListBox1.Value 'Run (Sheets("Liste_Dossier").Range("F3")) End Sub Private Sub UserForm_Initialize() Range("J2:J3").Delete '-Rechercher les données Run ("Rechercher") '------------- '-Ajouter les données à la liste Run ("AjoutRecherche") '--------- End Sub
j'espère que c'est ce que tu cherchais à faire
A+
Tip-top, ça fonctionne aussi bien que je l' espérais.
J'ai juste modifier tu fonction Delete par Clear, car delete supprime les cellules. Ce qui décales les colonnes suivantes.
# Range("J2:J3").Delete# ==>> # Range("J2:J3").Clear#
J'ai aussi put récupérer la fonction pour afficher directement les lien-hypertextes sur la feuille Dossier.
Je vous met la version deux là : https://www.cjoint.com/c/CCrwS5Hl7jA
Merci et A+
PS: Comment afficher le [Résolue] dans le titre?
J'ai juste modifier tu fonction Delete par Clear, car delete supprime les cellules. Ce qui décales les colonnes suivantes.
# Range("J2:J3").Delete# ==>> # Range("J2:J3").Clear#
J'ai aussi put récupérer la fonction pour afficher directement les lien-hypertextes sur la feuille Dossier.
Je vous met la version deux là : https://www.cjoint.com/c/CCrwS5Hl7jA
Merci et A+
PS: Comment afficher le [Résolue] dans le titre?
Bonjour,
Alors si c'est la fonction Open qui t'interesse la voici :
C'est la complete, dans ton cas de figure il filename = listbox (ou ya le chemin)
et copy si tu veux que cela soit ouvert copies , il y a des lignes qui peuvent ne pas tinteresser (mais je n'ai pas ton fichier donc je sais pas )
Exemple dans un feuille appellé "sheet1"
Cordialement
Alors si c'est la fonction Open qui t'interesse la voici :
Sub ImportWorksheet() ' This macro will import a file into this workbook Sheets("Sheet1").Select PathName = Range("D3").Value Filename = Range("D4").Value TabName = Range("D5").Value ControlFile = ActiveWorkbook.Name Workbooks.Open Filename:=PathName & Filename ActiveSheet.Name = TabName Sheets(TabName).Copy After:=Workbooks(ControlFile).Sheets(1) ActiveWorkbook.Close SaveChanges:=False End Sub
C'est la complete, dans ton cas de figure il filename = listbox (ou ya le chemin)
et copy si tu veux que cela soit ouvert copies , il y a des lignes qui peuvent ne pas tinteresser (mais je n'ai pas ton fichier donc je sais pas )
Exemple dans un feuille appellé "sheet1"
Cordialement
Si c'est un fichier texte (.txt) que tu veux ouvrir:
Dim ProcID
ProcID=Shell("C:\Windows\system32\notepad.exe" & " " & "C:\truc\Chose.txt", 1)
A+
Donc tu dois choisir l'application et lui passer en parametre le fichier à ouvrir.
Concrètement, tu récupères le type de fichier en regardant son extension, en général c'est les trois derniers caractères du nom (mais pas toujours), et suivant le cas tu lances le programme qui va avec. Exemple:
Il y a peut-être une autre manière de faire mais je ne la connais pas.
A+.