Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Arranging Windows
I have a piece of code that creates a second window. I noticed that on only
one of the windows are the VBA control buttons active. When I arrange the windows programatically using Application.Windows.Arrange to arrange the windows horizontally, the window with the active buttons always is on the bottom. Is there any way I can make sure that it's on top instead? I'm using Excel 2000. Thank you. -- ********************* J Streger MS Office Master 2000 ed. MS Project White Belt 2003 |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Arranging Windows
Do you create the second window?
If you do, maybe you could keep track of what the activewindow was when you started. And it sure looks like the activewindow ends up at the top when I arrange them horizontally. Option Explicit Sub testme01() Dim myWindow As Window Set myWindow = ActiveWindow Application.ScreenUpdating = False myWindow.NewWindow myWindow.Activate Windows.Arrange arrangestyle:=xlArrangeStyleHorizontal, _ ActiveWorkbook:=True Application.ScreenUpdating = True End Sub Worked for me. J Streger wrote: I have a piece of code that creates a second window. I noticed that on only one of the windows are the VBA control buttons active. When I arrange the windows programatically using Application.Windows.Arrange to arrange the windows horizontally, the window with the active buttons always is on the bottom. Is there any way I can make sure that it's on top instead? I'm using Excel 2000. Thank you. -- ********************* J Streger MS Office Master 2000 ed. MS Project White Belt 2003 -- Dave Peterson |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Arranging Windows
window 1 is always the activewindow.. also going thru the windows collection by number will not produce the desired results.. so i tried following, I dont know if it is the 'proper' approach, but it does seem to do the trick... :) Get the names.. Sort them, Activate in reverse order.. and then finally use Arrange Produces the "first" window on top. Sub ArrangeWindowsByName() ' 31-3-2005 by keepITcool Dim i&, aNames Application.ScreenUpdating = False With ActiveWorkbook.Windows 'Store the names of the windows ReDim aNames(1 To .Count) For i = 1 To .Count aNames(i) = .Item(i).Caption Next 'Sort the names array qSort aNames 'Activate in reverse order For i = .Count To 1 Step -1 With .Item(aNames(i)) If .Visible Then .Activate End With Next .Arrange ArrangeStyle:=xlHorizontal End With Application.ScreenUpdating = True End Sub Sub qSort(v, Optional n& = True, Optional m& = True) Dim i&, j&, p, t If n = True Then n = LBound(v): If m = True Then m = UBound(v) i = n: j = m: p = v((n + m) \ 2) While (i <= j) While (v(i) < p And i < m): i = i + 1: Wend While (v(j) p And j n): j = j - 1: Wend If (i <= j) Then t = v(i): v(i) = v(j): v(j) = t i = i + 1: j = j - 1 End If Wend If (n < j) Then qSort v, n, j If (i < m) Then qSort v, i, m End Sub -- keepITcool | www.XLsupport.com | keepITcool chello nl | amsterdam J Streger wrote : I have a piece of code that creates a second window. I noticed that on only one of the windows are the VBA control buttons active. When I arrange the windows programatically using Application.Windows.Arrange to arrange the windows horizontally, the window with the active buttons always is on the bottom. Is there any way I can make sure that it's on top instead? I'm using Excel 2000. Thank you. |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Arranging the VBA console windows | Excel Discussion (Misc queries) | |||
re-arranging the data | Excel Discussion (Misc queries) | |||
Need help arranging chart | Excel Discussion (Misc queries) | |||
re-arranging worksheets | Excel Discussion (Misc queries) | |||
Arranging columns | Excel Worksheet Functions |