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 :

Récuperer une variable après un FileDialog [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations forums :
    Inscription : Août 2009
    Messages : 30
    Par défaut Récuperer une variable après un FileDialog
    Bonjour à tous,

    J'ai pu écrire une macro à l'aide de FAQ Excel et de l'aide Excel, seulement dans le code suivant, je souhaite supprimer la boucle et récupérer seulement le chemin et renseigner la variable : vrtSelectedItem, pour une utilisation future.
    Mais là, je bloque!
    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
    Sub SelectPhoto()
        Dim vrtSelectedItem As Variant
        With Application.FileDialog(msoFileDialogFilePicker)
            .Title = "Selection de la photo"
            .InitialFileName = "G:\_SOP\Etudes\CA VAL DE FRANCE\DOCS FINAUX\Photos\"
            .Filters.Clear
            .Filters.Add "Images Jpeg", "*.jpg"
            .InitialView = msoFileDialogViewPreview
            .Show
            'Step through each string in the FileDialogSelectedItems collection.
            For Each vrtSelectedItem In .SelectedItems
            '    Range("E15") = vrtSelectedItem
            Next vrtSelectedItem
        End With
    End Sub
    Merci +

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour,
    Ce serait peut-être plus simple de donner à l'utilisateur , uniquement la possibilité de choisir un répertoir ?
    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
    Sub ChoisirRepertoir()
    Dim Chemin As String, NB As Long
    Dim objShell As Object, objFolder As Object, oFolderItem As Object
        Set objShell = CreateObject("Shell.Application")
        Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)
     
        On Error GoTo ERREUR
        Set oFolderItem = objFolder.Items.Item
        On Error GoTo 0
        Chemin = oFolderItem.Path
        If Chemin = "" Then Exit Sub
        Set oFolderItem = objFolder.Items.Item
     
        MsgBox Chemin
    ERREUR:
    End Sub
    A+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations forums :
    Inscription : Août 2009
    Messages : 30
    Par défaut
    Merci pour la réponse,
    Mais justement non, cette boite de dialogue me plait (visualisation du fichier image), de plus la personne qui utilisera le fichier ne sait même pas se balader dans un explorateur, je lui montre la fenêtre de choix du fichier.
    Mon souci, compte tenu de mes connaissances en vba, je ne trouve pas le désignation de la variable genre :
    variable = item...
    merci

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Essaye alors avec..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
       For i = Len(.SelectedItems) To 1 Step -1
            If Mid(.SelectedItems, i, 1) = "\" Then Exit For
        Next i
        Chemin = Left(.SelectedItems, e)
        Fichier = Mid(.SelectedItems, e +1)
    A+
    Edit:
    Semblerait que j'ai pas bien compris la première fois, la boite de dialogie autorise les sélection multiple, d'où..essaye avec..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
       For Each vrtSelectedItem In .SelectedItems
            For i = Len(vrtSelectedItem) To 1 Step -1
                If Mid(vrtSelectedItem, i, 1) = "\" Then Exit For
            Next i
            Chemin = Left(vrtSelectedItem, e)
            Fichier = Mid(vrtSelectedItem, e + 1)
            Exit For
        Next vrtSelectedItem
    Ne tiendrait compte que de la première sélection.

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

Discussions similaires

  1. [Débutant] Récuperer une variable modifier après un "if"
    Par FruitSellers dans le forum C#
    Réponses: 1
    Dernier message: 29/01/2014, 16h31
  2. Réponses: 23
    Dernier message: 26/03/2006, 20h36
  3. [Tableaux] récuperer une variable tableau passé par URL
    Par molesqualeux dans le forum Langage
    Réponses: 2
    Dernier message: 23/12/2005, 01h12
  4. Réponses: 2
    Dernier message: 23/10/2005, 18h05
  5. [PHP-JS] Récuperer une variable javascript..
    Par gwendy dans le forum Langage
    Réponses: 3
    Dernier message: 17/10/2005, 21h24

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