Comment consolider verticalement datatables divisées horizontalement dans Excel?

Ce que j'ai : j'ai beaucoup de données qui sont organisées dans de nombreuses petites tables (peu parlantes, et non des tables "réelles") qui sont placées l'une après l'autre en laissant deux colonnes entre une et l'autre. Ces «tables» sont toutes composées de six colonnes et d'un nombre variable de lignes. Les tables commencent à partir de la cellule A1. Donc, par exemple, le premier tableau occupe les colonnes A à F, le deuxième I à N et ainsi de suite.

Ce dont j'ai besoin : j'ai besoin que tous ces arrays soient placés l'un en dessous de l'autre pour créer une database exportable à des logiciels statistics pour une parsing plus approfondie. Le script dont j'ai besoin devrait prendre la deuxième table et couper (ou copyr) et le coller juste en dessous du premier, sans lignes vierges entre les deux. Ensuite, passez au troisième et collez-le au-dessous du deuxième et ainsi de suite.

Je n'ai jamais travaillé avec VBA, mais j'ai besoin de quelque chose pour automatiser ce process, car le faire à la main prendrait plusieurs jours. Je fais un programme en C ++ et R, donc si vous pouvez me donner quelques lignes direcsortingces, je peux essayer de le regrouper dans un script VBA.

Merci beaucoup.

J'ai reproduit votre table pour que ça ressemble à celui-ci

table reproduite

alors j'ai écrit le code pour terminer comme ça fin

Je pense que c'est ce que vous searchz, voici le code

 Sub Main() Dim ws As Worksheet Set ws = Sheets("Sheet1") ' rename sheet Dim i&, j& Dim curHead As Ssortingng Dim nextHead As Ssortingng For i = 1 To 3 curHead = CStr(ws.Cells(1, i).Text) For j = 4 to ws.Cells(1, Columns.Count).End(xlToLeft).Column nextHead = CStr(ws.Cells(1, j).Value) If StrComp(curHead, nextHead, vbTextCompare) = 0 Then ws.Range(Cells(2, j), Cells(ws.Cells(Rows.Count, j).End(xlUp).Row, j)).Copy ws.Cells(ws.Cells(Rows.Count, i).End(xlUp).Row + 1, i).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False End If Next j Next i End Sub