Chemin d'accès au réseau

Résolu
zapp56 -  
 zapp56 -
Bonjour,

Toujours VBA-Excel...
Voilà, je développe une application VBA qui nécessite un accès à l'arborescence du réseau.
Pour trouver le dossier auquel les utilisateurs pourraient avoir besoin, j'utilise l'interface "Application.Filedialog(...)".
Je voudrais que l' "InitialFileName" le dossier "réseau" de windows... Quel chemin d'accès dois-je spécifier ???

2 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    Comme te dis cs_Le Pivert (salutations au passage), avant de lancer Application.FileDialog, tu te dois de te "placer" "sur" le répertoire voulu.
    Du coup, il convient d'utiliser ChDir. Celui-ci va donc changer ton répertoire en cours par celui souhaité.

    Pour compléter la réponse de Le Pivert, le répertoire auquel tu souhaites accéder est un répertoire spécial de windows. Il comporte donc un chemin d'accès spécifique.
    Pour retrouver tous les chemins d'accès aux répertoires spéciaux de ton pc, tu peux utiliser cette fonction (en commentaire tu as la description des répertoires):

    Declare Function SHGetSpecialFolderLocation Lib "shell32" (ByVal hwnd As Long, ByVal folderid As Long, shidl As ITEMIDLIST) As Long
    Declare Function SHGetPathFromIDList Lib "shell32" Alias "SHGetPathFromIDListA" (ByVal shidl As Long, ByVal shPath As String) As Long
    
    Type SHITEMID
        SHItem As Long
        itemID() As Byte
    End Type
     
    Type ITEMIDLIST
        shellID As SHITEMID
    End Type
    
    Public Enum Repertoire
      FavorisCommuns = 1                   ' Favoris communs
      DemarrerProgrammes = 2               ' Dossier Programmes du menu Démarrer
      Documents = 5                        ' Mes documents (ou Documents sur Vista/7/8)
      Favoris = 6                          ' Favoris
      DemarrerDemarrage = 7                ' Dossier Démarrage du menu Démarrer
      DocumentsRecents = 8                 ' Documents récents
      EnvoyerVers = 9                      ' Dossier "Envoyer vers"
      Demarrer = 11                        ' Dossier du menu Démarrer
      Bureau = 16                          ' Bureau
      RaccourcisReseau = 19                ' Raccourcis Réseau
      Modeles = 21                         ' Dossier des modèles de documents
      DemarrerCommun = 22                  ' Menu Démarrer commun
      DemmarrerProgrammesCommun = 23       ' Dossier commun Programmes du menu Démarrer
      DemarrerDemarrageCommun = 24         ' Dossier commun Démarrage du menu Démarrer
      BureauCommun = 25                    ' Bureau commun (public)
      Application = 26                     ' Dossier Applications (AppData)
      RaccourcisImprimantes = 27           ' Raccourcis Imprimantes
      FichierInternetTemporaires = 32      ' Dossier des fichiers Internet temporaires
      Cookies = 33                         ' Cookies
      Historique = 34                      ' Historique de navigation
      Programmes = 38                      ' Program Files
    End Enum
    
    Function Chemin(lngDossier As Long) As String
       Dim CheminTemp As String, dtuID As ITEMIDLIST, lngRes As Long
    
       lngRes = SHGetSpecialFolderLocation(0&, lngDossier, dtuID)
       If lngRes = 0 Then
          CheminTemp = String$(512, Chr$(0))
          lngRes = SHGetPathFromIDList(ByVal dtuID.shellID.SHItem, ByVal CheminTemp)
          If lngRes Then Chemin = Left$(CheminTemp, InStr(CheminTemp, Chr$(0)) - 1)
      End If
    End Function

    Que tu peux appeler de cette manière :
    Sub Rep_Special()
    MsgBox Chemin(19)  '19 pour Raccourcis Réseau (cf Enum ci-dessus)
    End Sub

    3
  2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    Comme ceci:

    Dim chemin As Variant
     ChDir "C:\Users\....\Documents\" 'adapter chemin dossier à ouvrir
        chemin = Application.GetOpenFilename("Classeurs Excel (*.xls), *.xls")

    0
    1. zapp56
       
      Merci de ta réponse, mais j'ai dû mal m'exprimer...
      Je cherche un dossier particulier, le dossier "Réseau" ou "Favoris réseau" (peut-être devrais-je plutôt dire "lecteur réseau"), c'est à dire celui en dessous des lecteurs "C;D;E...;" dans l'explorateur windows.
      De sorte que l'utilisateur ait dans l'interface "filedialog" la liste de tous les équipements connectés au réseau auquel il appartient et qu'il puisse sélectionner l'équipement cible.
      0
    2. zapp56
       
      Ok j'ai compris c'est le 19 :) Merci !!!
      0