Creation d'une liste regroupant les info de plusieur onglet

Bonjour,

Je souhaite créer une liste dans un onglet regroupant les informations de plusieurs onglet.

je m'explique :

J'ai plusieurs onglet qui comporte des listes d'informations avec 3 colonnes : référence, quantité et référence interne

Sur ces différents onglets je veut renseigner la quantité afin de créer une liste de préparation.

Sur un onglet que je nomme "PREPARATION", je veut retrouver tout les références avec une quantité de tout les autres onglets.

J'espère avoir été clair.

Merci de m'aider.

Benjamin

un exemple sur excel permettrait de répondre plus facilement ...

Voici un exemple

24exemple-liste.xlsx (10.93 Ko)

Ce n'est pas la réponse la plus élégante, mais cela fonctionne

Toutes les données sont renvoyées dans l'onglet préparation

Un filtre sélectionne les valeurs non nulles

32exemple-liste.xlsx (12.42 Ko)

OK d'accord c'est une solution.

Mais j'aurais des problèmes si j'insère des ligne dans mes listes..

Est-ce que tu n'aurais pas un autre solution via VBA?

Benjamin

Bien sûr

cela va être plus long à pondre, sauf si un expert se prête au jeu entre temps ...

avec RAZ

41exemple-liste.xlsm (20.35 Ko)

C'est exactement ce que je voulais. Merci beaucoup!!

J'ai juste modifié un petit truc dans VBA :

Au lieu de :

Range(Cells(ligne, 1), Cells(fin, 3)).clear

J'ai mis :

Range(Cells(ligne, 1), Cells(fin, 3)) = ""

Comme sa sa me garde la mise en forme.

Merci encore!

Bien vu !

J'ai du rechercher sur le forum pour trouver cela

J'ai une autre dernière demande si cela ne te dérange pas :

Je voudrais via une boite de dialogue comme tu as fait (Actualiser et effacer), supprimer les quantités de tout les onglets.

Est-ce possible de faire sa?

Sub actualiser()
ligne = 4
For Each onglet In Range("meslistes")
    With Sheets(CStr(onglet.Value))
        debut = 2
        fin = .Cells(debut, 1).End(xlDown).Row
        For i = debut To fin
            If .Cells(i, 3) <> "" Or .Cells(i, 3) <> 0 Then
                Sheets("PREPARATION").Cells(ligne, 1).Value = .Cells(i, 1).Value
                Sheets("PREPARATION").Cells(ligne, 2).Value = .Cells(i, 2).Value
                Sheets("PREPARATION").Cells(ligne, 3).Value = .Cells(i, 3).Value
                ligne = ligne + 1
            End If
        Next i
    End With
Next onglet
End Sub
Sub effacer()
ligne = 4
fin = Cells(ligne, 1).End(xlDown).Row
Range(Cells(ligne, 1), Cells(fin, 3)) = ""
End Sub
Sub zero()
For Each onglet In Range("meslistes")
    With Sheets(CStr(onglet.Value))
        debut = 2
        fin = .Cells(debut, 1).End(xlDown).Row
        For i = debut To fin
            .Cells(i, 3) = ""
        Next i
    End With
Next onglet
End Sub
10exemple-liste.xlsm (20.64 Ko)
Rechercher des sujets similaires à "creation liste regroupant info onglet"