Добрый день! Помогите написать код Vba, так чтобы лист 1 занимал 2/3 экрана вертикально, а лист2 1/3 экрана, при этом пользователь не мог изменить данные настройки в данном файле и данные настройки автоматически открывались при открытии книги, при этом сохранилась бы возможность вносить данные в ячейки (пробовала через вид, новое окно, но когда закрываешь файл и открываешь его снова, отображается только один лист, а нужно чтобы отображались два листа). Также необходимо чтобы встав например на строку 19, эта же строка отображалась на листе 2 (ширина строк на двух листах разная). Пример в файле. Спасибо!
Добрый день! Помогите написать код Vba, так чтобы лист 1 занимал 2/3 экрана вертикально, а лист2 1/3 экрана, при этом пользователь не мог изменить данные настройки в данном файле и данные настройки автоматически открывались при открытии книги, при этом сохранилась бы возможность вносить данные в ячейки (пробовала через вид, новое окно, но когда закрываешь файл и открываешь его снова, отображается только один лист, а нужно чтобы отображались два листа). Также необходимо чтобы встав например на строку 19, эта же строка отображалась на листе 2 (ширина строк на двух листах разная). Пример в файле. Спасибо!Elvira66
Здравствуйте! Не пробовали - Рецензирование - Защита книги - защитить структуру и окна? А по второму вопросу нужна отдельная тема (Правила форума - одна тема - один вопрос)
Здравствуйте! Не пробовали - Рецензирование - Защита книги - защитить структуру и окна? А по второму вопросу нужна отдельная тема (Правила форума - одна тема - один вопрос)_Igor_61
Попробовала, действительно теперь и закреплены два окна, только сам файл это тоже окно, и после блокировки, его не закрыть. В любом случаи это ответ на первую часть. Спасибо! По второй открою отдельную тему.
Попробовала, действительно теперь и закреплены два окна, только сам файл это тоже окно, и после блокировки, его не закрыть. В любом случаи это ответ на первую часть. Спасибо! По второй открою отдельную тему.Elvira66
Private Sub Workbook_Open() Call InExSu_Аранжировка End Sub
[/vba] в Модуль1 [vba]
Код
Sub InExSu_Аранжировка() 'Elvira66 просит "лист 1 занимал 2/3 экрана вертикальн", пусть будет сверху Call ЗакрытьОкнаДубли Application.WindowState = xlMaximized sActWinCap = ActiveWindow.Caption With ActiveWindow .NewWindow Windows(sActWinCap & ":1").Activate .WindowState = xlMaximized End With ActiveWorkbook.Windows.Arrange ArrangeStyle:=xlHorizontal Windows(sActWinCap & ":2").Activate: Sheets("Лист2").Select Windows.CompareSideBySideWith sActWinCap & ":1" Windows(sActWinCap & ":1").Activate: Sheets("Лист1").Select With Windows(sActWinCap & ":2") .Top = 344.2 .Left = 1 .Height = 147.6 End With With Windows(sActWinCap & ":1") .Height = 343.8 End With End Sub Sub ЗакрытьОкнаДубли() 'кроме активного Dim oW As Object For Each oW In Windows If InStr(ActiveWindow.Caption, ":") Then _ ActiveWindow.Close Next End Sub
[/vba]
В "ЭтаКнига": [vba]
Код
Private Sub Workbook_Open() Call InExSu_Аранжировка End Sub
[/vba] в Модуль1 [vba]
Код
Sub InExSu_Аранжировка() 'Elvira66 просит "лист 1 занимал 2/3 экрана вертикальн", пусть будет сверху Call ЗакрытьОкнаДубли Application.WindowState = xlMaximized sActWinCap = ActiveWindow.Caption With ActiveWindow .NewWindow Windows(sActWinCap & ":1").Activate .WindowState = xlMaximized End With ActiveWorkbook.Windows.Arrange ArrangeStyle:=xlHorizontal Windows(sActWinCap & ":2").Activate: Sheets("Лист2").Select Windows.CompareSideBySideWith sActWinCap & ":1" Windows(sActWinCap & ":1").Activate: Sheets("Лист1").Select With Windows(sActWinCap & ":2") .Top = 344.2 .Left = 1 .Height = 147.6 End With With Windows(sActWinCap & ":1") .Height = 343.8 End With End Sub Sub ЗакрытьОкнаДубли() 'кроме активного Dim oW As Object For Each oW In Windows If InStr(ActiveWindow.Caption, ":") Then _ ActiveWindow.Close Next End Sub