Страницы: 1
RSS
И снова список листов книги на отдельный лист
 
Здравствуйте ! Прошу помочь с выводом списка листов книги на отдельный лист. Воспользовалась макросом из приемов, но так как сама в макросах дундук, то доработать его под свои хотелки немогу.

Мне необходимо чтобы на листе "Выгрузка" в первом столбце создавался список листов и в него не попадали сам лист "Выгрузка" и лист "Выписки".

Кроме того при создании нового листа или переименовании существующего в листе "Выгрузка" изменения происходят только после того как я вхожу в макрос и запускаю его несколько раз вручную, а хотелось бы чтобы изменения отражались бы сразу по возвращению на лист "Выгрузка", т.к. листы добавляются ежедневно и периодически переименовываются.
 
Можно проверять имя листов или начинать цикл с третьего листа. Код для второго варианта:
Код
Private Sub Worksheet() '  макрос создания оглавления НЕ скрытых листов на листе
    Worksheets("Выгрузка").Range("A2:A400").Clear
    Dim sheet As Worksheet
    Dim cell As Range
    Dim i As Integer
    s = 2
    With ActiveWorkbook
'        For Each sheet In ActiveWorkbook.Worksheets
        For i = 3 To Sheets.Count
            If Sheets(i).Visible = True Then
                Set cell = Worksheets(1).Cells(s, 1)
                s = s + 1
                .Worksheets(1).Hyperlinks.Add anchor:=cell, Address:="", SubAddress:="'" & Sheets(i).Name & "'" & "!A1"
                cell.Formula = Sheets(i).Name
            End If
        Next
    End With
  End Sub
 
Юрий М, извините за позднее спасибо. 2 дня была в командировке. Все работает, за исключением того, что макрос почему-то не срабатывает "автоматически", т.е. после создания или переименования листа ничего не происходит. Почему, как Вы думаете ?
 
Лично я думаю потому, что макросами нельзя отследить переименование листа. Для отслеживания создания нового листа необходимо вызов данной процедуры повесить на событие книги: Workbook_NewSheet

Можно поизвращаться и попробовать создать словарь листов книги и отслеживать события книги Workbook_SheetActivate и Workbook_SheetDeactivate. Если какого-то листа нет в словаре - вызывать создание оглавления. Если есть - значит ничто не было переименовано или создано.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Тогда как вариант может быть повесить макрос на кнопку или не получится ?
 
gth-nv!
Обратитесь на сайт:
Мир MS Excel
лично к Serge_007 (АДМИН сайта) с Вашей проблемой.
Я видела замечательное решение такой проблемы, но, к сожалению, "не прихватила" его себе.
Искать сейчас некогда.  :D  
P.S.
Кстати, "изюм" этого решения - гиперссылки на имена листов изменяются при изменении имен листов.
Изменено: Мотя - 25.07.2013 22:23:37
 
Цитата
gth-nv пишет:
Тогда как вариант может быть повесить макрос на кнопку или не получится ?
Получится, конечно)) А есть ещё вариант: вызывать этот макрос по событию активации листа, на который выводится список всех листов.
Страницы: 1
Наверх