Comment ouvrir un dossier avec VBA
Résolu
supercopain
-
debutant_en_macro -
debutant_en_macro -
Bonjour,
je suis à la recherche d'une macro qui ouvre un dossier dont le nom est dans une liste excel
exemple dans une liste récapitulative j'ai E1234
dans un dossier sur trouve plusieurs dossier, est seul est nommé E1234, blabla
lorsque la cellule de ma liste qui contient E1234 je veux cliquer sur un bouton pour ouvrir le fameux dossier du même nom.
merci beaucoup
<config>Windows xp /office 2003
je suis à la recherche d'une macro qui ouvre un dossier dont le nom est dans une liste excel
exemple dans une liste récapitulative j'ai E1234
dans un dossier sur trouve plusieurs dossier, est seul est nommé E1234, blabla
lorsque la cellule de ma liste qui contient E1234 je veux cliquer sur un bouton pour ouvrir le fameux dossier du même nom.
merci beaucoup
<config>Windows xp /office 2003
A voir également:
- Ouvrir un fichier vba
- Comment ouvrir un fichier epub ? - Guide
- Comment ouvrir un fichier bin ? - Guide
- Ouvrir un fichier .dat - Guide
- Comment ouvrir un fichier docx ? - Guide
- Comment réduire la taille d'un fichier - Guide
14 réponses
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