Bonjour @AlainPncl, @DocteurExcel,
@AlainPncl, puisque tu as déjà des connaissances en macro VBA, je ne rentrerais pas dans les détails.
Donc voici une proposition, qui n’ai pas parfaite, mais elle a le mérite de fonctionner comme tu le demandes.
Après avoir entré les données dans la feuille « Menu » en « B1:B6 » cliquer sur le bouton « Valider ».
Les données « B1, B3:B6 » sont réparties dans la feuille sélectionnée en « B2 » et sont aussi copiées dans la feuille « Tableau général » les unes au dessus des autres ( c’est à dire en ligne 2).
Comme nous insérons une ligne, le format de couleur de la ligne 1 suit, donc j’ai du ruser pour effacer le format copié et j’ai ajouté un code dans chaque feuilles « Tableau général, Alpha, Bravo, Charlie, Delta » pour remettre un encadrement cellule non vide.
Enfin on efface les données de la feuille « Menu ».
Code VBA des feuilles:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Set Target = Intersect(Target, [A2:A5000])
If Target Is Nothing Then Exit Sub
On Error Resume Next
Intersect(Target.SpecialCells(xlCellTypeBlanks).EntireRow, [A2:E5000]).Borders.LineStyle = xlNone
Intersect(Target.SpecialCells(xlCellTypeConstants).EntireRow, [A2:E5000]).Borders.Weight = xlThin
End Sub
Code VBA du bouton « Valider »:
Sub Copie()
Derligne = 2
Application.ScreenUpdating = False
Application.EnableEvents = False
With Sheets(Range("B2").Value)
.Rows(Derligne).Insert
Sheets("Menu").Range("B1,B3:B6").Copy
.Range("A" & Derligne).PasteSpecial Paste:=xlPasteValues, Transpose:=True
.Range("A2:E5000").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5), Header:=xlNo
End With
With Sheets("Tableau général")
.Rows(Derligne).Insert
Sheets("Menu").Range("B1,B3:B6").Copy
.Range("A" & Derligne).PasteSpecial Paste:=xlPasteValues, Transpose:=True
End With
Sheets(Array("Tableau général", "Alpha", "Bravo", "Charlie", "Delta")).Select
Sheets("Tableau général").Activate
Rows("2:5000").Select
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("A2").Select
Sheets("Menu").Select
Worksheets("Menu").Range("B1:B6").ClearContents
Application.EnableEvents = True
ActiveWorkbook.Save
End Sub
Pour les feuilles « Alpha, Bravo, Charlie, Delta » je supprime les doublons, ce que je ne fais pas pour la feuille « Tableau général »
ActiveWorkbook.Save
Enfin cette ligne de code, sauvegarde le fichier à la fin de l’exécution de la macro.
Ci-joint ton fichier en retour ICI==> http://www.cjoint.com/c/GLlnPEfB67u
J’ai du passer par cjoint, car le fichier est trop volumineux, donc clique sur le lien et suis la procédure.
Cordialement.