Chemin d'accès au réseau [Résolu/Fermé]

Signaler
-
 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

Messages postés
12251
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2021
2 620
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
7418
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 juin 2021
637
Bonjour,

Comme ceci:

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

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.
Ok j'ai compris c'est le 19 :) Merci !!!