Récupérer des données dans multi-feuilles

  • Initiateur de la discussion Initiateur de la discussion BESAC
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

BESAC

XLDnaute Nouveau
Bonjour,

Je n'ai pas trouvé de réponses à mon problème dans le forum, alors je poste.

Voilà : je travaille dans un tableur d'une centaine de feuilles. Je voudrais récupérer dans une nouvelle feuille de ce tableur toutes les données d'une même ligne de chacune des 100 feuilles.

Pour être plus clair, je donne un exemple :

feuille1
données dans cellules A1:F2

feuille2
données dans cellules A1:F2

feuille3
données dans cellules A1:F2

etc...

récupération dans feuille101 :
ligne 1 : données cellules A1:F2 feuille1
ligne 2 : données cellules A1:F2 feuille2
ligne 3 : données cellules A1:F2 feuille3
etc...

Pouvez-vous me donner un coup de mains ? Je ne maîtrise pas vraiment les macros ni le langage VBA. Je précise à toutes fins utiles que je suis en excel version 2000.

Merci d'avance pour vos réponses.
 
Re : Récupérer des données dans multi-feuilles

Bonsoir,
test ce code:
Code:
Sub essai()
Dim feuille As Worksheet
Dim suite As Range
Sheets.Add Before:=Worksheets(1) 'cré la feuille 101 au début
ActiveSheet.Name = "feuille101"
For Each feuille In Sheets
    Set suite = Range("a65536").End(xlUp).Offset(1, 0)
    If feuille.Name <> "feuille101" Then
        With feuille
            .Range("a1:f2").Copy suite
        End With
    End If
Next
End Sub
Edit: bienvenue sur XLD Besac
 
Re : Récupérer des données dans multi-feuilles

Bonsoir Skoobi, Besac, le Forum

Voici une autre approche afin de mettre réellement en une ligne le retour de la plage "A1:F2" et, de plus uniquement les valeurs de ces cellules, et non leurs formules ou formats. (tout dépend des besoins de Besac)

Code:
Option Explicit
Const FeuilleCollector As String = "Feuil1" '[COLOR=green][B]<<< A ADPATER[/B][/COLOR]
Sub SheetsCollector()
Dim WS As Worksheet, WSCollect As Worksheet
Dim Plage As Range, Cell As Range
Dim Ligne As Long, Col As Byte

Set WSCollect = ThisWorkbook.Worksheets(FeuilleCollector)
Ligne = 1
Col = 1
    For Each WS In ThisWorkbook.Worksheets
            Set Plage = WS.Range("A1:F2")
                If WS.Name <> WSCollect.Name Then
                            For Each Cell In Plage
                             WSCollect.Cells(Ligne, Col) = Cell.Value
                            Col = Col + 1
                            Next Cell
                End If
            Ligne = Ligne + 1
            Col = 1
    Next WS
        
End Sub

Bonne soirée
@+Thierry
 
Re : Récupérer des données dans multi-feuilles

Merci skoobi et merci Thierry !

Vous êtes trop forts. J'ai finalement retenu la solution de toi Thierry. Franchement, je vois pas comment j'aurais pu sortir un code pareil. Le résultat est miraculeux pour moi.

Vous me faites gagner un temps précieux. Je suis sûr que cela intéressera d'autres que moi.

Je vous souhaite un excellent we.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour