Merci pour l'idée, je comprends le principe mais je ne vois pas comment l'écrire dans mon code actuel.
Je vais peut etre davantage expliquer mon problème
Mon idée première était de remplacer le nom de la feuille "liste_taches" dans le code ci-dessous par le nom de la feuille active ou du nom de la feuille stocké dans une variable.
Mon problème avec ta proposition est, comment ne créer la liste de tâche uniquement sur la feuille de planning active sans modifier les autres?
Sub copiera2()
Dim source As Range
Dim n As Integer
Dim num As Integer
Dim num1 As Integer ' numéro de la dernière ligne utilisée dans la feuille 1
Application.ScreenUpdating = False
Sheets("liste_taches").Activate
'Selectionne toutes les cellules de la feuille
Range("A4:D600").Select
'Supprime toutes les cellules et les décales vers le haut
Selection.Delete Shift:=xlUp
Worksheets("taches_principales").Activate
Set Sht = Worksheets("liste_taches")
n = Sht.Range("C" & Rows.Count).End(xlUp).Row + 1
num = Sheets("taches_principales").Range("A" & Rows.Count).End(xlUp).Row + 1
ActiveSheet.Range("A5", "D" & num).Select
Selection.Copy
Worksheets("liste_taches").Activate
Range("A" & n).Select
Selection.PasteSpecial Paste:=xlPasteValues
Selection.PasteSpecial Paste:=xlPasteFormats
Worksheets("taches_autres").Activate
Set Sht = Worksheets("liste_taches")
num1 = Sheets("taches_autres").Range("A" & Rows.Count).End(xlUp).Row + 1
Set source = ActiveSheet.Range("A4", "D" & num1)
n = Sht.Range("C" & Rows.Count).End(xlUp).Row + 1
source.Copy Destination:=Sht.Cells(n, 1)
Worksheets("taches_autres").Activate
Set Sht = Worksheets("liste_taches")
num2 = Sheets("taches_autres").Range("F" & Rows.Count).End(xlUp).Row + 1
Set source = ActiveSheet.Range("F4", "I" & num2)
n = Sht.Range("C" & Rows.Count).End(xlUp).Row + 1
source.Copy Destination:=Sht.Cells(n, 1)
End Sub