Sub Test()
'Création flèche
Dim Sh As Shape, CelDep As String, CelFin As String, Ligne1 As Long, Ligne2 As Long, Colonne1 As Long, Colonne2 As Long
CelDep = "f2"
CelFin = "c4"
Set Sh = ActiveSheet.Shapes.AddLine(Range(CelDep).Left + Range(CelDep).Width / 2, Range(CelDep).Top + Range(CelDep).Height / 2, Range(CelFin).Left + Range(CelFin).Width / 2, Range(CelFin).Top + Range(CelFin).Height / 2)
Sh.Line.EndArrowheadStyle = msoArrowheadTriangle
Sh.Line.EndArrowheadLength = msoArrowheadLengthMedium
Sh.Line.EndArrowheadWidth = msoArrowheadWidthMedium
'Coordonnées flèche
Ligne1 = Sh.TopLeftCell.Row
Colonne1 = Sh.TopLeftCell.Column
Ligne2 = Sh.BottomRightCell.Row
Colonne2 = Sh.BottomRightCell.Column
'MsgBox Sh.Nodes(1).Points(1, 1) & "," & Sh.Nodes(1).Points(1, 2) & " - " & Sh.Nodes(2).Points(1, 1) & "," & Sh.Nodes(2).Points(1, 2)
CelDep = Cells(IIf(Sh.Nodes(1).Points(1, 2) > Sh.Nodes(2).Points(1, 2), Ligne2, Ligne1), IIf(Sh.Nodes(1).Points(1, 1) > Sh.Nodes(2).Points(1, 1), Colonne2, Colonne1)).Address(False, False)
CelFin = Cells(IIf(Sh.Nodes(1).Points(1, 2) > Sh.Nodes(2).Points(1, 2), Ligne1, Ligne2), IIf(Sh.Nodes(1).Points(1, 1) > Sh.Nodes(2).Points(1, 1), Colonne1, Colonne2)).Address(False, False)
MsgBox CelDep & " - " & CelFin
End Sub