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 :

Importer des données à partir d'un autre fichier excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2015
    Messages : 117
    Points : 57
    Points
    57
    Par défaut Importer des données à partir d'un autre fichier excel
    Je dois importer des données d'un autre fichier excel, dont la source est : "C:\Users\fetcheberry\Desktop\perf automatisaiton fabien.xlsx" vers mon document excel ouvert.

    De plus je souhaite que les deux colonnes présentes dans "C:\Users\fetcheberry\Desktop\perf automatisaiton fabien.xlsx" soit introduites en colonne "K" et "L" dans mon fichier excel ouvert.

    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
     
    Sub Importer()
     
    Dim Chemin As String, Fichier As String, Fichier2 As String
    Chemin = ThisWorkbook.Path & Application.PathSeparator
    Fichier = "C:\Users\fetcheberry\Desktop\perf automatisaiton fabien.xlsx"
     
      Application.ScreenUpdating = False
        With Workbooks.Open(Chemin & Fichier)
           Range("A2").Select
           Range(Selection, Selection.End(xlDown)).Select
           Range(Selection, Selection.End(xlToRight)).Select
           Selection.Copy
           ThisWorkbook.ActiveSheet.Range("K1").PasteSpecial Paste:=xlPasteValues
           .Close savechanges:=False
        End With
    End Sub
    Une personne aurait un code à me proposer, car mon code ci-dessus ne fonctionne malheureusement pas.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Points : 1 166
    Points
    1 166
    Par défaut
    Salut,

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    Sub Importer()
     
        Dim Chemin As String, Fichier As String, Fichier2 As String
     
        '
        Dim wkb As Workbook
        Dim shFrom As Worksheet
        Dim shTo As Worksheet
        Dim varTab As Variant
        '
        '
        Chemin = ThisWorkbook.Path & Application.PathSeparator
        Fichier = "C:\Users\fetcheberry\Desktop\perf automatisaiton fabien.xlsx"
     
        ' pointeurs
        Set wkb = Workbooks.Open(Chemin & Fichier)
        Set shFrom = wkb.Worksheets("LeNomDeLaFeuilleSource")
        Set shTo = ThisWorkbook.Worksheets("LeNomDeLaFeuilleDestination")
     
        Application.ScreenUpdating = False
     
    '    With Workbooks.Open(Chemin & Fichier)
    '    Range("A2").Select
    '    Range(Selection, Selection.End(xlDown)).Select
    '    Range(Selection, Selection.End(xlToRight)).Select
    '    Selection.Copy
    '    ThisWorkbook.ActiveSheet.Range("K1").PasteSpecial Paste:=xlPasteValues
    '    .Close savechanges:=False
    '    End With
     
        varTab = shFrom.Range(shFrom.Range("A1"), shFrom.Range("A1").End(xlDown))
        shTo.Range("K1").Resize(UBound(varTab), UBound(varTab, 2)) = varTab
     
        varTab = shFrom.Range(shFrom.Range("B1"), shFrom.Range("B1").End(xlDown))
        shTo.Range("L1").Resize(UBound(varTab), UBound(varTab, 2)) = varTab
     
    End Sub

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2015
    Messages : 117
    Points : 57
    Points
    57
    Par défaut
    @Philippe PONS, Merci de ta réponse

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    Sub Importer()
     
        Dim Chemin As String, Fichier As String, Fichier2 As String
     
        '
        Dim wkb As Workbook
        Dim shFrom As Worksheet
        Dim shTo As Worksheet
        Dim varTab As Variant
        '
        '
        Chemin = ThisWorkbook.Path & Application.PathSeparator
        Fichier = "C:\Users\fetcheberry\Desktop\perf automatisaiton fabien.xlsx"
     
        ' pointeurs
        Set wkb = Workbooks.Open(Chemin & Fichier)
        Set shFrom = wkb.Worksheets("LeNomDeLaFeuilleSource")
        Set shTo = ThisWorkbook.Worksheets("LeNomDeLaFeuilleDestination")
     
        Application.ScreenUpdating = False
     
    '    With Workbooks.Open(Chemin & Fichier)
    '    Range("A2").Select
    '    Range(Selection, Selection.End(xlDown)).Select
    '    Range(Selection, Selection.End(xlToRight)).Select
    '    Selection.Copy
    '    ThisWorkbook.ActiveSheet.Range("K1").PasteSpecial Paste:=xlPasteValues
    '    .Close savechanges:=False
    '    End With
     
        varTab = shFrom.Range(shFrom.Range("A1"), shFrom.Range("A1").End(xlDown))
        shTo.Range("K1").Resize(UBound(varTab), UBound(varTab, 2)) = varTab
     
        varTab = shFrom.Range(shFrom.Range("B1"), shFrom.Range("B1").End(xlDown))
        shTo.Range("L1").Resize(UBound(varTab), UBound(varTab, 2)) = varTab
     
    End Sub
    Du coup sur ton code j'ai uniquement modifié :

    ("LeNomDeLaFeuilleSource") => "Feuil1" (qui est issue de C:\Users\fetcheberry\Desktop\perf automatisaiton fabien.xlsx)
    et
    ("LeNomDeLaFeuilleDestination") => "Feuil1"(qui est le nom de la feuille de destination)

    Jusqu'ici tout est bon ?

    Cependant lorsque j'exécute la macro, ce message apparaît : "erreur d'exécution '1004' ".
    Pourtant j'ai bien vérifié mais l'adresse où se trouve les données dont j'ai besoin se situe bien au "C:\Users\fetcheberry\Desktop\perf automatisaiton fabien.xlsx".

  4. #4
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 421
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 421
    Points : 16 265
    Points
    16 265
    Par défaut
    Bonjour

    Quand les noms contiennent des espaces , ou toujours pour être tranquille, il faut les imbriquer dans des ' (apostrophes)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "'C:\Users\fetcheberry\Desktop\perf automatisaiton fabien.xlsx'"
    et automatisaiton semble bizarre
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2015
    Messages : 117
    Points : 57
    Points
    57
    Par défaut
    Concernant "automatisaition", c'est une faute de frappe que j'ai fait lors de l'enregistrement du fichier (j'ai bien vérifié dans : fichier -> information, l'adresse est bien : C:\Users\fetcheberry\Desktop\perf automatisaiton fabien.xlsx')

    Du coup j'ai fait ce que tu m'as dit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       "'C:\Users\fetcheberry\Desktop\perf automatisaiton fabien.xlsx'"
    Ça m'indique toujours :


    Nom : erreur d'exécution 1004.png
Affichages : 2003
Taille : 18,7 Ko

  6. #6
    Membre éprouvé
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Points : 1 166
    Points
    1 166
    Par défaut
    Dans la fenêtre d'exécution, fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ?Dir("C:\Users\fetcheberry\Desktop\perf automatisaiton fabien.xlsx")
    Si ça renvoi le nom du fichier, c'est qu'il existe bel et bien!

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2015
    Messages : 117
    Points : 57
    Points
    57
    Par défaut
    Merci Philippe PONS, ton code marche !

    Par contre à chaque fois que j'exécute ce code le document excel ou je vais piocher les informations s'ouvre.
    Il n'existerait pas une astuce pour fermer ce document automatiquement ?

  8. #8
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 421
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 421
    Points : 16 265
    Points
    16 265
    Par défaut
    Bonjour

    Ton message d'erreur montre que tu as 2 fois le chemin : dans ton code tu mets chemin et fichier. Donc ne remet pas le chemin dans ta variable fichier.

    Pour fermer un fichier il faut une ligne close...
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2015
    Messages : 117
    Points : 57
    Points
    57
    Par défaut
    Ok 78chris, je vais bosser sur ça pour régler ce petit problème !

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

Discussions similaires

  1. Importer des données à partir d'un fichier excel fermé
    Par yassinefeki dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 28/06/2019, 10h54
  2. [XL-2007] Importer des données à partir d'un fichier excel
    Par aminee1666 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/06/2011, 19h05
  3. [Débutant] Probleme d'importation des données à partir des fichiers textes
    Par bahja29 dans le forum MATLAB
    Réponses: 3
    Dernier message: 12/03/2009, 16h28
  4. Réponses: 8
    Dernier message: 22/08/2006, 12h51
  5. [SQLCE 2000] Importer des données à partir de fichiers
    Par Friz dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/03/2006, 19h39

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