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'importation de fichiers [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 345
    Points : 249
    Points
    249
    Par défaut Problème d'importation de fichiers
    Bonjour,

    Je suis fasse à un problème plutôt bizarre, j'importe les des fichiers en utilisant une macro (copie-coller d'un classeur vers un autre), pour le même chemin spécifié, un fichier est correctement importé et pour les autres, Excel me dit carrément que le chemin n'existe pas

    J'utilise cette fonction pour importer les fichiers :

    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
    25
    26
    27
    Public Function Import_Fichiers(Chemin As String, Feuille_Coller As String, Feuille_ACopier As String) As Worksheet
     
    Dim WbDonnees As Workbook
    Dim WbSource As Workbook
    Dim ShDonnes As Worksheet
    Dim ShSource As Worksheet
     
    Application.ScreenUpdating = False
     
    Set WbSource = ThisWorkbook
    ActiveSheet.Name = Feuille_Coller
    Set ShSource = WbSource.Worksheets(Feuille_Coller)
    ShSource.Range(Range("A1"), Range("A1").SpecialCells(xlLastCell)).Clear
     
     
    Set WbDonnees = Workbooks.Open(Chemin)
    Set ShDonnees = WbDonnees.Worksheets(Feuille_ACopier)
     
    Application.DisplayAlerts = False
    ShDonnees.Cells.Copy ShSource.Range("A1")
    Application.DisplayAlerts = True
     
     
    WbDonnees.Close False
    Application.ScreenUpdating = True
     
    End Function
    Je l'appelle comme suit à partir d'un lecteur réseau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    'la première fonctionne correctement
    Set Planning = Import_Fichiers("\\mepinf038\Echanges Intersites\Direction souscription\Pole PAM-DSO\Indicateurs - TdB DSO\REPORTING\REPORTING SOUSCRIPTION\Fichiers extraction\Planning.xls", "Planning", "Planning")
     
    'la seconde ne fonctionne pas
    Set CCN_S = Import_Fichiers("\\mepinf038\Echanges Intersites\Direction souscription\Pole PAM-DSO\Indicateurs - TdB DSO\REPORTING\REPORTING SOUSCRIPTION\Fichiers extraction\Report_CCN.xls", "Santé CCN", "Santé")
     
    'J'ai vérifié les extensions des fichiers mille et une fois, j'ai fait des copier-coller des noms
    Le chemin présent dans les propriétés du fichier est :

    Y:\Direction souscription\Pole PAM-DSO\Indicateurs - TdB DSO\REPORTING\REPORTING SOUSCRIPTION\Fichiers extraction

    MAIS cela ne fonctionne pas même en l'utilisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set CCN_S = Import_Fichiers("Y:\Direction souscription\Pole PAM-DSO\Indicateurs - TdB DSO\REPORTING\REPORTING SOUSCRIPTION\Fichiers extraction\Report_CCN.xls", "Santé CCN", "Santé")
    Lorsque je mets le fichier dans mon C par exemple qui se n'est pas un répertoire réseau, le fichier s'importe correctement, ce que je ne comprends surtout pas c'est qu'un fichier avec le même chemin est importé, et les autres non.

    Erreur d'exécution '1004':

    Microsoft Office Excel ne peut accéder au fichier
    "\\mepinf038\Echanges Intersites\Direction souscription\Pole PAM-DSO\Indicateurs - TdB DSO\REPORTING\REPORTING SOUSCRIPTION\Fichiers extraction\Report_CCN.xls".

    Le nom du fichier ou le chemin n'existe pas

    ça fait deux heures que je bloque dessus !

    Merci d'avance pour votre aide
    Lorsque vous avez obtenu une réponse satisfaisante à votre discussion, N'oubliez pas de cliquer sur

    L'erreur n'annule pas la valeur de l'effort accompli.

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 634
    Points
    28 634
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Avant d'aller plus loin, As-tu essayé d'utiliser le même chemin + fichier avec la méthode Open donc sans passer par ta fonction ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 634
    Points
    28 634
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Sauf erreur de ma part, sans avoir testé et en relisant le code de tes procédures, je ne vois nulle part dans ta fonction nommée Import_Fichiers d'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Import_Fichiers = objetFeuille
    or tu invoques cette procédure par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set CCN_S = Import_Fichiers(chemin, "Santé CCN", "Santé")
    Je suis déjà étonné que ta première ligne fonctionne mais peut-être ai-je mal lu le code
    [EDIT]
    Je retire ce que j'avais écrit. Je m'attendais à un déclenchement d'erreur mais il n'a pas eu lieu mais la valeur de la variable CCN_S est Nothing donc tu n'aurais pas pu afficher une quelconque propriété de celle-ci.

    J'ai testé et la fonction copie bien la feuille, toutefois cela ne sert à rien d'utiliser l'instruction Set dans ce cas là.
    La ligne 4 (placée en commentaire) ou 5 aura le même effet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub TestImport_Fichiers()
     Const myFullName As String = "\\VBOXSVR\Partage\Dropbox\Partage MagPhil\TimeSheet\TimeSheet_db.xlsx"
     Dim sh As Worksheet
     ' Import_Fichiers myFullName, "Backup", "db"
     Set sh = Import_Fichiers(myFullName, "Backup", "db")
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 345
    Points : 249
    Points
    249
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub TestImport_Fichiers()
     Const myFullName As String = "\\VBOXSVR\Partage\Dropbox\Partage MagPhil\TimeSheet\TimeSheet_db.xlsx"
     Dim sh As Worksheet
     ' Import_Fichiers myFullName, "Backup", "db"
     Set sh = Import_Fichiers(myFullName, "Backup", "db")
    End Sub
    Bonjour,

    Merci beaucoup pour votre aide une fois de plus

    Je ne sais pas par quel miracle ça fonctionne maintenant , je ne comprends rien

    Mais bon l'essentiel est que ça fonctionne par ailleurs, je pensais qu'il était obligé d'utiliser Set lorsqu'on utilisait des objets, j'ai donc pensé à utiliser Set parce que ma fonction renvoie un Worksheet
    Lorsque vous avez obtenu une réponse satisfaisante à votre discussion, N'oubliez pas de cliquer sur

    L'erreur n'annule pas la valeur de l'effort accompli.

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 634
    Points
    28 634
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Mais bon l'essentiel est que ça fonctionne par ailleurs, je pensais qu'il était obligé d'utiliser Set lorsqu'on utilisait des objets, j'ai donc pensé à utiliser Set parce que ma fonction renvoie un Worksheet
    Absolument mais justement même si la fonction est typée comme un objet Worksheet, à aucun moment elle n'en renvoie un.
    C'était l'objet (sans intention de faire un jeu de mots) de ma réponse
    Sauf erreur de ma part, sans avoir testé et en relisant le code de tes procédures, je ne vois nulle part dans ta fonction nommée Import_Fichiers d'instruction Set Import_Fichiers = objetFeuille
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  6. #6
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 345
    Points : 249
    Points
    249
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour,

    Absolument mais justement même si la fonction est typée comme un objet Worksheet, à aucun moment elle n'en renvoie un.

    Ok merci pour cette précision, en gros je pourrais ne rien retourner avec la fonction ?

    Merci
    Lorsque vous avez obtenu une réponse satisfaisante à votre discussion, N'oubliez pas de cliquer sur

    L'erreur n'annule pas la valeur de l'effort accompli.

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

Discussions similaires

  1. (SQL Server Express 2008) Problème d'import de fichier texte
    Par Lioban dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 16/10/2009, 15h53
  2. Problème d'import de fichier texte: troncature!
    Par ted the Ors dans le forum VBA Access
    Réponses: 2
    Dernier message: 20/06/2009, 14h58
  3. Problème d'import de fichier texte distant
    Par ouss dans le forum Requêtes
    Réponses: 2
    Dernier message: 21/06/2007, 20h24
  4. Problème d'importation depuis fichier xls.
    Par penchu dans le forum Windows Forms
    Réponses: 2
    Dernier message: 13/05/2007, 11h42
  5. Problème d'importation de fichier excel
    Par couanp dans le forum MATLAB
    Réponses: 7
    Dernier message: 30/04/2007, 11h49

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