XL 2013 Récap de plusieurs onglets sur un seul

ANTONY34200

XLDnaute Occasionnel
Bonjour le forum,
j'ai fais un petit fichier, dans lequel il y a plusieurs onglets ... 1, 2, 3, et récap.
j'aimerais que dans l'onglet récap, il puisse s'y incrémenter automatiquement les données des onglets 1, 2, 3
J'ai bien trouver une pseudo solution avec des formules (mais la présentation ne me conviens pas ...),donc je préférerais passer par du VBA, mais je ne suis pas très doué avec le VBA ...
Si quelqu'un pouvais me filer un petit coup de main ...
Je vous joint un fichier test du fichier sur lequel je travail.

Merci d'avance
 

Pièces jointes

  • Onglet Récap.xlsx
    18.7 KB · Affichages: 10
Solution
Bonjour Staple1600,
je viens juste de trouver ma solution avec ce code ...
VB:
Sub importer()
  Dim i As Long, sh As Integer, lig As Long, j As Integer
  With Sheets("Récap")
   .Range("A3:J" & .Range("A" & Rows.Count).End(xlUp).Row + 1).ClearContents
   For sh = 1 To Sheets.Count
    If Sheets(sh).Name <> "Récap" And Sheets(sh).Name <> "3 (4)" Then ' entre les guillements les feuilles non désirées
      For i = 3 To Sheets(sh).Range("A" & Rows.Count).End(xlUp).Row + 1
        If .Range("A2") = "" Then lig = 2 Else lig = .Range("A" & Rows.Count).End(xlUp).Row + 1
        For j = 1 To .Cells(2, Columns.Count).End(xlToLeft).Column
          .Cells(lig, j) = Sheets(sh).Cells(i, j)
        Next
      Next
    End If
   Next
  End With
End...

Staple1600

XLDnaute Barbatruc
Re,

Quand tu sélectionnes un TCD, puis tu vas sur l'onglet Création, tu as à disposition plusieurs styles de TCD
StylesTCD.png
 

cp4

XLDnaute Barbatruc
Bonjour @ANTONY34200 :), @Staple1600 ;),

@ANTONY34200 : Je prends le train en marche. Je rejoins l'avis de Jean Mairie pour l'utilisation des tableaux structurés. Je te propose le code ci-dessous pour alimenter ta feuille "Recherche", basé sur le nom des feuilles concernées comme numérique (1,2,3, etc.....)
VB:
Sub importer()
   Dim F As Worksheet
   With Sheets("Recherche")
      .Range("K3:U" & .Range("K" & Rows.Count).End(xlUp).Row + 1).Clear
      For Each F In Worksheets
         If IsNumeric(F.Name) Then
            If F.ListObjects(1).ListRows.Count <> 0 And F.ListObjects(1).Range(2, 2) <> "" Then
               Debug.Print F.Name, F.ListObjects(1).Name, F.ListObjects(1).ListRows.Count, F.ListObjects(1).Range(2, 2)
               dl = .Range("K" & Rows.Count).End(xlUp).Row + 1
               F.ListObjects(1).DataBodyRange.Copy .Range("K" & dl)
            End If
         End If
      Next
   End With
End Sub
 

Staple1600

XLDnaute Barbatruc
RE

@cp4
Trop tard, tu as pris ton ticket!
;)
Et comme disait jadis la seuneuceufeu, dans ses wagons.
82111625__Italie_1997-16bde.png

Je précisais juste ce qu'était mon avis ici.

Et le demandeur fera ce qu'il veut: se simplifier le classeur ou lui faire prendre du poids avec moult feuilles et tutti quanti.
 

Discussions similaires

Réponses
3
Affichages
432

Statistiques des forums

Discussions
315 126
Messages
2 116 491
Membres
112 763
dernier inscrit
issam2020