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 :

Retour d'un GetOpenFileName


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 50
    Par défaut Retour d'un GetOpenFileName
    Bonjour,

    Grâce à vous, à la lecture de cette discussion, je peux traiter l'erreur provoquée en cas d'annulation quand on a la fenêtre pour ouvrir un fichier, merci beaucoup.
    J'aurais cependant voulu savoir, par curiosité, ce qu'il faudrait mettre derrière Dim DocChoisi As comme type ?
    Est-ce un String ?

    Cordialement.

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Regarde ce que tu dit l'aide sur getopenfilename.... je voulais copier le morceau en question mais ca dessu ce n'est pas très explicite.
    Bon tu as donc très bien fait de poser la question, la réponse est bien string

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim DocChoisi As String
    En fait cela renvoie le chemin d'acces au fichier choisie sous forme de chaine de caractère.

  3. #3
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 50
    Par défaut
    D'accord.

    Par contre si ce qui est renvoyé est False (ma version est en anglais) et non pas le chemin du fichier, et si on définit DocChoisi comme un String, cela ne pose-t-il pas un problème : If Not DocChoisi = False Then ?
    En effet, False n'est pas un String...
    D'où le fait de ne pas mettre de type à DocChoisi... ?

    Merci de ton aide.

  4. #4
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Ce que tu peux utiliser toujours en variable string
    pour gérer version anglaise ou francaise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If DocChoisi = "False" Or DocChoisi = "Faux" Then Exit Sub

  5. #5
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 50
    Par défaut
    Tu es sûr ?

    Quand je fais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Dim Choice As String
        Choice = Application.GetOpenFilename
        If Not Choice = "False" Then
            Application.Workbooks.Open (Choice)
        Else
            MsgBox "What the fuck ?"
            ' variable annulation : permet d'aller à la fin du code (à mettre en place)
        End If
    et que je fais annuler, j'ai une erreur et la ligne surlignée est Application.Workbooks.Open (Choice), donc a priori suite à une annulation, ce qui est renvoyé (False, ou Faux) n'est pas un String.
    Du coup If Not Choice = "False" Then ne marche pas...

  6. #6
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Dim Choice As String
        Choice = Application.GetOpenFilename
        MsgBox  Choice 
        If Not Choice = "False" Then
            Application.Workbooks.Open (Choice)
        Else
            MsgBox "What the fuck ?"
            ' variable annulation : permet d'aller à la fin du code (à mettre en place)
        End If
    Le code que je t'ai donné fonctionne du moins pour la versions française
    Vérifie que choice contient bien False avec majuscule et tout

    Le code utilisé pour le test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Dim test As String
        test = Application.GetOpenFilename
        If test = "False" Or test = "Faux" Then Exit Sub

    Une autre solution de aales que je n'ai pas testé mais je lui fait confiance
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim QuelFichier As Variant
    QuelFichier = Application.GetOpenFilename("Excel Files (*.xls),*.xls")
    If VarType(QuelFichier) = vbBoolean Then
          Exit Sub
    End If
     
    Workbooks.Open Filename:= QuelFichier
    Par contre je n'aime pas trop les déclaration en variant quand ce n'est pas nécessaire mais bon

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/02/2013, 01h08
  2. Retour au mode texte par défaut
    Par coca dans le forum x86 16-bits
    Réponses: 6
    Dernier message: 12/12/2002, 17h22
  3. [XP] Retour d'experience
    Par virgile04 dans le forum Méthodes Agiles
    Réponses: 10
    Dernier message: 22/10/2002, 08h25
  4. Retour chariot dans un TMemo ?
    Par Vincent PETIT dans le forum C++Builder
    Réponses: 7
    Dernier message: 27/08/2002, 18h55
  5. URGENT: retour de string
    Par Pinggui dans le forum CORBA
    Réponses: 4
    Dernier message: 15/07/2002, 09h47

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