Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2545 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Mettre un chemin d’accès dans une variable.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Mettre un chemin d’accès dans une variable.

n°1076215
RabahTheHu​t
Posté le 09-05-2005 à 13:12:56  profilanswer
 

Bonjour,
Avec une macro, je voudrai mettre dans une variable un chemin d’accès. Avec GetOpenFilename on a bien un chemin d’accès, mais on est obligé de sélectionner un document, or le fichier est vide, je ne veux que le chemin d’accès.
Merci pour votre aide.

mood
Publicité
Posté le 09-05-2005 à 13:12:56  profilanswer
 

n°1076330
AlainTech
Pas trouvé? Cherche encore!
Posté le 09-05-2005 à 14:18:39  profilanswer
 

3 topics où tu parles de fichier...
Je suppose que, pour les 3, tu veux parler de dossier (ou répertoire).
 
Le chemin dont tu parles est-il fixe ou le client doit-il choisir le dossier?


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
n°1076420
RabahTheHu​t
Posté le 09-05-2005 à 15:16:10  profilanswer
 

En effet c'est plutôt dossier. Désolé si je me suis mal exprimé.
Je veux que ça soit l'opérateur qui choisisse le chemin d'accès et qu'il se mette dans une variable.
Avec par exemple
Variable = GetOpenFilename
 
une boîte de dialogue s'ouvre et le chemin d'accès du fichier sélectionner se met dans la variable. Mais le problème est qu'il n'y a pas de documents dans le dossier et que je ne veux mettre dans la variable que le chemin sans le nom du dossier.
Comment faire?
Merci bcp!  

n°1076685
knakes
Posté le 09-05-2005 à 17:42:46  profilanswer
 

Bon c'est un code à copier coller assez efficace. Normalement ça fonctionne sous tous les OS. A vérifier.
Dans un module :

Code :
  1. Option Explicit
  2. Private Type BrowseInfo
  3.     hWndOwner      As Long
  4.     pIDLRoot       As Long
  5.     pszDisplayName As Long
  6.     lpszTitle      As Long
  7.     ulFlags        As Long
  8.     lpfnCallback   As Long
  9.     lParam         As Long
  10.     iImage         As Long
  11. End Type
  12. Private Const BIF_RETURNONLYFSDIRS = 1
  13. Private Const MAX_PATH = 260
  14. Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)
  15. Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal _
  16.    lpString1 As String, ByVal lpString2 As String) As Long
  17.  
  18. Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As _
  19.    BrowseInfo) As Long
  20.  
  21. Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal _
  22.    pidList As Long, ByVal lpBuffer As String) As Long
Code :
  1. Public Function BrowseForFolder(hWndOwner As Long, sPrompt As _
  2.    String) As String
  3.     Dim nNull As Integer
  4.     Dim lpIDList As Long
  5.     Dim nResult As Long
  6.     Dim  sPath As String
  7.     Dim bi As BrowseInfo
  8.     bi.hWndOwner = hWndOwner
  9.     bi.lpszTitle = lstrcat(sPrompt, "" )
  10.     bi.ulFlags = BIF_RETURNONLYFSDIRS
  11.     lpIDList = SHBrowseForFolder(bi)
  12.  
  13.     If lpIDList Then
  14.         sPath = String$(MAX_PATH, 0)
  15.         nResult = SHGetPathFromIDList(lpIDList, sPath)
  16.         Call CoTaskMemFree(lpIDList)
  17.         nNull = InStr(sPath, vbNullChar)
  18.         If nNull Then
  19.             sPath = Left$(sPath, nNull - 1)
  20.         End If
  21.     End If
  22.     BrowseForFolder = sPath
  23. End Function


Là où tu en as besoin :

Code :
  1. BrowseForFolder(Me.hwnd, "message personnalisé" )


 
Edit : Mets variable = BrowseForFolder(Me.hwnd, "message personnalisé" )
En espérant t'avoir aidé.


Message édité par knakes le 09-05-2005 à 17:43:29

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Mettre un chemin d’accès dans une variable.

 

Sujets relatifs
servlet et accés à la base de donnée oraclechemin absolu pour une video?
Interdir accès dossier, mais pas au fichiers [Résolu]Comment mettre le programme televison en ligne ?
Variable de session et EASYPHPMettre un page web dans une autre
Erreur : Accès refusé pour l'utilisateur: 'postgres'@'@localhost' (motCalcul / Variable!
2 Questions : fonction Chr() et variable staticpassage de variable par adresse, Comment passer deux fonctions ?
Plus de sujets relatifs à : Mettre un chemin d’accès dans une variable.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR