Function UserformOnCell(Cel As String) As Variant ' Auteur RyuAutodidacte | 26-27/09/2023
Dim Adr, CheckCol As Integer, PtToPx, PtSpxY, CmdBRib, Z, L, T
Adr = Split(ActiveWindow.VisibleRange.Address, ":")
If (Range(Cel).Column >= Range(Adr(0)).Column And Range(Cel).Column <= Range(Adr(1)).Column) = False Then
ActiveWindow.ScrollColumn = Range(Cel).Column
End If
If (Range(Cel).Row >= Range(Adr(0)).Row And Range(Cel).Row <= Range(Adr(1)).Row) = False Then
ActiveWindow.ScrollRow = Range(Cel).Row
End If
CheckCol = ActiveWindow.Panes(1).VisibleRange.Cells(1).Column
If CheckCol <= Range(Cel).Column Then
CheckCol = Range(Cel).Column - CheckCol + 1
Else
CheckCol = Range(Cel).Column
End If
PtToPx = 0.75
PtSpxY = ActiveWindow.Panes(1).PointsToScreenPixelsY(0) * PtToPx
#If Mac Then
CmdBRib = CommandBars("ribbon").Height
#Else
CmdBRib = 0
#End If
With ActiveWindow
Z = .Zoom / 100
L = (.Left + Cells(Range(Cel).Row, CheckCol).Left + 19) * Z - ((.Left - 1) * (Z - 1))
T = PtSpxY + (Range(Cel).Top * Z) + CmdBRib / 4
End With
UserformOnCell = Array(L, T)
End Function