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 :

Problème ouverture de fichier avec Application.FileDialog(msoFileDialogOpen) [Débutant(e)]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2017
    Messages : 58
    Par défaut Problème ouverture de fichier avec Application.FileDialog(msoFileDialogOpen)
    Bonjour à tous,
    Je vous écris car j'ai un problème sur une macro.
    La macro permet d'ouvrir une boite de dialogue (avec un chemin donné) pour sélectionner un fichier Excel et l'ouvrir sauf que quand je clic sur le fichier pour l'ouvrir il ne s'ouvre pas.
    Voici le code :

    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
    Sub OuvrirDichier()
     
      Dim fld As FileDialog
      Dim strFilePath As String
      Dim Wb As Workbook
     
     
      Set fld = Application.FileDialog(msoFileDialogOpen)
      With fld
        .InitialFileName = "\\serveur\CONTROLE\INVALIDITE\Fiche INVA 7.5\"
        .Show
      End With
     
      If strFilePath <> "False" Then Exit Sub
     
      strFilePath = fld.SelectedItems(1)
     
    End Sub

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Tout simplement parce que Application.FileDialog(msoFileDialogOpen) n'ouvre pas de fichier.
    Cette propriété se contente d'ouvrir une fenêtre pour sélectionner le fichier à ouvrir.
    Comme toute propriété (contrairement aux méthodes), elle ne réalise pas d'action, elle se contente de renvoyer une valeur.

    Il faut ensuite ouvrir le fichier avec une instruction correspondant à sa nature.
    Par exemple, un Workbooks.Open si c'est un fichier Excel.

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2017
    Messages : 58
    Par défaut
    Je te remercie , ça marche nickel avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks.Open strFilePath
    A+

    Par contre j'ai un problème avec ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If strFilePath <> "False" Then Exit Sub
    En fait il m'empêche d'ouvrir le fichier. En effet quand je le désactive avec l'apostrophe le fichier s'ouvre mais quand il est actif il ne s'ouvre pas.

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Qu'est-ce que cette ligne est supposée faire ?

  5. #5
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2017
    Messages : 58
    Par défaut
    Elle est supposée fermer la boite de dialogue si je clique sur "Annuler" sans qu'il y ai un débogage.

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Leilou65 Voir le message
    Elle est supposée fermer la boite de dialogue si je clique sur "Annuler" sans qu'il y ai un débogage.
    Il semble donc normal que si tu annules, rien ne s'ouvre, non ?

    Mais il y a quand même quelque chose d'étrange : strFilePath est testée avant d'être renseignée.
    Vu que c'est une variable String, elle est égale à "" par défaut donc différente de "False".
    Il est donc normal que tu sois systématiquement éjectée.

  7. #7
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Leilou65 Voir le message
    Bonjour à tous,
    Je vous écris car j'ai un problème sur une macro.
    La macro permet d'ouvrir une boite de dialogue (avec un chemin donné) pour sélectionner un fichier Excel et l'ouvrir sauf que quand je clic sur le fichier pour l'ouvrir il ne s'ouvre pas.
    Voici le code :

    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
    Sub OuvrirDichier()
     
      Dim fld As FileDialog
      Dim strFilePath As String
      Dim Wb As Workbook
     
     
      Set fld = Application.FileDialog(msoFileDialogOpen)
      With fld
        .InitialFileName = "\\serveur\CONTROLE\INVALIDITE\Fiche INVA 7.5\"
        .Show
      End With
     
      If strFilePath <> "False" Then Exit Sub
     
      strFilePath = fld.SelectedItems(1)
     
    End Sub
    Bonjour,

    Tu as voulu utiliser le DileDialog et c'est très bien cependant tu as oublié une instruction : ".Execute" qui permet d'ouvrir ton fichier


    exemple :
    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
    'ouverture d'un fichier par boite FileDialog
    '**********************************************************
        'Declaration d'une variable comme objet FileDialog
        Dim fd As FileDialog
     
        'Creation d'un objet FileDialog comme un File Open dialog box.
        Set fd = Application.FileDialog(msoFileDialogOpen)
     
        'Déclaration d'une variable contenant le "path" de style variant
        Dim vrtSelectedItem As Variant 'obligatoirement de type variant
     
        With fd
            .AllowMultiSelect = True
            .InitialFileName = "\\serveur\CONTROLE\INVALIDITE\Fiche INVA 7.5"
            
            If .Show = -1 Then
                 .Execute
            Else
                Exit Sub
            End If
        End With
    PS : Ce code fonctionne parfaitement chez moi et j'en ouvre même plusieur

Discussions similaires

  1. Problème d'ouverture de fichier avec des API
    Par Serge_BDD dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/09/2014, 11h26
  2. Problème ouverture de fichiers avec NetBeans
    Par miouzeu dans le forum NetBeans
    Réponses: 5
    Dernier message: 19/09/2012, 17h11
  3. Réponses: 1
    Dernier message: 24/04/2008, 14h33
  4. Réponses: 1
    Dernier message: 05/03/2008, 09h58
  5. Réponses: 15
    Dernier message: 23/06/2006, 13h09

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