Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dans l'onglet
Dim li As Long 'décrae la variable li (LIgne)
'si le changement a lieu ailleurs que dans I2, sort de la procédure
If Target.Address <> "$I$2" Then Exit Sub
If Target.Value = "" Then Exit Sub 'si la cellule est effacée sort de la procédure
On Error Resume Next 'gestion des erreurs (si une erreurs est générée, va à la ligne suivante
li = CLng(Target.Value) 'définit la variable li (génère une erreur si valeur non convertible en entier long)
If Err > 0 Then 'condition : si une erreur a été générée
Err = 0 'annulle l'erreur
MsgBox "Vous devez taper une valeur numérique représentant un numéro de ligne !" 'message
Target.Select 'sélectionne I2
Exit Sub 'sort de la procédure
End If 'fin de la condition
On Error GoTo 0 'annule la gestion des erreurs
'condition : si le numéro tapé ne correspond pas à un numéro de ligne
If Target.Value < 1 Or Target.Value > Application.Rows.Count Then
MsgBox "Numéro de ligne non compatible ! Veuillez recommencer" 'message
Target.Select 'sélectionne I2
Exit Sub 'sort de la procédure
End If 'fin de la condition
With Sheets("base") 'prend en compte l'onglet "base"
.Select 'sélectionne l'onglet
.Cells(li, 3).Select 'sélectionne la cellule ligne ligne li colonne 3
End With 'fin de la prise en compte de l'onglet "base
End Sub