1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| Function PositionForm1(usf, rng)
Dim Z As Double, K As Double, E As Double
Dim Zooom#, PtToPx#, cadre#
'system = Application.OperatingSystem
'cadre = Application.Width - Application.UsableWidth
'cadre = IIf(system Like "*10*" And Val(Application.Version) <> 12, -cadre / 2.4, cadre / 2.4)
cadre = IIf(Application.OperatingSystem Like "*10*" And Val(Application.Version) <> 12, -5, 1)
With ActiveWindow
Zooom = .Zoom / 100
PtToPx = ((.ActivePane.PointsToScreenPixelsX(ActiveSheet.[A1].Width) - .ActivePane.PointsToScreenPixelsX(0)) / ActiveSheet.[A1].Width) / Zooom
lleft = (.PointsToScreenPixelsX(rng.Left * PtToPx * Zooom) / PtToPx) + cadre
ttop = .PointsToScreenPixelsY(rng.Top * PtToPx * Zooom) / PtToPx + IIf(system Like "*6*", cadre, 0)
Wwidth = IIf(rng.Columns.Count > 1, rng.Width * (Zooom) - cadre * 2, usf.Width)
Hheight = IIf(rng.Rows.Count > 1, rng.Height * Zooom - cadre, usf.Height)
End With
PositionForm1 = Array(lleft, ttop, Wwidth, Hheight)
UserForm1.Label1.Caption = "Zoom" & " " & Zooom * 100
End Function |
Partager