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 :

Parcourir puis copier des données d'un fichier vers un autre


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 2
    Par défaut Parcourir puis copier des données d'un fichier vers un autre
    Bonjour à tous !

    Je suis débutant en VBA et j'ai du mal à faire la fusion de 2 macros que j'ai crée, c'est pour cela que j'ai besoin de votre aide désespérément !
    En effet, je dois à travers un bouton, qui se trouve sur ma Feuil1 de mon fichier Excel 1, parcourir des fichiers Excel.
    Lorsque je trouve le fichier qu'il me faut, si je le choisit, je dois faire en sorte de générer une copie de ses feuilles de calcul dans mon fichier de base (Excel 1) à la suite de la feuille principale (la ou se trouve le bouton).
    A présent j'ai réussi à faire une fonction qui va parcourir des fichier et une autre qui permet la copie d'un fichier sélectionné (en dur) dans mon classeur de base (Excel1).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub copier()
        Set FichSource = Application.Workbooks.Open(cheminFichSAS) 'avec le chemin vers Classeur.xltm
     
        FichSource.Sheets("Feuil1").Range("a1:i68").Copy ThisWorkbook.Sheets("Feuil2").Range("A1")
        FichierSource.Close True
    End Sub
    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 parcourir()
        Dim AppExcel As New Excel.Application
        Dim FichierSource As Variant
     
        FichierSource = AppExcel.GetOpenFilename
     
        If FichierSource <> False Then
            MsgBox FichierSource 'ce ici que j'ai essayer d'implémenter ma fonction parcourir mais sans réussite 
     
        Else
            MsgBox "vous n'avez choisi aucun fichier"
        End If
    End Sub
    Si mes explications ne sont pas claires n’hésitez pas à me le dire.

    Je vous remercie d'avance !!

  2. #2
    Nouveau candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 2
    Par défaut
    Finalement je pense avoir trouvé la solution mais si vous avez d'autres idées, méthodes je suis prenante !


    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 parcourir_selectionner()
        Dim AppExcel As New Excel.Application
        Dim FichSource As Variant
     
        FichSource = AppExcel.GetOpenFilename
        Set FichS_source = Application.Workbooks.Open(FichSource)
     
        If FichSource <> False Then
            FichS_source.Sheets("A").Range("a1:i68").Copy ThisWorkbook.Sheets("Feuil2").Range("A1")
            FichS_source.Close True
        Else
            MsgBox "vous n'avez choisi aucun fichier"
        End If
    End Sub

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Bonjour.

    Cela paraît bien à un petit détail prés.

    On évite d'utiliser un fichier tant qu'on est pas certain qu'il est dispo, donc il conviendrait de faire test de la sélection avant d'ouvrir le fichier.
    Et à priori tu n'as pas défini FichS_source ou alors c'est une variable globale.
    Je vais supposé que c'est une omission dans le code modifié ci-dessous.

    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 parcourir_selectionner()
        Dim AppExcel As New Excel.Application
        Dim FichSource As Variant
        dim FichS_source as Workbook
     
        FichSource = AppExcel.GetOpenFilename
     
        If FichSource <> False Then
            Set FichS_source = Application.Workbooks.Open(FichSource)
            FichS_source.Sheets("A").Range("a1:i68").Copy ThisWorkbook.Sheets("Feuil2").Range("A1")
            FichS_source.Close True
        Else
            MsgBox "vous n'avez choisi aucun fichier"
        End If
    End Sub
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. [XL-2010] Copier des données d'un fichier dans un autre
    Par dozif77 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/03/2015, 18h42
  2. [XL-2003] Copier des données d'un fichier Excel à un autre
    Par Banshor dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 14/05/2014, 08h15
  3. Copier des données d'un fichier vers un autre sans écraser le second
    Par jalons dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 09/04/2013, 20h07
  4. Réponses: 12
    Dernier message: 09/06/2008, 17h54
  5. Réponses: 2
    Dernier message: 19/04/2007, 13h54

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