bonsoir tout le monde
@Dranreb , ce que tu m'as demandé.
tout d'abord une petite précision, j'allume mon ordi et j'ai les résultats affichés avec les routines ci-dessous
j'étais en 1920x1080 avec ces résultats
je passe en 1600x900 tous les essais sont identiques 96 et 1,333333.....
je repasse en 1920x1080 et là pareil tous idem 96 et 1,33333..... !?!?
c'est qq chose que je ne comprend pas du tout !
je m'en était aperçu une fois, c'est pour ça que j'avais mis 1,60 arrondi dans mon msg
ça se produit par moment sans m'en rendre compte !?
et le pire c'est que je n'arrive plus à le reproduire !? vous allez croire que je suis shooté !
donc pour l'instant c'est 96 et 1,33333.....
'>>>>>> les deux = 1,333333.... celui-ci toujours fiable !
Sub Test()
MsgBox GetDeviceCaps(GetDC(0), 88) / 72 & " pixels par point horizontalement," & vbLf _
& GetDeviceCaps(GetDC(0), 90) / 72 & " pixels par point verticalement.", vbInformation
End Sub
'>>>>>>>>>>>>>>>>>>>>>>> ceci = 1,596709......
Function FPointToPixel1() As Double
With ActiveWindow.ActivePane: FPointToPixel1 = (.PointsToScreenPixelsX(Cells.Width) - .PointsToScreenPixelsX(0)) / Cells.Width: End With
MsgBox FPointToPixel1
End Function
'>>>>>>>>>>>>>>>>>>>>>>> ceci = 1,569444..... DPI=113
Function FPointToPixel2() As Double
Dim DPI As Integer
With ActiveWindow.ActivePane
DPI = Round(((.PointsToScreenPixelsY(Cells.Height) - .PointsToScreenPixelsY(0)) / Cells.Height) * 72)
FPointToPixel2 = DPI / 72
End With
MsgBox FPointToPixel2 & vbLf & DPI
End Function