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 :

Import de fichier dans excel en vba


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 10
    Points : 14
    Points
    14
    Par défaut Import de fichier dans excel en vba
    Bonjour,

    je suis nouvelle sur ce forum et éspère que vous pourrez répondre à ma question,

    je voudrais créer une macro vba qui me permettrais d'importer une feuille provenant d'un fichier excel et de la copier dans le fichier ouvert.

    J'ai cherché sur internet un moyen de faire cela mais le problème c'est que je ne comprend pas les macros présentes dans certains forum,

    l'un d'entre vous aurait-il la gentillesse de m'aider?

    Je vous remercie d'avance

  2. #2
    Membre éprouvé
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Points : 1 124
    Points
    1 124
    Par défaut
    Bonjour Rabi,
    Pourrais-tu nous en dire un peu plus sur ton souhait?
    • Est-ce que les informations à copier seront toujours au même emplacement: même onglet, même cellule de départ?
    • quel sera la cellule de destination de départ, sur quel onglet du fichier ouvert?
    • Y aura-t-il des conditions à remplir pour sélectionner les informations à copier? Si oui, quelles seront ces conditions?

    Eric

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 10
    Points : 14
    Points
    14
    Par défaut Re : Import de fichier dans excel en vba
    Bonjour Eric,
    je tiens tout d'abord à vous remercie pour votre réponse très rapide,

    je vous explique mon problème avec plus de détails :

    Est-ce que les informations à copier seront toujours au même emplacement: même onglet, même cellule de départ?
    -> Oui, les informations seront exactement au même emplacement, en fait, je voudrais importer une même feuille mais avec des données "mises à jour"

    quel sera la cellule de destination de départ, sur quel onglet du fichier ouvert?
    -> Le fichier ouvert comprend 3 onglets, les onglets que je voudrais mettre à jour sont les onglets "actuelles " et "livrables".
    Je veux donc copier 2 fichiers différents, le premier fichier contiendra une feuille "actuelles" et le second fichier une feuille "livrables" avec les nouvelles données

    Y aura-t-il des conditions à remplir pour sélectionner les informations à copier? Si oui, quelles seront ces conditions?
    -> Il n'y a pas de conditions particulières à remplir

    J’espère avoir été assez claire....

    Merci du temps que vous y consacrerez

  4. #4
    Membre éprouvé
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Points : 1 124
    Points
    1 124
    Par défaut
    Bonjour Rabi,
    Essayes ce code, à coller dans le fichier de destination.
    Je ne l'ai pas testé aujourd'hui mais c'est une adaptation d'un code qui fonctionnait.
    Si une fenêtre d'erreur s'ouvre, cliques sur le bouton Déboguage, et note l'expression surlignée en jaune.
    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
    39
    40
    41
    42
    43
    44
    45
    Sub Copie_actuelles_livrables()
    Dim wkA As Workbook, wkB As Workbook
    Dim chemin As String, fichier As String
     
    'classeur A qui contient la macro et qui recevra les informations
    Set wkA = ThisWorkbook
     
    Application.DisplayAlerts = False 'désactive les fenetres de demande de confirmation avant suppression
     
    ActiveWorkbook.Sheets("actuelles").Delete 'suppression de la feuille "actuelles" car elle sera remplacée par les nouvelles ensuite
    ActiveWorkbook.Sheets("livrables").Delete 'suppression de la feuille "livrables" car elle sera remplacée par les nouvelles ensuite
     
    'chemin ou se trouve le fichier B
    chemin = "C:\_EX D\VBA\Developpez\Test Travail Fichier Fermé" ' Ici tu dois définir l'emplacement des fichiers dont les feuiles seront copiées
     
    'nom du fichier B
    fichier = "Nom_fichier1.xlsx" 'ici tu dois mettre le nom exact du premier fichier
     
    'ouvre le fichier B
    Workbooks.Open chemin & "\" & fichier
     
    'met en variable le classeur B
    Set wkB = ActiveWorkbook
     
    'copie la feuille "feuil1" du classeur B avant la feuille 1 dans le classeur A
    wkB.Sheets("actuelles").Copy before:=wkA.Sheets(1)
     
    wkB.Close True 'ferme et enregistre le classeur B
     
    'nom du fichier C
    fichier = "Nom_fichier1.xlsx" 'ici tu dois mettre le nom exact du deuxième fichier
     
    'ouvre le fichier C
    Workbooks.Open chemin & "\" & fichier
     
    'met en variable le classeur C
    Set wkB = ActiveWorkbook
     
    'copie la feuille "feuil1" du classeur C avant la feuille 2 dans le classeur A
    wkB.Sheets("livrables").Copy before:=wkA.Sheets(2)
     
    wkB.Close True 'ferme et enregistre le classeur B
     
     
    End Sub
    Eric

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 10
    Points : 14
    Points
    14
    Par défaut
    J'ai fait ce que vous m'avez dit,

    en lancant le déboguage, l'erreur '9' apparait :"l'indice n'appartient pas à la séléection" et le la ligne ActiveWorkbook.Sheets("actuelles").Delete devient jaune.

    Je note que les feuilles actuelles et livrables ont été supprimées, donc je ne comprend pas cette erreur

  6. #6
    Membre éprouvé
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Points : 1 124
    Points
    1 124
    Par défaut
    Rabi,
    Il faut, pour que la macro fonctionne, que les onglets à copier soit également appelés "actuelles" et "livrables".

    J'ai testé et le code fonctionne chez moi.
    Il faut coller le code dans un module, j'ai oublié de préciser, car si tu le colles sur une feuille et qu'ensuite tu la supprimes...
    Nom : Module.jpg
Affichages : 1920
Taille : 27,1 Ko
    Tu dois également vérifier le chemin d'accès aux fichier, le nom de chacun des fichiers et le nom des tes onglets.
    Voici le code que j'ai testé en renommant les fichiers à copier "Rabi_1" et "Rabi_2".

    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
    39
    40
    41
    42
    43
    44
    45
    Sub Copie_actuelles_livrables()
    Dim wkA As Workbook, wkB As Workbook
    Dim chemin As String, fichier As String
     
    'classeur A qui contient la macro et qui recevra les informations
    Set wkA = ThisWorkbook
     
    Application.DisplayAlerts = False 'désactive les fenetres de demande de confirmation avant suppression
     
    ActiveWorkbook.Sheets("actuelles").Delete 'suppression de la feuille "actuelles" car elle sera remplacée par les nouvelles ensuite
    ActiveWorkbook.Sheets("livrables").Delete 'suppression de la feuille "livrables" car elle sera remplacée par les nouvelles ensuite
     
    'chemin ou se trouve le fichier B
    chemin = "C:\_EX D\VBA\Developpez\Rabi" ' Ici tu dois définir l'emplacement des fichiers dont les feuiles seront copiées
     
    'nom du fichier B
    fichier = "Rabi_2.xlsx" 'ici tu dois mettre le nom exact du premier fichier
     
    'ouvre le fichier B
    Workbooks.Open chemin & "\" & fichier
     
    'met en variable le classeur B
    Set wkB = ActiveWorkbook
     
    'copie la feuille "feuil1" du classeur B avant la feuille 1 dans le classeur A
    wkB.Sheets("actuelles").Copy before:=wkA.Sheets(1)
     
    wkB.Close True 'ferme et enregistre le classeur B
     
    'nom du fichier C
    fichier = "Rabi_1.xlsx" 'ici tu dois mettre le nom exact du deuxième fichier
     
    'ouvre le fichier C
    Workbooks.Open chemin & "\" & fichier
     
    'met en variable le classeur C
    Set wkB = ActiveWorkbook
     
    'copie la feuille "feuil1" du classeur C avant la feuille 2 dans le classeur A
    wkB.Sheets("livrables").Copy before:=wkA.Sheets(2)
     
    wkB.Close True 'ferme et enregistre le classeur B
     
     
    End Sub
    J'espère que tu as une sauvegarde de ton fichier initial avant suppression des onglets
    Eric

  7. #7
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 10
    Points : 14
    Points
    14
    Par défaut
    Je vais tester avec ce nouveau code,

    oui ne t'inquiète pas, j'avais fait une copie du fichier

  8. #8
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 10
    Points : 14
    Points
    14
    Par défaut
    Merci Eric !!! cela fonctionne parfaitement!

    Bonne soirée :-)
    Merci encore le temps que tu m'as consacré :-)

  9. #9
    Membre éprouvé
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Points : 1 124
    Points
    1 124
    Par défaut
    Bonjour Rabi,
    Heureux que tu aies trouvé ce que tu cherchais.
    N'oubli pas de cliquer sur le bouton
    Eric

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

Discussions similaires

  1. [Toutes versions] Importation Planning Project dans Excel par VBA
    Par Sebung dans le forum Project
    Réponses: 2
    Dernier message: 05/03/2012, 15h30
  2. Importer une requete dans Excel via VBA
    Par ted the Ors dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 16/04/2008, 19h29
  3. ouvrir un fichier dans un programme VBA sous excel
    Par bryan dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/01/2008, 14h38
  4. [VBA-E] traitement en série de fichiers dans excel
    Par potili2 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 02/02/2007, 16h15
  5. [VBA-E]Changer propriété auteur du fichier dans excel
    Par JulienCEA dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/03/2006, 13h15

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