ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Arranging 3 windows ... Regardless of Monitor Size (https://www.excelbanter.com/excel-programming/356365-arranging-3-windows-regardless-monitor-size.html)

monir

Arranging 3 windows ... Regardless of Monitor Size
 
Hello;

I've an Excel file (A.xls) that opens (via a VB macro) 2 other Excel files
(B.xls and C.xls), and arranges the 3 windows horizontally (on a 17" laptop
screen) as follows (arrived at by trial & error, and it works fine):

Sub OpenArrange_1()
.................................................. ........................
' for A.xls, full width of screen
................................................
With ActiveWindow
.Width = 1074.74
.Height = 326.25
End With

................................................
' for B.xls, bottom left of screen
................................................
With ActiveWindow
.Top = 328
.Left = 1
.Width = 534
.Height = 332.25
End With

................................................
' for C.xls, bottom right of screen
................................................
With ActiveWindow
.Top = 328
.Left = 534.5
.Width = 543.83
.Height = 332.25
End With
.................................................. .........................

How can I have the same above arrangement (proportionally) on different size
monitors without having different versions of the above code for each monitor
??

Thank you kindly.


monir

Arranging 3 windows ... Regardless of Monitor Size
 
Please disregard the word "horizontally" in my original post. My apologies!

"monir" wrote:

Hello;

I've an Excel file (A.xls) that opens (via a VB macro) 2 other Excel files
(B.xls and C.xls), and arranges the 3 windows horizontally (on a 17" laptop
screen) as follows (arrived at by trial & error, and it works fine):

Sub OpenArrange_1()
.................................................. .......................
' for A.xls, full width of screen
...............................................
With ActiveWindow
.Width = 1074.74
.Height = 326.25
End With

...............................................
' for B.xls, bottom left of screen
...............................................
With ActiveWindow
.Top = 328
.Left = 1
.Width = 534
.Height = 332.25
End With

...............................................
' for C.xls, bottom right of screen
...............................................
With ActiveWindow
.Top = 328
.Left = 534.5
.Width = 543.83
.Height = 332.25
End With
.................................................. ........................

How can I have the same above arrangement (proportionally) on different size
monitors without having different versions of the above code for each monitor
??

Thank you kindly.


Dave Peterson

Arranging 3 windows ... Regardless of Monitor Size
 
This worked ok for me:

Option Explicit
Sub testme()

Dim myWindow1 As Window
Dim myWindow2 As Window
Dim myWindow3 As Window

Dim myWidth As Double
Dim myHeight As Double
Dim myTop As Double
Dim myLeft As Double

Set myWindow1 = Workbooks("book1.xls").Windows(1)
Set myWindow2 = Workbooks("book2.xls").Windows(1)
Set myWindow3 = Workbooks("book3.xls").Windows(1)

With Application
myWidth = .UsableWidth
myHeight = .UsableHeight
myTop = 1
myLeft = 1
End With

ActiveWindow.WindowState = xlNormal

With myWindow1
.Height = myHeight / 2
.Top = myTop
.Width = myWidth
.Left = myLeft
End With
With myWindow2
.Height = myHeight / 2
.Top = myTop + .Height
.Width = myWidth / 2
.Left = myLeft
End With
With myWindow3
.Height = myHeight / 2
.Top = myTop + .Height
.Width = myWidth / 2
.Left = myLeft + .Width
End With

End Sub

monir wrote:

Hello;

I've an Excel file (A.xls) that opens (via a VB macro) 2 other Excel files
(B.xls and C.xls), and arranges the 3 windows horizontally (on a 17" laptop
screen) as follows (arrived at by trial & error, and it works fine):

Sub OpenArrange_1()
.................................................. .......................
' for A.xls, full width of screen
...............................................
With ActiveWindow
.Width = 1074.74
.Height = 326.25
End With

...............................................
' for B.xls, bottom left of screen
...............................................
With ActiveWindow
.Top = 328
.Left = 1
.Width = 534
.Height = 332.25
End With

...............................................
' for C.xls, bottom right of screen
...............................................
With ActiveWindow
.Top = 328
.Left = 534.5
.Width = 543.83
.Height = 332.25
End With
.................................................. ........................

How can I have the same above arrangement (proportionally) on different size
monitors without having different versions of the above code for each monitor
??

Thank you kindly.


--

Dave Peterson

monir

Arranging 3 windows ... Regardless of Monitor Size
 
Dave;

Thank you very much. I'll shortly test your "elegant" code.

Meanwhile, you may like to review my "simple" code I posted last night at
MrExcel for the same thread. Any comments ? (apart from lack of elegance!).

Thanks again for your help.



"Dave Peterson" wrote:

This worked ok for me:

Option Explicit
Sub testme()

Dim myWindow1 As Window
Dim myWindow2 As Window
Dim myWindow3 As Window

Dim myWidth As Double
Dim myHeight As Double
Dim myTop As Double
Dim myLeft As Double

Set myWindow1 = Workbooks("book1.xls").Windows(1)
Set myWindow2 = Workbooks("book2.xls").Windows(1)
Set myWindow3 = Workbooks("book3.xls").Windows(1)

With Application
myWidth = .UsableWidth
myHeight = .UsableHeight
myTop = 1
myLeft = 1
End With

ActiveWindow.WindowState = xlNormal

With myWindow1
.Height = myHeight / 2
.Top = myTop
.Width = myWidth
.Left = myLeft
End With
With myWindow2
.Height = myHeight / 2
.Top = myTop + .Height
.Width = myWidth / 2
.Left = myLeft
End With
With myWindow3
.Height = myHeight / 2
.Top = myTop + .Height
.Width = myWidth / 2
.Left = myLeft + .Width
End With

End Sub

monir wrote:

Hello;

I've an Excel file (A.xls) that opens (via a VB macro) 2 other Excel files
(B.xls and C.xls), and arranges the 3 windows horizontally (on a 17" laptop
screen) as follows (arrived at by trial & error, and it works fine):

Sub OpenArrange_1()
.................................................. .......................
' for A.xls, full width of screen
...............................................
With ActiveWindow
.Width = 1074.74
.Height = 326.25
End With

...............................................
' for B.xls, bottom left of screen
...............................................
With ActiveWindow
.Top = 328
.Left = 1
.Width = 534
.Height = 332.25
End With

...............................................
' for C.xls, bottom right of screen
...............................................
With ActiveWindow
.Top = 328
.Left = 534.5
.Width = 543.83
.Height = 332.25
End With
.................................................. ........................

How can I have the same above arrangement (proportionally) on different size
monitors without having different versions of the above code for each monitor
??

Thank you kindly.


--

Dave Peterson


Dave Peterson

Arranging 3 windows ... Regardless of Monitor Size
 
I don't visit MrExcel.

monir wrote:

Dave;

Thank you very much. I'll shortly test your "elegant" code.

Meanwhile, you may like to review my "simple" code I posted last night at
MrExcel for the same thread. Any comments ? (apart from lack of elegance!).

Thanks again for your help.



"Dave Peterson" wrote:

This worked ok for me:

Option Explicit
Sub testme()

Dim myWindow1 As Window
Dim myWindow2 As Window
Dim myWindow3 As Window

Dim myWidth As Double
Dim myHeight As Double
Dim myTop As Double
Dim myLeft As Double

Set myWindow1 = Workbooks("book1.xls").Windows(1)
Set myWindow2 = Workbooks("book2.xls").Windows(1)
Set myWindow3 = Workbooks("book3.xls").Windows(1)

With Application
myWidth = .UsableWidth
myHeight = .UsableHeight
myTop = 1
myLeft = 1
End With

ActiveWindow.WindowState = xlNormal

With myWindow1
.Height = myHeight / 2
.Top = myTop
.Width = myWidth
.Left = myLeft
End With
With myWindow2
.Height = myHeight / 2
.Top = myTop + .Height
.Width = myWidth / 2
.Left = myLeft
End With
With myWindow3
.Height = myHeight / 2
.Top = myTop + .Height
.Width = myWidth / 2
.Left = myLeft + .Width
End With

End Sub

monir wrote:

Hello;

I've an Excel file (A.xls) that opens (via a VB macro) 2 other Excel files
(B.xls and C.xls), and arranges the 3 windows horizontally (on a 17" laptop
screen) as follows (arrived at by trial & error, and it works fine):

Sub OpenArrange_1()
.................................................. .......................
' for A.xls, full width of screen
...............................................
With ActiveWindow
.Width = 1074.74
.Height = 326.25
End With

...............................................
' for B.xls, bottom left of screen
...............................................
With ActiveWindow
.Top = 328
.Left = 1
.Width = 534
.Height = 332.25
End With

...............................................
' for C.xls, bottom right of screen
...............................................
With ActiveWindow
.Top = 328
.Left = 534.5
.Width = 543.83
.Height = 332.25
End With
.................................................. ........................

How can I have the same above arrangement (proportionally) on different size
monitors without having different versions of the above code for each monitor
??

Thank you kindly.


--

Dave Peterson


--

Dave Peterson


All times are GMT +1. The time now is 04:18 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com