IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Recuperer l'adresse d'un dossier avec un UserForm [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 887
    Par défaut Recuperer l'adresse d'un dossier avec un UserForm


    Dans un fichier Excel, j'ai un UserForm pour selectionner un fichier avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CommandButton1_Click()
       With Application.FileDialog(msoFileDialogOpen)
            .AllowMultiSelect = False
            .Show
            UserForm1.TextBox1.Text = .SelectedItems(1)
        End With
     End Sub
    Ce UserForm, corespond plus ou moins à la fonction "Ouvrir un fichier"

    Sauf que je voudrai que sa me recupere l'adresse d'un dossier et non pas d'un fichier et je sais pas comment faire.

    Quelqu'un aurrait il une idée SVP ??

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    Le chemin complet d'un fichier est composé du chemin complet d'un répertoire/dossier, du signe "\" et du nom du fichier.

    La fonction InstrRev te permet de trouver la position du dernier caractère choisi ("\" pour ce qui t'intéresse)
    La fonction Left te permet d'extraire tout ce qui est à gauche jusqu'à une position.
    Voilà tout ! A toi de jouer (et c'est VRAIMENT un jeu on ne peut plus simple ...)

  3. #3
    Membre éclairé Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 887
    Par défaut
    Escuse moi mais j'ai pas tout compris à sa que tu ma dit

    Je suis pas vraiement balaise en VBA

    mais si je comprend un peut, avec cette fonction InstrRev va reperé le dernier "\" dans l'adresse du fichier.
    et avec Left je peu donc recuperer le nom du repertoire
    Donc il faut utiliser les deux fonction a la fois (si je comprend un peu)

    Mais je voi pas trop comment l'appliquer à mon code

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Par défaut
    bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub b()
    Dim f As String
    Dim d
    f = "C:\TOTO\TATA\monfichier.xls"
    d = InStrRev(f, "\")
    d = Left(f, d - 1)
    MsgBox d
    End Sub

  5. #5
    Membre éclairé Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 887
    Par défaut
    Merci c'est cool sa a l'air de marcher

  6. #6
    Membre éclairé Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 887
    Par défaut
    En fait en cherchant mieu, j'ai trouver ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Private Const BIF_RETURNONLYFSDIRS = 1
    Private Const BIF_DONTGOBELOWDOMAIN = 2
    Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
    Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, _
        ByVal lpBuffer As String) As Long
    Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, _
        ByVal lpString2 As String) As Long
    Private Type BrowseInfo
        hWndOwner As Long
        pIDLRoot As Long
        pszDisplayName As Long
        lpszTitle As Long
         ulFlags As Long
        lpfnCallback As Long
        lParam As Long
        iImage As Long
    End Type
    Private Sub CommandButton1_Click()
        Dim lpIDList As Long
        Dim strBuffer As String
        Dim strTitre As String
        Dim tBrowseInfo As BrowseInfo
        Dim SelectFolder As String
        Dim Handle As Long
     
    strTitre = Titre
    With tBrowseInfo
        .hWndOwner = Handle
        .lpszTitle = lstrcat(strTitre, "")
        .ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN
    End With
    lpIDList = SHBrowseForFolder(tBrowseInfo)
    If (lpIDList) Then
        strBuffer = String(260, vbNullChar)
        SHGetPathFromIDList lpIDList, strBuffer
        SelectFolder = Left(strBuffer, InStr(strBuffer, vbNullChar) - 1)
    End If
        Recherche.TextBox1.Text = SelectFolder & "\"
    End Sub
    Qui utilise la fenêtre de sélection de répertoire standard de Windows et pour moi marche nikel comme je veu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Recuperer seulement le nom des dossiers avec GetDirectories
    Par tardmonkey dans le forum VB.NET
    Réponses: 5
    Dernier message: 09/01/2013, 14h42
  2. Recuperer l'adresse IP locale avec getaddrinfo
    Par Sin-an dans le forum Réseau
    Réponses: 0
    Dernier message: 02/05/2011, 19h52
  3. Récupérer l'adresse d'un dossier
    Par marion782 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 25/05/2005, 11h38
  4. Affichage de l'adresse d'une chaine avec cout
    Par thierryguilbert dans le forum SL & STL
    Réponses: 4
    Dernier message: 14/03/2005, 17h04
  5. [VB6] [Réseau] Récupérer la taille d'un fichier avec inet
    Par pcpunch dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 20/02/2003, 22h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo