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 un fichier Excel dans un autre. [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2007
    Messages : 17
    Par défaut Importer un fichier Excel dans un autre.
    Bonjour,

    Dans mon entreprise, j'ai un outil qui me permet de gérer le suivi de mes produits (defauts constaté et sa date, date du second controle, etc....). Le programme travaille avec un BD oracle en arrière plan.
    Je peux exporter vers excel ce tableau brut, et ensuite je fais une sauvegarde.
    Maintenant je souhaite pouvoir importer ce fichier a l'aide d'un "commandbutton" dans mon autre tableau de travail dans lequel j'ai toute une batterie de fonctions et autre macro qui automatise, la sortie des données qui m'intéresse (Graphique, délai dépassé etc...). Seulement, je n'arrive pas a importer mon fichier brut.
    Autre info, comme il s'agit d'un import que j'effectue toutes les 2 semaines, le fichier brut a toujours un autre nom, en général la date sous forme "aaaammjj.xlsx", pour garder un historique. J'aimerai donc avoir une fenêtre de chargement ou je peux choisir mon fichier d'import.
    L'import se fera sur la feuille 1 de mon tableau de travail, toutes les macros et autre Prg VBA sont sur les feuilles suivantes.

    Merci d'avance.

  2. #2
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 86
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Par défaut
    Bonjour,
    Dans Excel il y un enregistreur de macro.
    Il vous suffit d'enregistrer toutes les opérations d'un import manuel et vous pourrez adapter ce code pour le lancer par un bouton.

    Dans Excel2007 c'est avec l'onglet Développeur que l'on atteint l'enregistreur de macro.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2007
    Messages : 17
    Par défaut
    Re bonjour,

    Je trouve pas l'endroit ou l'on peut faire un import excel vers excel. Dans l'onglet data, il n'y aucune possibilité.

  4. #4
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 86
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Par défaut
    Bonjour,
    Il n'y a pas d'assistant pour importer d'Excel vers Excel mais on peut faire une connexion avec l'assistant connexion qui se trouve dans l'onglet Données Groupe Connexions.

    Ou on enregistre une macro qui fait un copier/coller d'un classeur vers l'autre, et on l'adapte à ses besoins.

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2007
    Messages : 17
    Par défaut
    Ca y est, j'ai trouvé la solution à mon problème.
    Je donne donc le code a mettre dans un module et à appeler avec la balise "Call" pour ceux que ca peut intéresser.

    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
    Sub Import()
    Dim Fichier As Variant
    Dim File As Variant
    ChDir ThisWorkbook.Path
    Fichier = Application.GetOpenFilename("Text Files (*.xlsx), *.xlsx")
    If Fichier <> False Then 
    Workbooks.Open Fichier ' Ouvre le fichier defini dans la ligne 5
    File = ActiveWorkbook.Name
    Sheet1.Activate ' Active la feuille d'ou doivent être prises les données
    Cells.Select ' Defini la Sélection
    Selection.Copy ' Copie la sélection
    Windows ("fichierdestination.xlsm").Activate ' Active le fichier de travail
    Sheet1.Activate ' Active la feuille de destination
    Cells.Select ' Selectionne les cellules de destination
    ActiveSheet.Paste ' Colle les données
    Windows(File).Close ' Ferme la fenêtre des données sources
    Endif
    End sub
    Si quelqu'un trouve le moyen de simplifier, je suis preneur.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Technicien qualité et métrologie industrielle
    Inscrit en
    Avril 2011
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien qualité et métrologie industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 116
    Par défaut
    Si ça peut t'aider, je l'aurais plutôt vu comme ç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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Sub Import()
     
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
     
    Dim Fichier As Variant
    Dim File As Variant
     
        File1 = ActiveWorkbook.Name
        ChDir ThisWorkbook.Path
        Fichier = Application.GetOpenFilename("Text Files (*.xlsx), *.xlsx")
     
        If Fichier <> False Then
        Workbooks.Open Fichier ' Ouvre le fichier
        File2 = ActiveWorkbook.Name
        Sheets("Feuil1").Activate ' Active la feuille d'ou doivent être prises les données
        Cells.Copy
        Windows(File1).Activate
        Sheets("Feuil1").Activate  ' Active le fichier de travail
        Range("A1").Select
        ActiveSheet.Paste ' Colle les données
        Windows(File2).Activate
     
        ActiveWindow.Close
     
        Range("A1").Select
        ActiveWorkbook.Save
     
        End If
     
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
     
    End Sub
    Bonne continuation !

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

Discussions similaires

  1. {VBA excel}OUverture,Extraction et Copie d'un fichier Excel dans un autre
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/06/2007, 09h43
  2. importer une fichier excel dans une base de donnée MySQL
    Par maverick56 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 29/05/2007, 09h15
  3. Pb Importation de fichiers Excel dans Access
    Par elkhy dans le forum Access
    Réponses: 8
    Dernier message: 22/05/2006, 17h33
  4. [VBA-A] Importation de fichiers Excel dans Access
    Par elkhy dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/05/2006, 17h57
  5. importer données fichier excel dans bd mysql
    Par Hydre dans le forum Administration
    Réponses: 1
    Dernier message: 05/10/2005, 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