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 :

macro VBA fusion Classeur


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    unversité de reims champagne ardenne
    Inscrit en
    Mars 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : unversité de reims champagne ardenne

    Informations forums :
    Inscription : Mars 2017
    Messages : 8
    Par défaut macro VBA fusion Classeur
    Bonjour à tous,

    Je suis nouveau sur le forum et débutant sur VBA, et j'aurai souhaité avoir de l'aide sur le sujet.
    En effet, j'ai testé une macro me permettant de fusionner plusieurs classeur dans un seul, mais malheureusement elle ne fonctionne pas trop. En gros, j'ai 3 fichiers excel via une macro j'aurai souhaité copier toutes les lignes des des 3 fichiers et les copiers les une en dessous des autres dans un seul fichier.

    ci-dessous le code que j'ai essayé sur MAC PRO avec EXCEL 2016, mais en vain :
    Pourriez vous svp me débloqué ou si non me filer un autre tuyau
    Je vous remercie par avance

    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 Classeur2()
    Range("A1").Select
    Path_var = Directory_var & "/Users/delasoulsk/Documents/ALLIANZ/consolidation test/" --->>> 'est le chemin d'accès vers le dossier dans quel sont stockés les 3 fichiers excels. 
    File_var = Dir(Path_var & "*.xls")
    Do While Fichier <> ""
    Workbooks.Open Filename:=Path_var & File_var
    Range("Feuil1").Copy
    ThisWorkbook.Activate
    ActiveSheet.Paste
    Windows(Fichier).Activate
    Application.CutCopyMode = False
    ActiveWorkbook.Close savechanges:=False
    ThisWorkbook.Activate
    Range("A65536").End(xlUp).Offset(1, 0).Select
    Fichier = Dir
    Loop
    End Sub

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, commence par baliser ton code

    voir fusion fichiers xls*, txt d'un dossier qu'il te faudra adapter à ton contexte, ne t'attends pas à trouver du tout cuit.

  3. #3
    Membre du Club
    Homme Profil pro
    unversité de reims champagne ardenne
    Inscrit en
    Mars 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : unversité de reims champagne ardenne

    Informations forums :
    Inscription : Mars 2017
    Messages : 8
    Par défaut
    Merci pour le tuyau mais je n'arrive pas à ouvrir ce document "fusion fichiers xls*, txt d'un dossier "

  4. #4
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonjour,

    PS : si tu es sur Mac, il est bien de le préciser au moment de créer la discussion, je pense qu'en modifiant ton post 1 tu peux encore le faire
    en précisant via la liste sur quel excel tu es, je suppose que ici c'est 2011 (à moins que ça soit 2016) - pour baliser le code regarde ma signature il y a un exemple

    en effet l'une des solutions est de passer par Dir en mettant les fichiers concernés dan un dossier précis

    le chemin sur Mac sous Excel à une séparation qui est ":" et non "/"

    ouvre l'un des fichiers à fusionner puis;
    tu peux facilement avoir ce chemin (lorsque tu es dans l'onglet développeur) en activant la fenêtre d'exécution puis tu écris dedans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print ThisWorkbook.Path
    puis valide avec la touche Enter/Retour

    En écrivant ce code et en validant avec la touche Enter, tu peux récupérer le chemin sur un Mac
    Ca ressemblera à qq ch comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Macintosh HD:Users:NomUtilisateur:Desktop:DeveloppezCom:UTF8"
    il faudra rajouter ": à la fin comme cela mais avec ton chemin à toi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Macintosh HD:Users:NomUtilisateur:Desktop:DeveloppezCom:UTF8:"
    Donc pour l'utilisation d'un Dir Simple (non récursif ça sera pour bcp plus tard), teste d'abord cet exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Fusion()
    Dim Chm As String, currentPath As String
    Chm = "Mettre_Le_Chemin_Recupéré_par_ tes_ soins"
     
    chemin = Dir(Chm)
    Do Until chemin = vbNullString
        Debug.Print chemin
        chemin = Dir()
    Loop
    End Sub
    Voit le résultat dans la fenêtre d'exécution

    PS : salut kiki29 : il a envoyé :
    ci-dessous le code que j'ai essayé sur macbook pro, mais en vain
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  5. #5
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Pour la suite comme tu es étudiant il te faut faire un minimum de travail personnel
    Donc je vais te donner des indices; dans la boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Do Until chemin = vbNullString
        Debug.Print chemin
        chemin = Dir()
    Loop
    il faudra :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Do Until chemin = vbNullString
        'obtenir la dernière ligne du classeur de destination
        'Ouvrir le classeur à copier
        'copier la plage source vers la plage de destination à partir de la dernière ligne obtenu
        'Fermer le classeur source sans l'enregistrer
        chemin = Dir()
    Loop
    Voilà à toi de jouer
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  6. #6
    Membre du Club
    Homme Profil pro
    unversité de reims champagne ardenne
    Inscrit en
    Mars 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : unversité de reims champagne ardenne

    Informations forums :
    Inscription : Mars 2017
    Messages : 8
    Par défaut
    merci pour tes éléments de réponses, en effet, je suis étudiant en stage dans un cabinet de RH et je voulais gagner du temps en trouvant une macro me permettant de faire cette consolidation rapide de données. Je suis vraiment novice dans le sujet et j'y vais par tâtonnement...

  7. #7
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    ces réponses tu peux les trouver facilement soit en utilisant la Faq Excel soit en faisant des recherches internet du styles :
    - "vba ouvrir fichier"
    - "vba fermer fichier"
    - "vba dernière ligne"
    - … …
    par exemple
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  8. #8
    Membre du Club
    Homme Profil pro
    unversité de reims champagne ardenne
    Inscrit en
    Mars 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : unversité de reims champagne ardenne

    Informations forums :
    Inscription : Mars 2017
    Messages : 8
    Par défaut
    ok très bien je regarde, en tout cas merci pour l'aide je vais encore fouiller, pour info je suis sur mac avec excel 2016. Peut être qu'en codant sur un pc ça serait beaucoup plus simple, parce que là je galère vraiment et je ne suis pas habitué au mac !

Discussions similaires

  1. aide macro traitant deux classeurs vba
    Par ellewided dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/07/2009, 10h44
  2. [XL-2003] VBA lien classeur-Macro
    Par liazidf dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/05/2009, 13h24
  3. Copier une macro VBA d'un classeur à un autre
    Par Laugeek dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/08/2008, 07h36
  4. Réponses: 8
    Dernier message: 16/07/2008, 09h08
  5. [VBA] Ouverture classeur sans activer les macros
    Par xc78370 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 29/10/2007, 10h45

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