Tableau de synthèse

Bonjour,

Étant novice sur VBA, je rencontre quelques problèmes pour importer dans une feuille de synthèse des tableaux (provenant de d'autres feuilles) ayant des colonnes identiques mais avec des données différentes.

Pour que cela soit plus simple, j'ai construis un petit exemple en pièce jointe "reportings et synthèse.xls".

Dans cette pièce jointe il y a:

* 1er onglet => reporting maurice

* 2ème onglet => reporting jacques

* 3ème onglet => reporting pierre

* 4ème onglet => synthèse

Il y a plusieurs objectifs pour la synthèse (le 4ème onglet):

* importer uniquement les colonnes A à F à partir de la ligne 6 des 3 premiers onglets

* ne pas importer les lignes vides des 3 premiers onglets

* trier la colonne A (date vente véhicule) par ordre croissant dans l'onglet synthèse

Nb: chaque reporting peut contenir plus de 5000 lignes

J'espère que ma demande est compréhensible.

Cordialement.

Monsach

Bonjour,

Une proposition Power Query (Excel 2016).

Pas de VBA.

Les données ont été mises sous forme de tableaux (dynamiques).

L'actualisation de T_Synthèse s'effectue avec la commande 'Actualiser tout' dans le menu 'Données' dans le ruban.

A te relire.

Cdlt.

Bonjour Jean-Eric,

Tout d'abord, je vous remercie pour votre réactivité.

Cependant, j'aurai voulu un codage VBA, car le document original comprend plusieurs macro associées à des boutons de macro. Et mon souhait aurait été d'intégrer ce codage à un bouton macro. Mais malheureusement, quand j'essaye de coder, je n'arrive pas à importer uniquement les colonnes souhaitées, et à supprimer les lignes vides.

Nb: le document que j'ai mis en pièce jointe n'est qu'un tout petit exemple. Le document original comprend:

  • une vingtaine d'onglets (certains serviront pour la synthèse, d'autres comme procédure ou contenu des listes déroulantes)
  • plusieurs macro sont déjà existantes

Cordialement.

Monsach

Bonjour,

Une proposition à étudier.

Attention ! Toutes les données doivent sous la forme de tableaux...

Cdlt.

Private Sub cmdConsolider_Click()
Dim ws As Worksheet, rStart As Range
    Application.ScreenUpdating = False
    Set lo = Me.ListObjects(1)
    With lo
        If Not .DataBodyRange Is Nothing Then .DataBodyRange.Delete
        Set rStart = .InsertRowRange.Cells(1)
    End With
    For Each ws In ActiveWorkbook.Worksheets
        If ws.Name <> Me.Name Then
            ws.ListObjects(1).DataBodyRange.Copy
            rStart.PasteSpecial xlPasteValues
            Application.CutCopyMode = 0
            Set rStart = lo.HeaderRowRange.Cells(1).Offset(lo.ListRows.Count + 1)
        End If
    Next
    With lo
        .Sort.SortFields.Add .ListColumns(1).DataBodyRange, _
                            SortOn:=xlSortOnValues, _
                            Order:=xlAscending
        .Sort.Apply
        .Sort.SortFields.Clear
    End With
    Set rStart = Nothing: Set lo = Nothing
End Sub
Rechercher des sujets similaires à "tableau synthese"