'patricktoulon
#If VBA7 Then
Private Declare PtrSafe Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
#Else
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
#End If
Private Const SM_CXVSCROLL = 2
Private Const SM_CYHSCROLL = 3
Private Const SM_CXDLGFRAME = 7
Sub testpat()
Dim PpX#, DepZeroX#, DepZeroY#, Thickframe&
Thickframe = GetSystemMetrics(SM_CXDLGFRAME) * Abs(Application.WindowState = xlMaximized) ' le prendre avec getsystemmetrics
scrowidtht = GetSystemMetrics(SM_CXVSCROLL) ' le prendre avec getsystemmetrics
scroheight = GetSystemMetrics(3) * 2 ' barre de status + onglet tab le prendre avec getsystemmetrics
PpX = 0.75 ' ou 0.6 'utilise la méthode que tu veux
With ActiveWindow
DepZeroX = (.PointsToScreenPixelsX(0) * PpX) - Application.Left
ActiveSheet.Shapes("TheShape").Left = _
Application.UsableWidth - ActiveSheet.Shapes("TheShape").Width - scrowidtht - DepZeroX + Thickframe
ActiveSheet.Shapes("TheShape").Top = _
((.Application.UsableHeight - ActiveSheet.Shapes("TheShape").Height) - scroheight) - Thickframe
End With
End Sub