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 :

Utilisation du résultat de la commande "Application.GetOpenFilename" [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Ingénieur après-vente
    Inscrit en
    Octobre 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Octobre 2014
    Messages : 23
    Points : 9
    Points
    9
    Par défaut Utilisation du résultat de la commande "Application.GetOpenFilename"
    Bonjour Tout le monde,
    je sollicite votre aide à propos d'une fonction pour ma macro
    en premier lieu j'utilise cette commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    B=Application.GetOpenFilename("AllFile(*.*),*.*", MultiSelect = True)
    afin d'ouvrir n'importe quel type de fichier
    après sélection j'intègre une boucle genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    If B like "*.txt" then 
    ...
    mais le problème est dans la déclaration des variables,
    serait il possible d'utiliser le fichier sélectionné par la fonction "GetOpenFilename" pour l'intégrer ensuite dans une boucle
    Merci de votre aide

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut


    Bonjour,

    en lisant l'aide de cette méthode, si son paramètre MultiSelect est activé une variable tableau est renvoyée
    contenant les fichiers sélectionnés ou False en cas d'abandon : donc par déduction variable à déclarer en type Variant !

    Utiliser par exemple l'instruction For Each … Next pour parcourir la liste …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #3
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par claire9999 Voir le message
    Bonjour Tout le monde,

    afin d'ouvrir n'importe quel type de fichier
    Merci de votre aide
    Je m'étais attardé à cette partie de la question et je n'avais pas trop fait attention à l'idée de la boucle. Entre temps, Marc-L a répondu à la question de la boucle, et je me permets de compléter, pour le bénéfice de tous ceux que la question pourrait intéresser.

    L'idée d'ouvrir n'importe quel type de fichier à partir de VBA, est un peu liée à la compatibilité du fichier avec Excel. Par exemple, un fichier texte peut être ouvert par Excel de la même manière qu'un classeur Excel classique:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub testavecbexcel()
    filetoopen = Application _
        .GetOpenFilename("Text Files (*.txt), *.txt")
        If filetoopen <> False Then
            Workbooks.Open (filetoopen)
        End If
    End Sub
    Ou bien, on peut utiliser VBA pour ouvrir le même fichier texte avec le bloc-notes; et cette méthode peut être utilisée avec les changements qui s'imposent avec les fichiers incompatibles avec Excel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub testavecblocnotes()
    Dim ligne As String
    filetoopen = Application _
        .GetOpenFilename("Text Files (*.txt), *.txt")
        If filetoopen <> False Then
            ligne = "Notepad.exe " & filetoopen
            Shell (ligne)
        End If
    End Sub
    Et là, je viens de "rentabiliser" le temps que j'ai pris à faire ces macros.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Ingénieur après-vente
    Inscrit en
    Octobre 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Octobre 2014
    Messages : 23
    Points : 9
    Points
    9
    Par défaut
    Bonjour clementmarcotte, Marc-L, le forum
    Merci pour votre aide.

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

Discussions similaires

  1. [Débutant] Commander une application sans utiliser les métodes sendkeys
    Par r.morel dans le forum VB.NET
    Réponses: 6
    Dernier message: 10/11/2014, 12h43
  2. Réponses: 1
    Dernier message: 29/12/2005, 13h25
  3. Ecrire le résultat d'une commande dans un fichier de l' OS
    Par Labienus dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 26/02/2004, 11h04

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