Fusion de plusieurs feuilles avec une colonne de données sur une feuille

Bonjour à tous,

Sur le fichier joint, j'aimerais fusionner les feuilles en une seule (il y a plus d'une centaine de feuilles). Chaque feuille ne possède qu'une colonne avec des données: la colonne A

Dans mon classeur, j'ai une feuille vierge intitulée "Fusion". Sur cette feuille j'aimerais que:

  • Chaque plage de données soit copiée sur une colonne différente dans la feuille "Fusion" (la plage issue de la 1ère feuille sur la colonne A de "Fusion", la suivante sur la colonne B de "Fusion" etc.)
  • J'avoue me débrouiller en Excel mais pas en VBA, j'ai tenté quelques manips sans succès, incapable de faire une incrémentation correcte.
  • A noter que le nombre de lignes de chaque feuille est variable, mais sélectionner l'entier de la colonne A me convient parfaitement.

Je pourrais tout faire à la main si ma demande est trop compliquée, mais si quelqu'un a une solution, il/elle m'épargnerait quelques heures de travail.

Merci d'avance pour vos réponses.

Bonjour et bienvenue sur le forum

Un essai à tester. Te convient-il ?

Bye !

Tout simplement incroyable!

Merci pour la rapidité et l'efficacité!!!

Re-bonjour,

Le fichier fonctionne parfaitement. Toutefois, j'ai tenté de réutiliser la macro dans un autre fichier (exactement le même type que celui joint au dessus) et impossible d'y refaire fonctionner.

Sub Fusion()

    Cells.ClearContents
    lnMax = 1
    col = 1
    For Each f In Worksheets
        If f.Name <> ActiveSheet.Name Then
            derln = f.Range("A" & Rows.Count).End(xlUp).Row
            lnMax = Application.Max(lnMax, derln)
        End If
    Next f

    For Each f In Worksheets
        If f.Name <> ActiveSheet.Name Then
            tablo = f.Range("A1:A" & f.Range("A" & Rows.Count).End(xlUp).Row)
            ReDim Preserve tabloR(1 To lnMax, 1 To col)
            For i = 1 To UBound(tablo, 1)
                tabloR(i, col) = tablo(i, 1)
            Next i
            col = col + 1
            Erase tablo
        End If
    Next f
    Application.CutCopyMode = False
   'ActiveSheet.Cells.ClearContents
    Range("A1").Resize(UBound(tabloR, 1), UBound(tabloR, 2)) = tabloR

End Sub

Quelle est l'astuce pour réutiliser cette macro (sachant que j'ai encore 5 fichiers avec plus de 150 feuilles à fusionner ) ?

Selon le débogueur, l'erreur provient de la ligne

For i = 1 To UBound(tablo, 1)

Bonjour

j'ai tenté de réutiliser la macro dans un autre fichier (exactement le même type que celui joint au dessus) et impossible d'y refaire fonctionner.

Il doit bien y avoir une différence...

Joins moi un fichier avec lequel ça ne marche pas.

Bye !

Voilà comme demandé.

Je suis un novice totale en VBA, j'ai peut-être raté une copie.

Il reste encore un fichier (en + de celui-ci) avec plus ou moins autant de colonnes sur lequel j'aimerais effectuer cette macro.

Bonjour

Nouvelle version.

Bye !

Rechercher des sujets similaires à "fusion feuilles colonne donnees feuille"