Choix onglet choix colonnes faire un fichier un onglet

Bonjour à tous,

J'ai parcouru plusieurs forums. J'ai trouver des choses intéressantes mais rien n'y fait. Je souhaite donc me lancer auprès de vous.

Pour le contexte : j'ai 50 fichiers Excel (nommés par leur date) de 60 Mo chacun qui contiennent 3 onglets. Seul chaque premier onglet m'intéresse. Et dans chaque onglet, seules les colonnes A et G me concernent.

Je souhaiterai un fichier excel "synthèse" qui contienne une macro qui puisse placer dans son seul premier onglet :

colonne A, colonne G (du premier fichier) , colonne de séparation, colonne A, colonne G (du deuxième fichier), colonne de séparation, colonne A, colonne G (du troisième fichier) etc.

J'ai monté une macro avec de l'aide mais ça ne fonctionne pas bien.

Mes fichiers à traiter seront par exemple dans c:\temp\traite\ par exemple. Comme les fichiers sont lourds, j'ai lu sur un forum qu'il était possible de passer par "les variables table" d'excel. Je ne sais pas ce que c'est mais il paraît que ça ferait gagner du temps.

Heu...que pensez-vous de tout ça ? Je joins un fichier* .zip si vous voulez ; Excel 2010 utilisé.

En vous félicitant pour les conseils et solutions que vous nous apportez, je vous remercie par avance pour votre aide.

Meleto

* : il y mes tentatives de macro, n'hésitez pas à faire table rase.

Un jour sur un forum pour Word j'ai posé la question "Mais...d'où vient le problème ?". On m'a répondu : "il est entre le dossier du siège et l'écran".

49dek-07-01-2014.zip (142.21 Ko)
19dek-07-02-2014.zip (142.23 Ko)
35dek-07-03-2014.zip (253.20 Ko)
24synthese.xlsm (41.86 Ko)

Bonjour Meleto, bonjour le forum,

Peut-être comme ça (non testé) :

Sub regroupe2()
Dim CD As Workbook
Dim OD As Object
Dim CS As Workbook
Dim OS As Object
Dim Info() As String
Dim Nom As String
Dim LigneFin As Long
Dim TC As Variant
Dim DEST As Range

Set CD = ThisWorkbook
Set OD = CD.Sheets(1)
Nom = Replace(Dir("C:\temp\traite\*.xlsx"), ".xlsx", "")
Do
    Workbooks.Open "C:\temp\traite\" & Nom
    Set CS = ActiveWorkbook
    Set OS = CS.Sheets(1)
    LigneFin = OS.Cells(Application.Rows.Count, 1).End(xlUp).Row
    TC = OS.Range("A1:A" & LigneFin)
    Set DEST = IIf(OD.Range("A1").Value = "", OD.Range("A1"), OD.Cells(1, Application.Columns.Count).End(xlToLeft).Offset(0, 2))
    DEST.Resize(UBound(TC, 1)) = TC
    Erase TC
    LigneFin = OS.Cells(Application.Rows.Count, 7).End(xlUp).Row
    TC = OS.Range("G1:G" & LigneFin)
    Set DEST = OD.Cells(1, Application.Columns.Count).End(xlToLeft).Offset(0, 1)
    DEST.Resize(UBound(TC, 1)) = TC
Loop Until Nom = ""
End Sub

Bonjour Thauthème,

Merci beaucoup ! Je vais voir ça et te fais un retour.

Meleto

Bonjour tout le monde,

Un simple message pour vous dire que je reste sur le coup.

Bonjour à tous,

Le sujet redevient actualité pour moi. Questions in coming soon.

Meleto

Bonjour Meleto, bonjour le forum.

meleto a écrit :

Bonjour Thauthème,

Merci beaucoup ! Je vais voir ça et te fais un retour.Meleto

Et ?...

Rechercher des sujets similaires à "choix onglet colonnes fichier"