Страницы: Пред. 1 2
RSS
Модуль, выполняемый при открытии файла
 
1. У меня Офис 2002. Фильтров не вижу.  
2. Файл-скрин (jpg) можно вкладывать, как и хls - не придётся бегать по ссылкам.
 
Вот как у меня отображается Ваш первый лист:
 
А может Вам нужен макрос, который при открытии книги отобразит все скрытые строки на Лист1?
 
Странное поведение. Удалил фильтры, опять поставил и макрос заработал. 2007й это жесть. Можно пока так оставить. Но по хорошему надо было бы разобраться.  
 
Спасибо за помощь. Если еще что-то смогу выведать - напишу тут.
 
Если Вам нужно при открытии книги отобразить все скрытые строки на листе1, то вот этот макрос поместите в модуль книги:  
= = =  
Private Sub Workbook_Open()  
Sheets(«Лист1»).Activate  
Call ShowRows  
End Sub  
= = =  
А вот этот – в общий модуль:  
= = =  
Sub ShowRows()  
Dim iLastRow As Long  
iLastRow = Cells(Rows.Count, 2).End(xlUp).Row  
  For i = 4 To iLastRow  
     If Rows(i).Hidden = True Then  
        Rows(i).Hidden = False  
     End If  
  Next  
End Sub  
= = =    
Код можно было бы поместить сразу в Private Sub Workbook_Open(), но предлагаемый мной вариант размещения удобен тем, что этот макрос потом можно легко вызывать откуда угодно.
 
Я бы предложил такой вариант (без цикла, так сказать )) )  
 
Sub ShowRows()  
   Rows("1:" & Rows.Count).EntireRow.Hidden = False  
End Sub
 
Юрий, небольшой комментарий по вашему коду  
 
давайте введём что-нибудь в ячейку В10, потом скроим эту 10 строку и введём что-нибудь в ячейку В5, запустим код  
 
Sub ShowRows()  
Dim iLastRow As Long  
   iLastRow = Cells(Rows.Count, 2).End(xlUp).Row  
   MsgBox iLastRow  
End Sub  
 
сообщение будет, что последняя заполненная строка 5, а не десять. Поэтому таким способом не совсем корректно искать последнюю заполненную строку, если она может быть скрыта. Поэтому  
 
Sub ShowRows()  
Rows("1:" & Rows.Count).EntireRow.Hidden = False  
End Sub  
 
Просто и со вкусом ))
 
Попытался немного подогнать все собранное:  
1. сделал копирование цвета при каждой активации страницы  
2. сделал копирование цвета при любом изменении контента страницы (изначально делал для второй страницы, так как там в ячейках не номера, а формулы и я не додумался как сделать проверку добавленных значений, они оставались белыми, хотя на первом листе нормально закрашивались)  
 
Получившийся файл прикрепляю. Сейчас буду разбираться с вашими предложениями на счет отображения отфильтрованных. Но до этого хочу спросить, что за ошибка выскакивает, когда пытаешься редактировать каталог?  
 
З.Ы. Может будут предложения по усовершенствованию макроса? Смысл такой, что открывается файл не часто, зато при работе с ним часто происходят изменения, поэтому макрос сделал на активацию страницы и на изменение содержания... Но по идее это будет в какой-то мере снижать скорость работы...
 
Простите, файл забыл вставить...
 
{quote}{login=Pavel55}{date=28.12.2008 08:03}{thema=}{post}Юрий, небольшой комментарий по вашему коду )){/post}{/quote}  
Павел, согласен, спасибо. Возьму на вооружение.    
P.S. В соседней теме (Кузьмич) - кажется подарок будет с доставкой в отель :-)
 
Из текущего форума взял для себя следующий код:  
Sub Auto_Open()  
ThisWorkbook.Worksheets("Лист5").Activate  
End Sub  
с небольшой моей корректировкой.  
В тестовом файле макрос работает без проблем, т.е. всегда открывается "Лист5". Когда же вставляю этот макрос в мой рабочий файл, в котором есть другие макросы, то вышеуказанный макрос не работает. Подскажите причину моей проблемы.  
Заранее благодарю.
 
Трудно сказать, не имея файла.  
Auto_Open срабатывает, даже если запрещены события (Workbook_Open в модуле книги в этом случае не работает).  
Однако, если события разрешены, то Workbook_Open срабатывает раньше Auto_Open.  
Посмотрите, что там происходит.
 
Файл очень большой, больше 10 тонн. Не подскажете где именно смотреть, если не трудно.
Страницы: Пред. 1 2
Читают тему
Наверх