Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Bonjour à tous
Pourriez-vous m'aider pour mon fichier dans lequel j'aimerais avoir le rassemblement des données de l'onglet "Données" vers l'onglet "Recap", je ne sais pas ce qui est le mieux VBA ou Power Query pour faire cela.
Je vous explique en deux mots,
Dans l'onglet "Données" j'ai plusieurs tableaux T_DATA_1, T_DATA_2 qui reprennent des quantités et longueurs et j'aimerais regrouper tous cela dans un seul tableaux avec le détails de chaques tableaux et les totaux généraux.
Je joint mon fichier pour avoir un aperçu de ce que je souhaite avoir comme résultat dans l'onglet "Recap"
Merci d'avance pour votre aide.
En remplaçant "Quantité" par "Qte" et "Longueur" par "Long." Columns.Autofit réduit la largeur des colonnes, l'effet n'est pas très bon.
Par ailleurs s'il y a un grand nombre de tableaux la fusion c.Resize(, 2).Merge prend beaucoup trop de temps.
J'ai donc modifié la fin de la macro :
VB:
'---restitution---
Application.ScreenUpdating = False
Cells.Delete 'RAZ
ub = UBound(resu)
With [C2] '1ère cellule de destination
.Resize(UBound(resu), UBound(resu, 2)) = resu
.Cells(3).Resize(ub - 2).Borders.Weight = xlThin 'bordures de la 1ère colonne
.Cells(1).Resize(ub).Borders(xlEdgeRight).LineStyle = xlDouble 'bordure double à droite
.Cells(1, 2 * n + 2).Resize(ub).Borders(xlEdgeRight).LineStyle = xlDouble 'colonne de séparation
.Cells(1, 2).Resize(ub, UBound(resu, 2) - 1).HorizontalAlignment = xlCenter
For Each c In .EntireRow.SpecialCells(xlCellTypeConstants)
c.Resize(, 2).HorizontalAlignment = xlCenterAcrossSelection 'plus rapide que la fusion
c.Resize(ub, 2).Borders.Weight = xlThin
c.Resize(ub).Borders(xlEdgeRight).LineStyle = xlDot 'bordure en pointillés
c.Resize(ub, 2).Borders(xlEdgeRight).LineStyle = xlDouble 'bordure double à droite
Next c
Union(.Cells(1), .Cells(1, 2 * n + 2)).EntireColumn.AutoFit 'largeurs de la 1ère colonne et de la colonne de séparation
End With
End Sub
Pour tester j'ai recopié le 1er tableau pour obtenir un total de 8189 tableaux structurés, c'est le maximum possible dans la feuille "Recap".
La macro s'exécute chez moi en 5,7 secondes, c'est très acceptable.
En remplaçant "Quantité" par "Qte" et "Longueur" par "Long." Columns.Autofit réduit la largeur des colonnes, l'effet n'est pas très bon.
Par ailleurs s'il y a un grand nombre de tableaux la fusion c.Resize(, 2).Merge prend beaucoup trop de temps.
J'ai donc modifié la fin de la macro :
VB:
'---restitution---
Application.ScreenUpdating = False
Cells.Delete 'RAZ
With [C2] '1ère cellule de destination
.Resize(UBound(resu), UBound(resu, 2)) = resu
.Cells(3).Resize(UBound(resu) - 2).Borders.Weight = xlThin 'bordures de la 1ère colonne
.Cells(1, 2).Resize(UBound(resu), UBound(resu, 2) - 1).HorizontalAlignment = xlCenter
For Each c In .EntireRow.SpecialCells(xlCellTypeConstants)
c.Resize(, 2).HorizontalAlignment = xlCenterAcrossSelection 'plus rapide que la fusion
c.Resize(UBound(resu), 2).Borders.Weight = xlThin
Next c
Union(.Cells(1), .Cells(1, 2 * n + 2)).EntireColumn.AutoFit 'largeurs de la 1ère colonne et de la colonne de séparation
End With
End Sub
Pour tester j'ai recopié le 1er tableau pour obtenir un total de 8189 tableaux structurés, c'est le maximum possible dans la feuille "Recap".
La macro s'exécute chez moi en 5,8 secondes, c'est très acceptable.
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD