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 :

Boite de dialogue - problème affichage fichiers


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 656
    Par défaut Boite de dialogue - problème affichage fichiers
    Bonjour,

    Je tourne en rond...

    L'utilisation de
    Application.Dialogs(xlDialogFileDelete)
    fonctionne très bien mais je souhaite à présent uniquement afficher les fichiers (sans pouvoir les effacer).

    Dans le code qui suit, le répertoire s'ouvre mais il est vide !

    Nota : Public Const Réf_Rép_Svg As String = "F:\Photos"

    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
    Sub Accès_Rép_Photos()
        Call Vérif_Existence_Rép_Photo_S
        If Rép_Photo_S_Existe = 0 Then GoTo errorHandler
    '    Application.Dialogs(xlDialogFileDelete).Show Réf_Rép_Svg 'Répertoire_S  'Propose Suppression du Ficher !
        Application.Dialogs(xlDialogOpen).Show Réf_Rép_Svg
     
        Exit Sub
    errorHandler:
        Call Msg_Rép_Photo_S_inexistant
    End Sub
    Sub Vérif_Existence_Rép_Photo_S()
     
        Rép_Photo_S_Existe = Réf_Rép_Svg
        Rép_Photo_S_Existe = Dir(Rép_Photo_S_Existe, vbDirectory)
     
        Rép_Photo_S_Existe = IIf(Rép_Photo_S_Existe = "", 0, 1)   'si le répertoire référencé sur S exite, alors 1 (sinon 0)
    End Sub
    Sub Msg_Rép_Photo_S_inexistant()
        MsgBox "Accès au répertoire des photos impossible !" _
            & vbCrLf & vbCrLf & _
        "Le répertoire sur S/ a été déplacé, renommé ou supprimé !", vbOKOnly + vbExclamation, "Alerte"
    End Sub
    En vous remerciant par avance pour vos lumières,
    Cdt

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Bonjour, Application.Dialogs(xlDialogOpen).Show Réf_Rép_Svg ne fonctionne pas comme attendu car xlDialogOpen s'attend à un chemin vers un fichier, pas un répertoire. Utilisez plutôt Application.GetOpenFilename, qui permet de sélectionner un fichier sans l'ouvrir et avec la possibilité de spécifier le chemin et le filtre.


    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
    Sub Accès_Rép_Photos()
        Call Vérif_Existence_Rép_Photo_S
        If Rép_Photo_S_Existe = 0 Then GoTo errorHandler
     
        ' Utilisation de GetOpenFilename pour afficher uniquement les fichiers sans les ouvrir
        Dim FichierSelectionne As Variant
        ChDrive Réf_Rép_Svg ' Change le lecteur vers F:\ si nécessaire
        ChDir Réf_Rép_Svg ' Change le répertoire vers F:\Photos
     
        FichierSelectionne = Application.GetOpenFilename("Tous fichiers (*.*),*.*", , "Sélectionnez un fichier dans le répertoire Photos")
     
        If FichierSelectionne = False Then
            MsgBox "Aucun fichier sélectionné.", vbInformation
        Else
            MsgBox "Vous avez sélectionné : " & FichierSelectionne, vbInformation
        End If
     
        Exit Sub
     
    errorHandler:
        Call Msg_Rép_Photo_S_inexistant
    End Sub

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 656
    Par défaut
    Bonjour Franck,

    Merci beaucoup pour cette nouvelle approche.

    Que dois-je modifier dans votre code pour pouvoir ouvrir les fichiers (photos) car tel est le but ?

    L'idée générale du classeur est de constituer une multitude de fiches (une par Feuille) mais plutôt que d'y insérer les photos dans chacune d'elle, je passe par un "bouton" pour ouvrir un répertoire dans lequel sont stockées lesdites photos.

    Nota : la consultation des photos ne doit pas entraver les opérations de saisies sur les fiches.

    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
    Sub Accès_Rép_Photos()
    Dim FichierSelectionne As Variant
     
        Call Vérif_Existence_Rép_Photo_S
        If Rép_Photo_S_Existe = 0 Then GoTo errorHandler
     
        ' Utilisation de GetOpenFilename pour afficher uniquement les fichiers sans les ouvrir
     
        ChDrive Réf_Rép_Svg ' Change le lecteur vers F:\ si nécessaire
        ChDir Réf_Rép_Svg ' Change le répertoire vers F:\Photos
     
        FichierSelectionne = Application.GetOpenFilename("Tous fichiers (*.*),*.*", , "Sélectionnez un fichier dans le répertoire Photos")
     
    '    If FichierSelectionne = False Then
    '        MsgBox "Aucun fichier sélectionné.", vbInformation
    '    Else
    '        MsgBox "Vous avez sélectionné : " & FichierSelectionne, vbInformation
    '    End If
     
        Exit Sub
     
    errorHandler:
        Call Msg_Rép_Photo_S_inexistant
    End Sub
    Cdt

  4. #4
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Si tu veux choisir et visionner les photos, teste ceci:

    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
    Sub OuvrirRépertoirePhotos()
        Dim FichierSelectionne As Variant
     
        ' Vérification que le répertoire existe
        If Dir(Réf_Rép_Svg, vbDirectory) = "" Then
            MsgBox "Le répertoire de photos n'existe pas.", vbExclamation
            Exit Sub
        End If
     
        ' Affiche une boîte de dialogue pour sélectionner une photo
        ChDrive Réf_Rép_Svg ' Change le lecteur si nécessaire
        ChDir Réf_Rép_Svg ' Change le répertoire vers F:\Photos
        FichierSelectionne = Application.GetOpenFilename("Fichiers image (*.jpg;*.jpeg;*.png;*.bmp),*.jpg;*.jpeg;*.png;*.bmp", , "Sélectionnez une photo à afficher")
     
        ' Si aucun fichier sélectionné, on sort
        If FichierSelectionne = False Then
            MsgBox "Aucune photo sélectionnée.", vbInformation
            Exit Sub
        End If
     
        ' Ouvrir la photo avec la visionneuse de photos par défaut
        Shell "explorer.exe """ & FichierSelectionne & """", vbNormalFocus
    End Sub

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 656
    Par défaut
    Merci beaucoup pour cette aide précieuse sans laquelle je ne me serais pas sorti de ce problème ! Ça fonctionne parfaitement.

    Cordialement,
    JP

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 656
    Par défaut
    Bonjour,

    Question subsidiaire (si quelqu'un revient sur ce fil de discussion...) :

    FichierSelectionne = Application.GetOpenFilename("Tous fichiers (*.*),*.*", , "Sélectionnez un fichier dans le répertoire Photos")
    Sauf erreur de ma part, le répertoire affiche par défaut les photos au format "Détails".

    Bien que je n'y crois pas trop, est-il possible par une ligne de code supplémentaire, de forcer l'affichage au format "Grandes icônes" ?

    Merci d'avance pour vos retours éventuels,

    Cdt

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/06/2011, 08h12
  2. Boite de dialogue copie de fichier
    Par vincob dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 09/04/2011, 14h44
  3. Réponses: 1
    Dernier message: 03/04/2010, 22h36
  4. Réponses: 7
    Dernier message: 09/09/2009, 09h10
  5. [Boîtes de dialogue] Liste de fichiers désordonnée
    Par Deallyra dans le forum Windows XP
    Réponses: 8
    Dernier message: 03/03/2009, 15h18

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