Bonjour bilel, le forum,
Un essai....
Sub testRECAP()
Dim Plage As Range, lo As ListObject
Dim lig%
Application.ScreenUpdating = False '.....................................désactive le rafraichissement de l'écran
With Sheets("Configurateur Matériels") '..................................agit sur cette feuille uniquement
If Not .ListObjects("TableauRECAP").DataBodyRange Is Nothing Then _
.ListObjects("TableauRECAP").DataBodyRange.Delete '.....................efface le tableau "TableauRECAP"
For Each lo In .ListObjects '............................boucle sur les tableaux
If lo.Name <> "TableauRECAP" Then '.....................à condtion que leur nom soit différent de "TableauRECAP"
If Not lo.DataBodyRange Is Nothing Then '..............si le tableau contient des données
.ListObjects("TableauRECAP").ListRows.Add '............ajoute une ligne à "TableauRECAP"
'......................................................lig :définit la première ligne vide de TableauRECAP
lig = .ListObjects("TableauRECAP").ListColumns("ETAPE Montage").Range.Find("", SearchDirection:=xlNext).Row
lo.DataBodyRange.Copy .Range("A" & lig) '.............copie les données de chaque tableau
End If
End If
Next lo '................................................passe au tableau suivant
End With
Application.CutCopyMode = False '............................désactive la sélection d'un copier et vide le presse-papier.
End Sub
J'ai renommé le dernier tableau "TableauRECAP"....
CTRL + E pour exécuter la macro "testRECAP"
Le TableauRECAP ne devrait-il pas être sur un autre onglet ?
[EDIT] : Bonjour Dan, désolé, j'ai répondu sans vérifier qu'une réponse avait été apportée.
Cordialement,