Bonjour…
Avec mes interprétations de l’action : choix de la colonne et de l’onglet pour la cellule visée (voir fichier joint)
Je pense être le promoteur du If Target.Address = [I2].Address Then , que des utilisateurs ne savent pas qu’elle permet d’éviter, dans certaines situations, des problèmes (par exemple : récursivité, effacement malvenu de cellules).
Eric (), tu as un autre problème dans ta proposition , c’est plutôt If Target.Address = "$M$2" Then
D’où mes proposition (voir fichier joint, ici 2 cas)
Private Sub Worksheet_Change(ByVal R As Range)
Dim C As Range, n As Byte
If R.Address = [I2].Address Then
If R = "" Then Exit Sub
Set C = Columns("AK").Find(R.Value, MatchCase:=1)
If Not C Is Nothing Then Application.Goto C(1, 1)
End If
If R.Address = [M2].Address Then Application.Goto Sheets(R.Text).Cells(1, [I2].Value)
End Sub
'ou
Private Sub Worksheet_Change(ByVal R As Range)
Dim C As Range, n As Byte
If R.Address = [M2].Address Then
If R = "" Then Exit Sub
Set C = Columns("AK").Find(R.Value, MatchCase:=1)
If Not C Is Nothing Then Application.Goto Sheets(R.Text).Cells(1, [I2].Value)
End If
End Sub
LouReed (), le Application.Goto réclame une cellule précise, il n’est pas précisé laquelle.
J’aurais pu proposer (2 lignes de plus avec le Else)
…
If Not C Is Nothing Then
Application.Goto C(1, 1)
else
If R.Address = [M2].Address Then Application.Goto Sheets(R.Text).Cells(1, 1) ‘ou autre
End if
End Sub