Microsoft 365 Extraire différentes colonnes de plusieurs feuilles

alextheoph

XLDnaute Nouveau
Bonjour,
Je souhaiterai extraire plusieurs colonnes parmi plusieurs feuilles et compiler les données dans une nouvelle feuille avec chaque données de chaque colonnes les unes à la suite des autres.

J'ai une plage de données dans chaque feuille (la plage est la même pour toutes) et je veux sur chacune des feuilles extraire la colonne A, B et C pour assembler les données dans une seule colonne sur une nouvelle feuille et répéter l'opération pour toute mes feuilles.

Ci joint un fichier avec des notes dans les feuilles qui expliquera plus précisément ce que je souhaite faire
;;
En espérant que cela soit claire et réalisable,

Merci d'avance
 

Pièces jointes

  • aide-forum init.xlsx
    16.4 KB · Affichages: 10
Solution
si j'ai compris
VB:
Sub compilation()
    Dim Sh As Worksheet, dl As Integer, dl1 As Integer, i As Integer, j As Byte

    With Sheets("compilation")
        If .Range("b" & Rows.Count).End(xlUp).Row + 1 > 1 Then
            .Range("b2:b" & .Range("b" & Rows.Count).End(xlUp).Row + 1).ClearContents
        End If
    End With

    For Each Sh In Worksheets
        If Sh.Name <> "Compilation" Then
            With Sh
                dl = .Range("b" & Rows.Count).End(xlUp).Row
                For j = 2 To 4
                    dl1 = Sheets("compilation").Range("b" & Rows.Count).End(xlUp).Row + 1
                    Sh.Range(Sh.Cells(2, j), Sh.Cells(dl, j)).Copy Sheets("compilation").Cells(dl1, 2)
                Next j
            End With...

alextheoph

XLDnaute Nouveau
Bonjour,
Merci pour ta réponse, cela s'approche de ce que souhaite faire.
Cependant je souhaiterais ajouter toutes les données dans une seules et même colonne, appelée par exemple "Liste".
Plus précisément on prend les données de différentes colonnes de la première feuilles les unes a la suite des autres dans la colonne "Liste" puis les données de différentes colonnes de la deuxième et ainsi de suite.
De plus je ne connais pas Power Query, j'ai regardé des tutos mais je n'arrive pas a utiliser la fonction "Développer", saurais tu m'expliquer ou m'orienter vers des infos qui m'aiderai à me familiariser dessus.

En espérant que mes explications seront plus claires
Merci d'avance
 

cp4

XLDnaute Barbatruc
Bonjour,
Merci pour ta réponse, cela s'approche de ce que souhaite faire.
Cependant je souhaiterais ajouter toutes les données dans une seules et même colonne, appelée par exemple "Liste".
Plus précisément on prend les données de différentes colonnes de la première feuilles les unes a la suite des autres dans la colonne "Liste" puis les données de différentes colonnes de la deuxième et ainsi de suite.
De plus je ne connais pas Power Query, j'ai regardé des tutos mais je n'arrive pas a utiliser la fonction "Développer", saurais tu m'expliquer ou m'orienter vers des infos qui m'aiderai à me familiariser dessus.

En espérant que mes explications seront plus claires
Merci d'avance
Bonjour, @alextheoph :), @chris ;),

Si j'ai compris la demande.
VB:
Option Explicit

Sub compiler()
    Dim Sh As Worksheet, dl As Integer, dl1 As Integer, i As Integer, Compil As String

    For Each Sh In Worksheets
        If Sh.Name <> "Compilation" Then
            With Sh
                dl = .Range("b" & Rows.Count).End(xlUp).Row
                For i = 2 To dl
                    Compil = Compil & .Range("b" & i) & "/"
                Next i
                dl1 = Sheets("compilation").Range("b" & Rows.Count).End(xlUp).Row + 1
                Sheets("compilation").Range("b" & dl1) = Left(Compil, Len(Compil) - 1)
                Compil = ""
            End With
        End If
    Next
End Sub
 

alextheoph

XLDnaute Nouveau
Bonjour cp4,

Merci pour ta réponse. C'est presque ça, je veux que chaque valeur soit dans une cellule et que les valeurs suivante viennent dans les cellules en dessous. Je joins un fichier avec une idée du résultats que je souhaite obtenir, sachant que je travail sur un fichier avec beaucoup plus de valeur que cela donc pas réalisable comme je fais.

Merci d'avance pour votre aide et vos réponses
 

Pièces jointes

  • aide-forum init.xlsx
    17.9 KB · Affichages: 6

cp4

XLDnaute Barbatruc
si j'ai compris
VB:
Sub compilation()
    Dim Sh As Worksheet, dl As Integer, dl1 As Integer, i As Integer, j As Byte

    With Sheets("compilation")
        If .Range("b" & Rows.Count).End(xlUp).Row + 1 > 1 Then
            .Range("b2:b" & .Range("b" & Rows.Count).End(xlUp).Row + 1).ClearContents
        End If
    End With

    For Each Sh In Worksheets
        If Sh.Name <> "Compilation" Then
            With Sh
                dl = .Range("b" & Rows.Count).End(xlUp).Row
                For j = 2 To 4
                    dl1 = Sheets("compilation").Range("b" & Rows.Count).End(xlUp).Row + 1
                    Sh.Range(Sh.Cells(2, j), Sh.Cells(dl, j)).Copy Sheets("compilation").Cells(dl1, 2)
                Next j
            End With
        End If
    Next
End Sub
 

Discussions similaires

Réponses
45
Affichages
917

Statistiques des forums

Discussions
311 709
Messages
2 081 766
Membres
101 815
dernier inscrit
sgep59