Bonjour,
Voici le code commenté
Sub Regrouper()
Dim Ws As Worksheet
Dim Col As Integer
Dim DerLig As Long
'Pour gagner en temps de traitement et obtenir un meillleur effet visuel, on désactive l'actualisation de l'écran
Application.ScreenUpdating = False
'Pour gagner en temps de traitement, , on désactive le mode de calcul automatique
Application.Calculation = xlCalculationManual
'La colonne initiale pour placer les consos est la colonne B
Col = 2
' le traitement s'applique sur la feuille "RENDU"
With Worksheets("RENDU")
'On supprime les données de la feuillle
.Cells.Clear
'On copie les données de la colonne A de la feuille "Base"
'et on les colle à partir de la cellule A1 sur la feuille "RENDU"
Worksheets("Base").Columns(1).Copy .Range("A1")
'On détermine le numéro de la dernière ligne renseignée dans la colonne A
DerLig = .Range("A" & Rows.Count).End(xlUp).Row
'On balaye toutes les feuilles du classeur
For Each Ws In Worksheets
'Si le nom de la feuille est différent de "RENDU" ou "Base"
If Ws.Name <> "RENDU" And Ws.Name <> "Base" Then
'Alors, on copie le nom de la feuille sur la première ligne
.Cells(1, Col) = Ws.Name
'On copie la formule sur la plage comprise entre la deuxième ligne et la derniere ligne
.Range(.Cells(2, Col), .Cells(DerLig, Col)).Formula = _
"=IFERROR(INDEX(INDIRECT(" & .Cells(1, Col).Address(, 0) & "&""!C:C""),MATCH($A2,INDIRECT(" & .Cells(1, Col).Address(, 0) & "&""!B:B""),0)),"""")"
'On incrémente le numéro de colonne
Col = Col + 1
End If
Next Ws
End With
'On active le mode de calcul automatique
Application.Calculation = xlCalculationAutomatic
End Sub
Comme tu peux le constater, ce code ne présente pas de difficulté particulière.
Pour m'aider dans le codage, j'utilise simplement quelques astuces qui s'apprennent avec le temps.
A+