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...

ANTONY34200

XLDnaute Occasionnel
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 Sub

Merci du coup de main.
je joints également mon fichier
 

Pièces jointes

  • Onglet Récap.xlsm
    35 KB · Affichages: 11

ANTONY34200

XLDnaute Occasionnel
j'ai un débogage ...
je cherche a comprendre pourquoi
Capture.JPG
 

Staple1600

XLDnaute Barbatruc
Re

@ANTONY34200
Mon code se base sur ton fichier exemple, celui du message#1
qui ne contient que 4 feuilles nommées
1
2
3
Récap

Donc testes ma macro sur ce fichier, pour voir le résultat de la macro (sans erreur)

NB: Dans ce fichier, les 4 feuilles contenait chacune un seul tableau structuré (Listobject)
D'où : ws.ListObjects(1) et Feuil4.ListObjects(1)
 

Staple1600

XLDnaute Barbatruc
Re

Mon code se contente de recopier
Donc si tu lances la macro N fois, tu auras N copies des tableaux des feuilles 1,2 et 3

Maintenant quel est le but poursuivi ?

Pourquoi ne pas utiliser un seul tableau pour la saisie et utiliser un tableau croisé dynamique pour exploiter tes données ?
Comme ceci par exemple
Ci-dessous un TCD exTCD.PNG
 

Staple1600

XLDnaute Barbatruc
Re

A mon sens, tu tu compliques la vie
Quant au TCD, il suffit de d'y mettre ;)
(Il y a moult tutos sur le web)

Ton dernier fichier ne ressemble plus du tout au premier.
Dans lequel les tableaux avaient tous les même libellés en entêtes.

Si j'étais moi:
• une feuille base de données (*)
• une feuille Récap avec N TCD selon les besoins
ou N TCD sur des N feuilles distinctes créées à la volée.

(*) qui pourrait correspondre à la feuille Recherche de ton dernier fichier.

Exemple: ici j'ai isolé des données pour le mois de janvier 2023
exTCD2.PNG

NB: L'avantage d'utiliser un TCD, c'est qu'il se pilote à la souris et qu'il 'y a pas de risque de plantage VBA.

PS: Pourquoi sur ta feuille Recherche colonne HT = colonne TTC ?

Si tu ne souhaites pas envisager la piste du TCD, je laisse mes petits camarades de jeu prendre le relais
 

Discussions similaires

Réponses
3
Affichages
409

Statistiques des forums

Discussions
314 726
Messages
2 112 242
Membres
111 474
dernier inscrit
baptiste3