Private Sub Worksheet_Change(ByVal Target As Range)
Dim f As Byte 'décalre la variable f
Dim li As Byte 'déclare la variable li
Dim ha As Variant 'déclare la variable ha
If Target.Address <> "$A$4" Then Exit Sub 'si le changement n'a pas lieu en A4, sort de la procédure
If Target.Value = "" Then Target.Offset(1, 0).Value = "": Exit Sub 'si on efface A4, le tableau est éffacé aussi
ha = Target.Value 'définit la variable nc
For f = 1 To 30 'boucle 1 : sur 30 onglets
With Sheets(f) 'prend en compte l'onglet de la boucle
If .Cells(li, 1).Value = ha Then 'condition : si la valeur de la cellule correspond au numéro édité en A4
Range("a1:u300").Select
Selection.Copy
ActiveSheet.Range("A20").Paste 'copie la feuille en question
Application.CutCopyMode = False
GoTo fin 'sort de la procédure via la balise "fin"
End If 'fin de la condition
End With 'fin de la prise en compte de l'onglet
Next f 'prochain onglet de la boucle 1
MsgBox "la marque n'existe pas !" 'ce message apparaît si tous les onglets on été vérifiés
fin: 'balise
End Sub