Compiler plusieurs colonnes de plusieurs feuilles sur une seule Feuille

bloublou

XLDnaute Occasionnel
Bonjour à tous, Bonjour JNP,

Je viens de m'apercevoir que je me suis planté de fichier :( :( :(
J'ai remis le bon :)

J'aurais besoin de vos lumières en macro sur les colonnes Excel:

Je voudrais compiler 7 colonnes toujours les mêmes de 30 feuilles différentes en une seule feuille.
J'ai 3 étapes importantes :

1) En exemple j'ai 3 feuilles de A à AP, sur chaque feuille j'ai 7 colonnes en jaune. Je voudrais prendre ces 7 colonnes et les copier coller sur la feuille Compil 1 :confused:

2) Une fois que toutes les données sont copiées, supprimer les lignes vides.

3) Sur la feuille Compil 2, je voudrais changer l'ordre des colonnes en respectant l'ordre de la feuille Compil 2

Pouvez-vous m'aider à faire cette macro ?

Merci de votre aide,

BlouBlou
 

Pièces jointes

  • compil feuilles.xlsm
    11.3 KB · Affichages: 47
  • compil feuilles.xlsm
    11.3 KB · Affichages: 49
  • compil feuilles.xlsm
    11.3 KB · Affichages: 54
Dernière édition:

JNP

XLDnaute Barbatruc
Re : Compiler plusieurs colonnes de plusieurs feuilles sur une seule Feuille

Bonjour :)
Pas compris le point 3... :confused:
Pour le reste :
Code:
Sub Macro1()
Dim I As Integer, DerLigne1 As Integer, DerLigne2 As Integer
Application.ScreenUpdating = False
'Copie les colonnes
For I = 2 To 6
    DerLigne1 = Cells(Rows.Count, I).End(xlUp).Row
    DerLigne2 = Cells(Rows.Count, 1).End(xlUp).Row
    Range(Cells(DerLigne2 + 1, 1), Cells(DerLigne1 + DerLigne2 - 1, 1)).Value = Range(Cells(2, I), Cells(DerLigne1, I)).Value
Next
'Supprime les cellules vides
For I = DerLigne1 + DerLigne2 To 2 Step -1
    If Cells(I, 1) = "" Then Cells(I, 1).Delete Shift:=xlUp
Next I
Application.ScreenUpdating = True
End Sub
Bonne suite :)
 

bloublou

XLDnaute Occasionnel
Re : Compiler plusieurs colonnes de plusieurs feuilles sur une seule Feuille

Bonjour à tous,

Un petit up pour mon pb, si quelqu'un pouvait m'aider ? :

**********************

J'aurais besoin de vos lumières en macro sur les colonnes Excel:

Je voudrais compiler 7 colonnes toujours les mêmes de 30 feuilles différentes en une seule feuille.
J'ai 3 étapes importantes :

1) En exemple j'ai 3 feuilles de A à AP, sur chaque feuille j'ai 7 colonnes en jaune. Je voudrais prendre ces 7 colonnes et les copier coller sur la feuille Compil 1

2) Une fois que toutes les données sont copiées, supprimer les lignes vides.

3) Sur la feuille Compil 2, je voudrais changer l'ordre des colonnes en respectant l'ordre de la feuille Compil 2

Pouvez-vous m'aider à faire cette macro ?



Merci

BlouBlou
 

Pièces jointes

  • compil feuilles.xlsm
    11.3 KB · Affichages: 44
  • compil feuilles.xlsm
    11.3 KB · Affichages: 39
  • compil feuilles.xlsm
    11.3 KB · Affichages: 43

JNP

XLDnaute Barbatruc
Re : Compiler plusieurs colonnes de plusieurs feuilles sur une seule Feuille

Re :)
Faut jamais être pressé... :mad:
Surtout quand on s'est trompé de fichier au départ... :rolleyes:
Voilà pour Compil 1, pour compil 2, tu adapteras... :p
Code:
Sub test()
Dim I As Integer, J As Integer, DerLigne1 As Integer, DerLigne2 As Integer
Dim A As Variant, B As Variant, Feuille As Worksheet
Application.ScreenUpdating = False
'Copie les colonnes
A = Array(4, 5, 6, 9, 10, 11, 28)
For Each Feuille In ThisWorkbook.Worksheets
    If Left(Feuille.Name, 4) = "feui" Then
        For I = 0 To 6
            With Sheets("Compil 1")
                DerLigne1 = Feuille.Cells(Rows.Count, A(I)).End(xlUp).Row
                DerLigne2 = .Cells(Rows.Count, I + 1).End(xlUp).Row
                Feuille.Select
                B = Feuille.Range(Cells(2, A(I)), Cells(DerLigne1, A(I))).Value
                .Select
                .Range(Cells(DerLigne2 + 1, I + 1), Cells(DerLigne1 + DerLigne2 - 1, I + 1)).Value = B
            End With
        Next
    End If
Next Feuille
'Supprime les cellules vides
With Sheets("Compil 1")
    For J = 1 To 7
        DerLigne1 = .Cells(Rows.Count, J).End(xlUp).Row
        For I = DerLigne1 To 2 Step -1
            If .Cells(I, J) = "" Then Cells(I, J).Delete Shift:=xlUp
        Next I
    Next J
End With
Application.ScreenUpdating = True
End Sub
Bonne suite :)
 

Discussions similaires

Réponses
5
Affichages
186
Réponses
3
Affichages
190

Statistiques des forums

Discussions
312 613
Messages
2 090 233
Membres
104 456
dernier inscrit
mango53200