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 d'ouverture de fichier [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Runsh63
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Mars 2011
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2011
    Messages : 476
    Par défaut Problème d'ouverture de fichier
    Bonjour,

    J'ai un problème tout bête mais que je n'arrive pas à résoudre... Je cherche à ouvrir un fichier Excel pour y importer des données.
    Après avoir cherché sur le net, voilà ce que j'ai pu taper :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Compile_AEM_Data()
     
    Dim DataSource As String
     
    Application.ScreenUpdating = False
     
    DataSource = Application.GetOpenFilename("Excel Files (*.xls*), *.xls*", , "Sélectionnez le fichier source")
     
        If DataSource = False Then
           MsgBox "Vous n'avez pas sélectionner de fichier, veuillez relancer la procédure SVP.", vbCritical, "Erreur dans la sélection du fichier source"
           Exit Sub
        Else
           Workbooks.Open DataSource
        End If
    Lorsque je sélectionne un fichier Excel, j'ai un "Run-time error '13': Type mismatch.

    Qu'ai-je mal fait ?

    Merci d'avance pour votre patience et votre réponse.

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Datasource est un String et pas un booléen.
    Si tu choisis un fichier, DataSource contiendra le chemin complet du fichier
    Si tu ne choisis rien, Datasource contiendra la chaine "Faux"


    il faut donc tester, non pas sur l'opérateur booléen False, mais sur le String "Faux"


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Compile_AEM_Data()
    Dim DataSource As String
     
    Application.ScreenUpdating = False
    DataSource = Application.GetOpenFilename("Excel Files (*.xls*), *.xls*", , "Sélectionnez le fichier source")
     
    If DataSource = "Faux" Then
       MsgBox "Vous n'avez pas sélectionner de fichier, veuillez relancer la procédure SVP.", vbCritical, "Erreur dans la sélection du fichier source"
       Exit Sub
    Else
       Workbooks.Open DataSource
    End If
     
    End Sub

  3. #3
    Membre chevronné Avatar de pasdechances
    Homme Profil pro
    Alternant, Ingénieur en systèmes Informatiques et Industriels
    Inscrit en
    Septembre 2015
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Alternant, Ingénieur en systèmes Informatiques et Industriels
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Septembre 2015
    Messages : 218
    Par défaut
    Citation Envoyé par joe.levrai Voir le message
    Bonjour,

    Datasource est un String et pas un booléen.
    Si tu choisis un fichier, DataSource contiendra le chemin complet du fichier
    Si tu ne choisis rien, Datasource contiendra la chaine "Faux"


    il faut donc tester, non pas sur l'opérateur booléen False, mais sur le String "Faux"


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Compile_AEM_Data()
    Dim DataSource As String
     
    Application.ScreenUpdating = False
    DataSource = Application.GetOpenFilename("Excel Files (*.xls*), *.xls*", , "Sélectionnez le fichier source")
     
    If DataSource = "Faux" Then
       MsgBox "Vous n'avez pas sélectionner de fichier, veuillez relancer la procédure SVP.", vbCritical, "Erreur dans la sélection du fichier source"
       Exit Sub
    Else
       Workbooks.Open DataSource
    End If
     
    End Sub
    lors du test de son code l'erreur d'écrite premierement ne met pas apparu.
    l'erreur que tu cite la est une erreur de type.

    son erreur run time doit etre du a une autorisation ou un probleme de fichier je pense.

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Pour t'en convaincre, regarde ça :

    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 Compile_AEM_Data()
     
    Dim DataSource
     
    Application.ScreenUpdating = False
     
    DataSource = Application.GetOpenFilename("Excel Files (*.xls*), *.xls*", , "Sélectionnez le fichier source")
     
        If DataSource = False Then
           MsgBox "Vous n'avez pas sélectionner de fichier, veuillez relancer la procédure SVP.", vbCritical, "Erreur dans la sélection du fichier source"
           Exit Sub
        Else
           Workbooks.Open DataSource
        End If
    End Sub

    si je ne type pas Datasource ... il n'y a plus de problème !

    DataSource non typé :

    - sera un booléen (False) si on ne choisis pas de fichier
    - sera un variant (string du chemin complet du fichier) si on choisi un fichier


    voici pour te convaincre une seconde fois :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub ioi()
    a = Application.GetOpenFilename("Feuilles de calcul (*.xlsx;*.xls), *.xls; *.xlsx", , , , True)
    MsgBox TypeName(a)
    End Sub
    essaye deux fois :

    - en choisissant un fichier
    - sans choisir de fichier

  5. #5
    Membre chevronné Avatar de pasdechances
    Homme Profil pro
    Alternant, Ingénieur en systèmes Informatiques et Industriels
    Inscrit en
    Septembre 2015
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Alternant, Ingénieur en systèmes Informatiques et Industriels
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Septembre 2015
    Messages : 218
    Par défaut
    Excuse moi, j'ai mal compris l'erreur, effectivement la seule erreur qu'il y avais était le type de datasource.
    je pensais en réalité qu'elle était ailleur.

  6. #6
    Membre éclairé Avatar de Runsh63
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Mars 2011
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2011
    Messages : 476
    Par défaut
    Mes excuses pour ma tardive réponse. Merci beaucoup pour la solution, qui fonctionne à merveille, et surtout pour l'explication, qui est un plus car ça m'a permis de comprendre, et ainsi éviter ce genre d'erreur à l'avenir.

    Encore mille fois merci, bonne journée à vous tous !

  7. #7
    Membre chevronné Avatar de pasdechances
    Homme Profil pro
    Alternant, Ingénieur en systèmes Informatiques et Industriels
    Inscrit en
    Septembre 2015
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Alternant, Ingénieur en systèmes Informatiques et Industriels
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Septembre 2015
    Messages : 218
    Par défaut
    Bonjour,

    etrange erreur que tu as la.
    Personnelement j'ai tester ton bout de code et l'erreur que j'ai rencontré est lier au type de ta variable datasource.
    ta condition devrai tester une difference vide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if datasource <> "" then
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if datasource = "" then
    apres je ne me suis pas attardé sur la fonction Application.GetOpenFilename, mais dans le cas present, elle ne tien guere compte de ton filtre "*.xls" .
    cela dit apres avoir corrigé la petite erreur de type je n'ai pas eu d'erreur, le probleme ne vien peut etre pas de ton code.

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

Discussions similaires

  1. [VBA - Excel] Problème d'ouverture de fichier
    Par seiryujay dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/12/2006, 10h55
  2. [Système] Problème d'ouverture de fichier
    Par Neii Mad dans le forum Langage
    Réponses: 8
    Dernier message: 03/07/2006, 00h11
  3. Problème à l'ouverture de fichiers Word
    Par Asdorve dans le forum Word
    Réponses: 8
    Dernier message: 19/05/2006, 12h03
  4. Réponses: 5
    Dernier message: 05/05/2006, 15h08
  5. Réponses: 2
    Dernier message: 20/04/2006, 22h12

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