День добрый! Подскажите, может кто в курсе, есть удобная штука в винде Alt+tab, когда нажимаешь тебя перекидывает на файл которым ты пользовался до того как активировал текущий файл. Экономит кучу времени если много файлов открыто. Есть ли такая же штука внутри файла экселевского? Например я на листе 1, потом перехожу на лист 5. И чтобы не искать потом лист1 (ну или 30 листов в файле и не на лист 1 надо а туда обратно с листа 3 на лист 27) нажать какое нибудь сочетание клавиш. Ну или если нет то может кто в курсе как это на VBA реализовать
День добрый! Подскажите, может кто в курсе, есть удобная штука в винде Alt+tab, когда нажимаешь тебя перекидывает на файл которым ты пользовался до того как активировал текущий файл. Экономит кучу времени если много файлов открыто. Есть ли такая же штука внутри файла экселевского? Например я на листе 1, потом перехожу на лист 5. И чтобы не искать потом лист1 (ну или 30 листов в файле и не на лист 1 надо а туда обратно с листа 3 на лист 27) нажать какое нибудь сочетание клавиш. Ну или если нет то может кто в курсе как это на VBA реализоватьВячеслав
Нет Ума не приложу для чего это может пригодится... При правильной организации данных в книге не может быть более трёх листов и заблудиться в них достаточно сложно
Нет Ума не приложу для чего это может пригодится... При правильной организации данных в книге не может быть более трёх листов и заблудиться в них достаточно сложноSerge_007
Ну это при правильной)))) А вот если чужие файлы разгребаешь и там по 30 листов и разделять на 10 файлов не вариант то приходится и по листам поскакать. А вот макрос какой нибудь на сочетание клавиш повесить было бы интересно. Но чем лучше узнаю ВБА тем яснее я понимаю что знаю очень мало))) Вот и интересуюсь может есть какая нибудь вшитая переменная типа PrevActSheet (ну типа ранее активный лист) и если кто нибудь что нибудь такое знает то можно за это зацепиться и попрограммировать маленько))
Ну это при правильной)))) А вот если чужие файлы разгребаешь и там по 30 листов и разделять на 10 файлов не вариант то приходится и по листам поскакать. А вот макрос какой нибудь на сочетание клавиш повесить было бы интересно. Но чем лучше узнаю ВБА тем яснее я понимаю что знаю очень мало))) Вот и интересуюсь может есть какая нибудь вшитая переменная типа PrevActSheet (ну типа ранее активный лист) и если кто нибудь что нибудь такое знает то можно за это зацепиться и попрограммировать маленько))Вячеслав
Я думаю что можно так: Отслеживать текущий лист, по событию deactivate текущего листа записывать в переменную его название и макросом активировать его по необходимости...
Я думаю что можно так: Отслеживать текущий лист, по событию deactivate текущего листа записывать в переменную его название и макросом активировать его по необходимости...Serge_007
Ума не приложу для чего это может пригодится... При правильной организации данных в книге не может быть более трёх листов и заблудиться в них достаточно сложно
А это ты зазря. У меня есть сборники трудоемкости, так там по 50 листов с лишним. (правда на листе может быть и 5 строк) И ярлычки там скрыты. Вся навигация - через гиперссылки и макросы.
Да и в рабочем реестре 12 видимых листов, да 8 скрытых. И еще добавить бы надо. Зато там - все. И справочники, и реестр, и телефоны, и форма для договора и...
Код примерно такой Модуль ЭтаКнига
[vba]
Код
Private Sub Workbook_Open() Sheets("Содержание").Activate End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object) If ActiveSheet.Name <> "Калькуляция" Then ShName = ActiveSheet.Name Else ActiveSheet.DrawingObjects("Bevel 1").Caption = "Вернуться на " & ShName End If End Sub
[/vba]
Стандартный модуль [vba]
Код
Option Explicit Public ShName As String
Private Sub return_to_sheet() Worksheets(ShName).Activate End Sub
[/vba]
Цитата (Serge_007)
Ума не приложу для чего это может пригодится... При правильной организации данных в книге не может быть более трёх листов и заблудиться в них достаточно сложно
А это ты зазря. У меня есть сборники трудоемкости, так там по 50 листов с лишним. (правда на листе может быть и 5 строк) И ярлычки там скрыты. Вся навигация - через гиперссылки и макросы.
Да и в рабочем реестре 12 видимых листов, да 8 скрытых. И еще добавить бы надо. Зато там - все. И справочники, и реестр, и телефоны, и форма для договора и...
Код примерно такой Модуль ЭтаКнига
[vba]
Код
Private Sub Workbook_Open() Sheets("Содержание").Activate End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object) If ActiveSheet.Name <> "Калькуляция" Then ShName = ActiveSheet.Name Else ActiveSheet.DrawingObjects("Bevel 1").Caption = "Вернуться на " & ShName End If End Sub
[/vba]
Стандартный модуль [vba]
Код
Option Explicit Public ShName As String
Private Sub return_to_sheet() Worksheets(ShName).Activate End Sub
Саня, вставленный код действительно порадовал)) значит не все потеряно. Не могу только привязать к глобальной переменной Ш.Нэйм деактивированного листа, чтоб автоматом присваивалось. Можешь помочь?
Саня, вставленный код действительно порадовал)) значит не все потеряно. Не могу только привязать к глобальной переменной Ш.Нэйм деактивированного листа, чтоб автоматом присваивалось. Можешь помочь?Вячеслав
Спасибо, все работает, только что то у меня с сочетание клавиш проблема какая то. Не стартует по сочетанию. во второй строчке написал 'Сочетание клавиш: Alt+q правильно? или че то опять фтупляю? Я просто обычно через кнопки или надстройки макросы пишу
Спасибо, все работает, только что то у меня с сочетание клавиш проблема какая то. Не стартует по сочетанию. во второй строчке написал 'Сочетание клавиш: Alt+q правильно? или че то опять фтупляю? Я просто обычно через кнопки или надстройки макросы пишуВячеслав
Привязал через разработчика, так что в принципе на предыдущее сообщение внимание можно не обращать. Спасибо огромное! Сейчас размножу сие великолепие во все многолистовые файлы и будет мне счастье! Жаль только что идет привязка к конкретной книге)) в смысле что в каждой книге надо это прописать)) Но лучше так чем никак))
Привязал через разработчика, так что в принципе на предыдущее сообщение внимание можно не обращать. Спасибо огромное! Сейчас размножу сие великолепие во все многолистовые файлы и будет мне счастье! Жаль только что идет привязка к конкретной книге)) в смысле что в каждой книге надо это прописать)) Но лучше так чем никак))Вячеслав
Доброго времени всем, прошу прощения за некропостинг, но по моей задаче половина решения тут уже есть. В чем суть - необходимо чтобы при переходе с листа на лист а отдельные ячейки записывались имена листов на которые перешли, вот что у меня получилось: Модуль "ЭтаКнига" [vba]
Код
Private Sub Workbook_SheetActivate(ByVal Sh As Object) lastrow = Worksheets("logs").Range("A60000").End(xlUp).Row If ActiveSheet.Name <> "Лист 1" Then ShName = ActiveSheet.Name Worksheets("logs").Cells(lastrow + 1, 5) = ShName End If End Sub
[/vba]
Но по какой то причине имена листов пишутся в одну и ячейку, пока не перезайдешь в книгу, потом в следующей до следующего перезахода. Прошу помощи профессионалов))
[moder]Читайте правила форума, создавайте свою тему! Эта тема закрыта.[/moder]
Доброго времени всем, прошу прощения за некропостинг, но по моей задаче половина решения тут уже есть. В чем суть - необходимо чтобы при переходе с листа на лист а отдельные ячейки записывались имена листов на которые перешли, вот что у меня получилось: Модуль "ЭтаКнига" [vba]
Код
Private Sub Workbook_SheetActivate(ByVal Sh As Object) lastrow = Worksheets("logs").Range("A60000").End(xlUp).Row If ActiveSheet.Name <> "Лист 1" Then ShName = ActiveSheet.Name Worksheets("logs").Cells(lastrow + 1, 5) = ShName End If End Sub
[/vba]
Но по какой то причине имена листов пишутся в одну и ячейку, пока не перезайдешь в книгу, потом в следующей до следующего перезахода. Прошу помощи профессионалов))
[moder]Читайте правила форума, создавайте свою тему! Эта тема закрыта.[/moder]argetlam
Сообщение отредактировал Manyasha - Пятница, 26.06.2015, 11:08