XL 2016 Regrouper toutes les lignes d'une série de feuille

guigui4901

XLDnaute Junior
Bonjour à toutes / tous !

Me revoilà de retour avec une nouvelle problématique qui va vraisemblablement nécessité une peu de VBA

J'ai un classeur avec plusieurs feuilles (notons A, B, C, D...) et une dernière feuille, la E, qui me sert de récap.

Chacune des premières feuilles contient un tableau aux colonnes identiques, nom fournisseur, désignation article, prix unit...
j'aimerais que le récap reprenne l'ensemble de tous les articles de tous les fournisseurs et que cette feuille se mette à jour automatiquement lorsque j'ajoute ou supprime un article dans l'une des feuilles fournisseurs (j'espère que je suis clair... :) ).
J'ai pensé à deux solutions :

1) faire une liaison de la feuille fournisseur vers la feuille récap pour un certain nombre de lignes (laissant donc de la place pour ajouter de nouveaux articles). Faire de même pour chaque fournisseur et ensuite masquer de façon automatique les blancs dans la feuille récap.
=> ça me semble un peu trop bricolage

2) Avoir un code autre qui permet de faire plus propre... je ne sais pas comment :)


PARTIE 2 :
Il ne s'agit pas de recopier dans la dernière feuille que le nom de l'article, mais également de renvoyer sa ref chez le fournisseur et sont prix moyen.
Comment transformer la recherche horizontale pour que à la place de "plage de recherche" on trouve un code du genre "chercher dans la feuille nommé par la cellule à ta gauche"...

En PJ un petit fichier rapide reprenant les éléments.

Merci d'avance de votre aide !

Belle fin de soirée à vous...

A bientôt

Guillaume
 

Pièces jointes

  • classeur test.xlsx
    20.4 KB · Affichages: 8

Staple1600

XLDnaute Barbatruc
Re

Suite, une variante pour ne copier que les valeurs seules
VB:
Sub RecapValeurs_Seules()
Dim ws As Worksheet
Application.ScreenUpdating = False
For Each ws In Worksheets
If Not ws.Name = "recap" Then
ws.Range("A1").CurrentRegion.Offset(2).Copy
Sheets("recap").Cells(Rows.Count, 1).End(xlUp)(2).PasteSpecial xlValues
Application.CutCopyMode = False
End If
Next ws
End Sub
 

guigui4901

XLDnaute Junior
Re

Suite, une variante pour ne copier que les valeurs seules
VB:
Sub RecapValeurs_Seules()
Dim ws As Worksheet
Application.ScreenUpdating = False
For Each ws In Worksheets
If Not ws.Name = "recap" Then
ws.Range("A1").CurrentRegion.Offset(2).Copy
Sheets("recap").Cells(Rows.Count, 1).End(xlUp)(2).PasteSpecial xlValues
Application.CutCopyMode = False
End If
Next ws
End Sub

Bonjour Staple,

Merci pour le coup de main et pour la rapidité de réponse. Le code est à ajouter dans vba par le biais d'un bouton dans la feuille récap ? J'avoue que je suis un peu perdu... :(

Merci du coup de main

Bon courage

Guillaume
 

Discussions similaires

Statistiques des forums

Discussions
315 097
Messages
2 116 187
Membres
112 679
dernier inscrit
Yupanki