Comment ouvrir un dossier avec VBA
Résolu/Fermé
A voir également:
- Vba ouvrir un dossier
- Comment ouvrir un fichier epub ? - Guide
- Aucune application permettant d'ouvrir ce lien n'a été trouvée ✓ - Forum Wiko
- Ouvrir un fichier .bin - Guide
- Dossier appdata - Guide
- Comment ouvrir un fichier docx ? - Guide
14 réponses
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
293
5 mai 2011 à 13:31
5 mai 2011 à 13:31
J'ai rajouté un message
Pense à mettre en résolu si c'est ok!
le message apparaîtra en bas à gauche de la feuille,
tous les 20 dossiers.
A l'endroit où tu vois 'Prêt'
Pense à mettre en résolu si c'est ok!
le message apparaîtra en bas à gauche de la feuille,
tous les 20 dossiers.
A l'endroit où tu vois 'Prêt'
Option Explicit Public V As String Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _ (ByVal hwnd As Long, ByVal lpOperation As String, _ ByVal lpFile As String, ByVal lpParameters As String, _ ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long Sub OuvreDossier() Dim Target As Range V = "" Dim chainePath As String Set Target = ActiveCell chainePath = "G:\Docu\R&D\Rapports d'essais" 'chainePath = "C:\Data\2009" If Not Intersect(Target, Range("A2:A20")) Is Nothing Then ' la plage qui contient les essais Application.ScreenUpdating = False V = Left(Replace(ActiveCell.Value, "E", "E ", 1), 6) Call AfficherListeDossiers(chainePath, CreateObject("scripting.filesystemobject"), V) If V <> "" Then ShellExecute 0, "explore", V, "", "", 10 End If End If End Sub Public Sub AfficherListeDossiers(ByVal specdossier As String, ByRef Fso, ByVal leChemin) ' Dim j As Integer Dim msgStatusBarre As String msgStatusBarre = Application.DisplayStatusBar ' sauvegarde Dim dossier, fd, sDossier ' variable de type variant ' Set Fso = CreateObject("Scripting.FileSystemObject") ' créé un objet fileSystem Set dossier = Fso.GetFolder(specdossier) ' dossier : héritage de fso Set sDossier = dossier.SubFolders 'sDossier : héritage de dossier j = 0 For Each fd In sDossier ' Scanne la collection sDossier j = j + 1 If (j Mod 20) = 0 Then ' mise à jour du message tous les 20 dossiers Application.StatusBar = j & " traités sur : " & sDossier.Count End If If InStr(1, fd.Name, V) > 0 Then V = fd Exit For End If Next Set sDossier = Nothing Set dossier = Nothing Application.StatusBar = False Application.DisplayStatusBar = msgStatusBarre End Sub