Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Переход на ранее активный лист - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Переход на ранее активный лист
Вячеслав Дата: Пятница, 01.02.2013, 12:56 | Сообщение № 1
Группа: Гости
День добрый!
Подскажите, может кто в курсе, есть удобная штука в винде Alt+tab, когда нажимаешь тебя перекидывает на файл которым ты пользовался до того как активировал текущий файл. Экономит кучу времени если много файлов открыто.
Есть ли такая же штука внутри файла экселевского?
Например я на листе 1, потом перехожу на лист 5. И чтобы не искать потом лист1 (ну или 30 листов в файле и не на лист 1 надо а туда обратно с листа 3 на лист 27) нажать какое нибудь сочетание клавиш. Ну или если нет то может кто в курсе как это на VBA реализовать
 
Ответить
СообщениеДень добрый!
Подскажите, может кто в курсе, есть удобная штука в винде Alt+tab, когда нажимаешь тебя перекидывает на файл которым ты пользовался до того как активировал текущий файл. Экономит кучу времени если много файлов открыто.
Есть ли такая же штука внутри файла экселевского?
Например я на листе 1, потом перехожу на лист 5. И чтобы не искать потом лист1 (ну или 30 листов в файле и не на лист 1 надо а туда обратно с листа 3 на лист 27) нажать какое нибудь сочетание клавиш. Ну или если нет то может кто в курсе как это на VBA реализовать

Автор - Вячеслав
Дата добавления - 01.02.2013 в 12:56
Вячеслав Дата: Пятница, 01.02.2013, 14:25 | Сообщение № 2
Группа: Гости
Неужели никого не мучил данный вопрос?
 
Ответить
СообщениеНеужели никого не мучил данный вопрос?

Автор - Вячеслав
Дата добавления - 01.02.2013 в 14:25
Serge_007 Дата: Пятница, 01.02.2013, 14:34 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Нет
Ума не приложу для чего это может пригодится...
При правильной организации данных в книге не может быть более трёх листов и заблудиться в них достаточно сложно


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеНет
Ума не приложу для чего это может пригодится...
При правильной организации данных в книге не может быть более трёх листов и заблудиться в них достаточно сложно

Автор - Serge_007
Дата добавления - 01.02.2013 в 14:34
Вячеслав Дата: Пятница, 01.02.2013, 14:52 | Сообщение № 4
Группа: Гости
Ну это при правильной)))) А вот если чужие файлы разгребаешь и там по 30 листов и разделять на 10 файлов не вариант то приходится и по листам поскакать. А вот макрос какой нибудь на сочетание клавиш повесить было бы интересно. Но чем лучше узнаю ВБА тем яснее я понимаю что знаю очень мало))) Вот и интересуюсь может есть какая нибудь вшитая переменная типа PrevActSheet (ну типа ранее активный лист) и если кто нибудь что нибудь такое знает то можно за это зацепиться и попрограммировать маленько))
 
Ответить
СообщениеНу это при правильной)))) А вот если чужие файлы разгребаешь и там по 30 листов и разделять на 10 файлов не вариант то приходится и по листам поскакать. А вот макрос какой нибудь на сочетание клавиш повесить было бы интересно. Но чем лучше узнаю ВБА тем яснее я понимаю что знаю очень мало))) Вот и интересуюсь может есть какая нибудь вшитая переменная типа PrevActSheet (ну типа ранее активный лист) и если кто нибудь что нибудь такое знает то можно за это зацепиться и попрограммировать маленько))

Автор - Вячеслав
Дата добавления - 01.02.2013 в 14:52
Serge_007 Дата: Пятница, 01.02.2013, 14:57 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (Вячеслав)
если чужие файлы разгребаешь

А с чужими файлами я просто поступаю:
Переименовываю листы согласно контенту, ПКМ на стрелках прокрутки листов и выбор нужного из списка

К сообщению приложен файл: 8857979.gif (11.0 Kb)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (Вячеслав)
если чужие файлы разгребаешь

А с чужими файлами я просто поступаю:
Переименовываю листы согласно контенту, ПКМ на стрелках прокрутки листов и выбор нужного из списка


Автор - Serge_007
Дата добавления - 01.02.2013 в 14:57
Вячеслав Дата: Пятница, 01.02.2013, 15:04 | Сообщение № 6
Группа: Гости
Это конечно можно, но мозг ищет варианты как сие замутить через сочетание клавиш)) Часто использую ALT+Tab и хочется аналогии внутри EXCEL))
 
Ответить
СообщениеЭто конечно можно, но мозг ищет варианты как сие замутить через сочетание клавиш)) Часто использую ALT+Tab и хочется аналогии внутри EXCEL))

Автор - Вячеслав
Дата добавления - 01.02.2013 в 15:04
Serge_007 Дата: Пятница, 01.02.2013, 15:07 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (Вячеслав)
хочется аналогии внутри EXCEL

Ну нету её smile


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (Вячеслав)
хочется аналогии внутри EXCEL

Ну нету её smile

Автор - Serge_007
Дата добавления - 01.02.2013 в 15:07
Вячеслав Дата: Пятница, 01.02.2013, 15:12 | Сообщение № 8
Группа: Гости
Но это не повод сдаваться))
 
Ответить
СообщениеНо это не повод сдаваться))

Автор - Вячеслав
Дата добавления - 01.02.2013 в 15:12
Serge_007 Дата: Пятница, 01.02.2013, 15:20 | Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Я думаю что можно так:
Отслеживать текущий лист, по событию deactivate текущего листа записывать в переменную его название и макросом активировать его по необходимости...


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеЯ думаю что можно так:
Отслеживать текущий лист, по событию deactivate текущего листа записывать в переменную его название и макросом активировать его по необходимости...

Автор - Serge_007
Дата добавления - 01.02.2013 в 15:20
Вячеслав Дата: Пятница, 01.02.2013, 15:26 | Сообщение № 10
Группа: Гости
а как реализовать отслеживание деактивированного листа в реальном времени без запуска макроса?
 
Ответить
Сообщениеа как реализовать отслеживание деактивированного листа в реальном времени без запуска макроса?

Автор - Вячеслав
Дата добавления - 01.02.2013 в 15:26
Serge_007 Дата: Пятница, 01.02.2013, 15:29 | Сообщение № 11
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Никак
А какое отношение это имеет к Вашей задаче?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеНикак
А какое отношение это имеет к Вашей задаче?

Автор - Serge_007
Дата добавления - 01.02.2013 в 15:29
Вячеслав Дата: Пятница, 01.02.2013, 15:37 | Сообщение № 12
Группа: Гости
Так в том то и задача, в реальном времени отследить последний деактивированный лист, а потом по запуску макроса просто идет его активация
 
Ответить
СообщениеТак в том то и задача, в реальном времени отследить последний деактивированный лист, а потом по запуску макроса просто идет его активация

Автор - Вячеслав
Дата добавления - 01.02.2013 в 15:37
Serge_007 Дата: Пятница, 01.02.2013, 15:39 | Сообщение № 13
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Внимательнее читайте что я написал:
Цитата (Serge_007)
по событию deactivate текущего листа

Последний текущий лист и будет последним деактивированным


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеВнимательнее читайте что я написал:
Цитата (Serge_007)
по событию deactivate текущего листа

Последний текущий лист и будет последним деактивированным

Автор - Serge_007
Дата добавления - 01.02.2013 в 15:39
Саня Дата: Пятница, 01.02.2013, 15:46 | Сообщение № 14
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
в модуль "ЭтаКнига":
[vba]
Код
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
     Debug.Print "SheetActivate: ", Sh.Index; Sh.Name
End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
     Debug.Print "SheetDeactivate: ", Sh.Index; Sh.Name
End Sub
[/vba]

пощелкай по ярлыкам листов той самой ЭтойКниги, смотри окно Immedite (Alt+F11, Ctrl+G), сделай соотв. выводы. smile
 
Ответить
Сообщениев модуль "ЭтаКнига":
[vba]
Код
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
     Debug.Print "SheetActivate: ", Sh.Index; Sh.Name
End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
     Debug.Print "SheetDeactivate: ", Sh.Index; Sh.Name
End Sub
[/vba]

пощелкай по ярлыкам листов той самой ЭтойКниги, смотри окно Immedite (Alt+F11, Ctrl+G), сделай соотв. выводы. smile

Автор - Саня
Дата добавления - 01.02.2013 в 15:46
RAN Дата: Пятница, 01.02.2013, 15:51 | Сообщение № 15
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Цитата (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
[/vba]

Автор - RAN
Дата добавления - 01.02.2013 в 15:51
Вячеслав Дата: Пятница, 01.02.2013, 16:18 | Сообщение № 16
Группа: Гости
Саня,
вставленный код действительно порадовал)) значит не все потеряно.
Не могу только привязать к глобальной переменной Ш.Нэйм деактивированного листа, чтоб автоматом присваивалось.
Можешь помочь?
 
Ответить
СообщениеСаня,
вставленный код действительно порадовал)) значит не все потеряно.
Не могу только привязать к глобальной переменной Ш.Нэйм деактивированного листа, чтоб автоматом присваивалось.
Можешь помочь?

Автор - Вячеслав
Дата добавления - 01.02.2013 в 16:18
Саня Дата: Пятница, 01.02.2013, 16:29 | Сообщение № 17
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
в стандартн. модуль:[vba]
Код

Public glPrev As Long
Public glAct As Long

Sub ActPrev()      ' сюда прицепишь сочетание клавиш
     If glPrev > 0 Then Sheets(glPrev).Activate
End Sub
[/vba]

в модуль "ЭтаКнига":
[vba]
Код
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
     'Debug.Print "SheetActivate: ", Sh.Index; Sh.Name
     glAct = Sh.Index
End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
     'Debug.Print "SheetDeactivate: ", Sh.Index; Sh.Name
     glPrev = Sh.Index
End Sub
[/vba]
 
Ответить
Сообщениев стандартн. модуль:[vba]
Код

Public glPrev As Long
Public glAct As Long

Sub ActPrev()      ' сюда прицепишь сочетание клавиш
     If glPrev > 0 Then Sheets(glPrev).Activate
End Sub
[/vba]

в модуль "ЭтаКнига":
[vba]
Код
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
     'Debug.Print "SheetActivate: ", Sh.Index; Sh.Name
     glAct = Sh.Index
End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
     'Debug.Print "SheetDeactivate: ", Sh.Index; Sh.Name
     glPrev = Sh.Index
End Sub
[/vba]

Автор - Саня
Дата добавления - 01.02.2013 в 16:29
Вячеслав Дата: Пятница, 01.02.2013, 16:54 | Сообщение № 18
Группа: Гости
Спасибо, все работает, только что то у меня с сочетание клавиш проблема какая то. Не стартует по сочетанию.
во второй строчке написал
'Сочетание клавиш: Alt+q
правильно? или че то опять фтупляю?
Я просто обычно через кнопки или надстройки макросы пишу
 
Ответить
СообщениеСпасибо, все работает, только что то у меня с сочетание клавиш проблема какая то. Не стартует по сочетанию.
во второй строчке написал
'Сочетание клавиш: Alt+q
правильно? или че то опять фтупляю?
Я просто обычно через кнопки или надстройки макросы пишу

Автор - Вячеслав
Дата добавления - 01.02.2013 в 16:54
Вячеслав Дата: Пятница, 01.02.2013, 17:08 | Сообщение № 19
Группа: Гости
Привязал через разработчика, так что в принципе на предыдущее сообщение внимание можно не обращать.
Спасибо огромное! Сейчас размножу сие великолепие во все многолистовые файлы и будет мне счастье!
Жаль только что идет привязка к конкретной книге)) в смысле что в каждой книге надо это прописать))
Но лучше так чем никак))
 
Ответить
СообщениеПривязал через разработчика, так что в принципе на предыдущее сообщение внимание можно не обращать.
Спасибо огромное! Сейчас размножу сие великолепие во все многолистовые файлы и будет мне счастье!
Жаль только что идет привязка к конкретной книге)) в смысле что в каждой книге надо это прописать))
Но лучше так чем никак))

Автор - Вячеслав
Дата добавления - 01.02.2013 в 17:08
argetlam Дата: Пятница, 26.06.2015, 10:54 | Сообщение № 20
Группа: Пользователи
Ранг: Новичок
Сообщений: 46
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Доброго времени всем, прошу прощения за некропостинг, но по моей задаче половина решения тут уже есть. В чем суть - необходимо чтобы при переходе с листа на лист а отдельные ячейки записывались имена листов на которые перешли, вот что у меня получилось:
Модуль "ЭтаКнига"
[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]


Сообщение отредактировал Manyasha - Пятница, 26.06.2015, 11:08
 
Ответить
СообщениеДоброго времени всем, прошу прощения за некропостинг, но по моей задаче половина решения тут уже есть. В чем суть - необходимо чтобы при переходе с листа на лист а отдельные ячейки записывались имена листов на которые перешли, вот что у меня получилось:
Модуль "ЭтаКнига"
[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
Дата добавления - 26.06.2015 в 10:54
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!