Collecter des données dans plusieurs onglets

Sebasti1

XLDnaute Nouveau
Bonjour,

Mon problème est le suivant:

J'ai un fichier excel qui contient 6 onglets.
Sur chaque onglet, il y a une cinquantaine de lignes
Dans ces 50 lignes, il y en a un certain nombre (variable au quotidien de 0 à ~50) qui ont un numéro en colonne A (numéros croissants).

Ce que j'aimerais, c'est collecter des infos dans ces lignes ayant un numéro en colonne A pour les mettre dans un tableau final (je n'ai pas besoin de toutes les colonnes).

Mais je ne sais pas comment faire ni comment appliquer la formule dans mon tableau final pour que celui-ci répertorie les lignes voulues dans tous les onglets.

Merci d'avance pour votre aide car je sèche complètement :confused:

Sébastien
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Collecter des données dans plusieurs onglets

Bonsoir Sébastien, bonsoir le forum,

Je te propose de créer un onglet supplémentaire dans ton fichier et de le nommer Récap. Tu peux, si tu le désires, écrire dans cet onglet de A1 à E1 les étiquettes. Ensuite tu lances la macro ci-desous :
Code:
Sub Macro1()
Dim o As Object 'déclare la variable o (Onglet)
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim dest As Range 'déclare la variable dest (cellule de DESTination)

For Each o In Sheets 'boucle 1 : sur tous les onglets du classeur
    If o.Name <> "Récap" Then 'condition 1 : si le nom de l'onglet est diffférent de "Récap"
        Set pl = o.Range("A1:A" & o.Cells(Application.Rows.Count, 1).End(xlUp).Row) 'définit la plage pl
        For Each cel In pl 'boucle 2 sur toutes les cellules cel de la plage pl
            If cel.Value <> "" Then 'condition 2 : si la cellule cel n'est pas vide
                'définit la cellule de destination dest (première cellule vide de la colonne A de l'onglet "Récap")
                Set dest = Sheets("Récap").Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0)
                dest.Value = cel.Value 'place dans dest A la valeur de la colonne A
                'place à partir de la colonne B les valeurs des colonnes F, G, H, et I
                dest.Offset(0, 1).Value = o.Range(cel.Offset(0, 5), cel.Offset(0, 8))
            End If 'fin de la condition 2
        Next cel 'prochaine cellule de la boucle 2
    End If 'fin de la condition 1
Next o 'prochain onglet de la boucle 1
End Sub

Ç devrait s'adapter à ton fichier...
 

Discussions similaires

Statistiques des forums

Discussions
312 358
Messages
2 087 585
Membres
103 601
dernier inscrit
ASLEROY