Chemin d'accès au réseau

Résolu/Fermé
zapp56 - 3 oct. 2015 à 15:47
 zapp56 - 25 oct. 2015 à 15:09
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

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
5 oct. 2015 à 10:13
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
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
3 oct. 2015 à 16:07
Bonjour,

Comme ceci:

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

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