Importer sur une feuilles différentes lignes issues d'autres

Bonjour

J'ai un classeur de matériel, ce classeur comporte 15 feuilles. Chaque feuille représente une catégorie de matériel avec la référence, le nom, le coût, le délais de livraison , l'unité (Pce ou mètre) ainsi qu'une colonne qui permet de saisir la quantité dont j'ai besoin pour ma commande. Les feuilles sont toutes construites sur le même modèle donc dans le même ordre

Après avoir saisie les différentes quantités dans les différentes feuilles, je souhaite créer une macro qui me sélectionne dans toutes les feuilles la ligne avec les 6 valeurs ou la quantité n'est plus vide (donc la ou j'ai saisie un nombre), puis les coller dans une feuille récapitulative afin d'avoir sur un même document l'ensemble du matériel dont j'ai besoin

je vous remercie par avance

Bonjour,

Merci de fournir un fichier exemple !

Bonne journée

Bouben

Bonjour

Merci dans un premier temps pour la réponse. Effectivement c'est plus simple avec le fichier

N'étant pas au travail, je viens de créer un fichier simplifié, Dans l'onglet matériel à commander j'ai copié par sélection / copier puis coller que les lignes des 3 feuilles ou la quantité est => à 1

J'aimerais avoir une macro qui fait cela automatiquement

Merci d'avance

Bonjour,

Ci-joint une proposition à tester.

Il faudra sûrement l'aménager un peu avec le vrai fichier.

Bonne journée

Bouben

Bonjour et bonne année,

Une autre proposition à étudier avec à la base des données en tableaux (Excel 2007+).

A te relire pour des explications.

Cdlt.

Option Explicit

Private Sub cmdGO_Click()
Dim ws As Worksheet
Dim lo As ListObject
Dim rng As Range, rng2 As Range
Dim lRow As Long

    Application.ScreenUpdating = False

    If Not Me.ListObjects(1).DataBodyRange Is Nothing Then
        Me.ListObjects(1).DataBodyRange.Delete
    End If

    lRow = 2

    For Each ws In ActiveWorkbook.Worksheets
        If ws.Name <> Me.Name Then
            Set lo = ws.ListObjects(1)
            lo.Range.AutoFilter field:=5, Criteria1:=">0"
            Set rng2 = Nothing
            With lo.AutoFilter.Range
                On Error Resume Next
                Set rng2 = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _
                           .SpecialCells(xlCellTypeVisible)
                On Error GoTo 0
            End With
            If Not rng2 Is Nothing Then
                Set rng = lo.AutoFilter.Range
                rng.Offset(1, 0).Resize(rng.Rows.Count - 1) _
                        .SpecialCells(xlCellTypeVisible).Copy _
                        Destination:=Me.Cells(lRow, 1)
                lRow = Me.Cells(Rows.Count, 1).End(xlUp).Row + 1
            End If
        End If
        lo.Range.AutoFilter field:=5
    Next ws

    Set rng2 = Nothing: Set rng = Nothing
    Set lo = Nothing

End Sub

Bonjour

Merci à tous les deux, j'ai retranscris vos macros dans mon fichier d'origine, qui est beaucoup plus complexe que le petit fichier que j'avais mis. Mais mes connaissance en VBA étant très limités je n'arrive pas à un résultat ça "beugue" très rapidement

Cordialement

Bonjour,

Et alors que fait on?

Cdlt.

Rechercher des sujets similaires à "importer feuilles differentes lignes issues"