Extraction dans plusieurs fichiers

Bonjour j'aimerai avoir de l'aide de votre part pour optimiser une tache s'il vous plait.

J'aimerai faire un fichier Recap je m'explique: je voudrai une macro qui soit capable de me demander de sélectionner un ou les fichiers sur lesquels je veux effectuer l'extraction ensuite extraire des colonnes spécifiques (j’extrais les mêmes colonnes dans la même feuille de tous mes fichiers) dans tous les fichiers que j'aurai choisi et à chaque extraction il collera les colonnes copiées à la suite de l'extraction précédente.

Supposons que je veuille faire copier de la colonne A à T dans la Sheets7 nommé TOTO,que je veuille le faire pour chaque fichier que j'ai eu à sélectionner dans mon répertoire et à chaque fois coller à la suite. donc si j'ai 7 fichiers dans mon répertoire je me retrouverai avec toutes les colonnes copiés (des 7 fichiers) dans un même fichier ( nouveau fichier ou je lancerai ma macro).

Je ne sais pas si j'ai été assez claire dans ma question si vous avez besoin du fichier pour voir exactement ce que je demande.

Merci d'avance pour l'aider

Bonjour et benvenue,

oui un fichier serait nécessaire

en attendant, voici un (très ancien) compilateur qui se rapproche sans doute de ta demande

Bonjour

Bonjour à tous

Un essai à tester. Te convient-il ?

Bye !

10classeur1.xlsm (33.04 Ko)

Bonjour merci pour votre aide, je vais joindre mon fichier pour plus d'explication; je voudrais qu'il aille dans un répertoire me demander de sélectionner tous les fichiers sur lesquelles j'aimerai effectuer l'extraction, l'extraction sera faite sur une feuille précise (le feuille "Programmes" le fichier possède près de 15 feuilles ) ensuite lors de la première extraction il copie tout, même les entêtes de la colonne A àT et s’arrête à la fin de la colonne A même si d'autres colonnes sont remplies; ensuite pour les autres fichiers qui suivent il saute deux lignes à chaque fois pour monter que c'est un autre fichier mais là il copie toujours de A à T sans toutes fois copier les en-têtes car les entêtes seront identiques dans tous ces fichiers.

Mon fichier a un userform où on demande à chaque utilisateur la catégorie à laquelle il appartient mais l'extraction sera toujours faite part les ADMIN est ce qu'on pourrait préciser dans la macro d'ouvrir tous les fichiers en mode ADMIN pour ne pas avoir à le faire a chaque fois (car si on a 100 fichiers cela devient assez lourd).

Merci d'avance.

PS: j'ai zippé le fichier mais je ne peux pas le joindre car il pèse plus 1Mo, svp vous pouvez me proposer un autre moyen de le mettre à votre disposition ??? Merci

Tu peux passer par www.cjoint.com par exemple.

Mais si tu pouvais simplifier ton fichier ce serait encore mieux !

Merci pour la méthode.

Le lien du fichier :

le fichier zip est ... vide !

Bonjour , désolé je crois avoir fais une erreur

  • le fichier zippé :
  • le fichier non-zippé :

Merci pour l'aide

bon, je ne vois pas trop comment utiliser ce fichier ...

le plus efficace serait de cibler la demande avec un fichier simplifié

sinon, utilise les 2 solutions proposées ci-dessus

capture d ecran 769

Désolé j'aurai dû me douter qu'il proposera la liaison.

Lors de l'ouverture du fichier cliquer sur "Ne pas faire de mise à jour" ensuite ils proposerons une connexion fermer cette fenêtre, un message s'affichera pour dire qu'il a été impossible de se connecter à ...... et enfin une boiter de dialogue s’affichera cliquez sur "Continuer".

En faite ce sont des liens qui ne servent à rien j'ai eu à les enlever mais à chaque ouverture du fichier il affiche ces messages.

Bonjour et benvenue,

oui un fichier serait nécessaire

en attendant, voici un (très ancien) compilateur qui se rapproche sans doute de ta demande

autre version, avec spécification de l'onglet

à adapter, notamment

    chemin = ThisWorkbook.Path & "\compil_new\"
    onglet = "Synthese"
Option Explicit

    Dim wbk1 As Workbook, wbk2 As Workbook
    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim rng1 As Range, rng2 As Range

    Dim chemin$, monFichier$, onglet$

Sub collecter()

    ' à modifier ...
    chemin = ThisWorkbook.Path & "\compil_new\"
    onglet = "Synthese"

    Set wbk1 = ThisWorkbook
    Set ws1 = wbk1.Sheets(onglet)
    ws1.Cells(1).CurrentRegion.Offset(1, 0).ClearContents
    monFichier = Dir(chemin & "*.xlsx")

    Do While monFichier <> ""
        If Not monFichier Like "*.xlsm" Then
            Set wbk2 = Workbooks.Open(chemin & monFichier)
            Set ws2 = wbk2.Sheets(onglet)
            Set rng2 = ws2.Cells(1).CurrentRegion
            rng2.Offset(1).Resize(rng2.Rows.Count - 1, rng2.Columns.Count).Copy
            Set rng1 = ws1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
            rng1.PasteSpecial Paste:=xlPasteValuesAndNumberFormats
            Application.CutCopyMode = False
            wbk2.Close False
        End If
        monFichier = Dir
    Loop

    ws1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select

End Sub

j'arrive pas à adapter les code comme il se doit. S'il vous plait quelqu’un pourrait me fournir un code commenté que je puisse adapter à ma demande s'il vous plait

La macro doit être capable de : -De demander à l'utilisateur de choisir son répertoire

- De sélectionner un, plusieurs ou tous les fichiers de ce répertoire

- De copier une feuille de la colonne A à T (dans mon cas c'est Sheets7) mon classeur comporte plusieurs feuilles

-De coller ces colonnes dans un nouveau classeur et copier ces feuilles à la suite ( c'est à dire à chaque fois qu'on est dans un classeur on saute deux lignes et on copie les données à la suite de l'ancienne copie.

donc si j'ai dix feuilles les données de la shettes7 de tous mes fichiers se troueront sur une même et unique feuille d'un autre classeur.

Merci pour votre aide

Rechercher des sujets similaires à "extraction fichiers"