Страницы: 1
RSS
Private Sub Workbook_Open() и курсор в первом столбце
 
коллеги, благодаря вашей мудрости и опыту уже давно пользую следующий код:  
 
Private Sub Workbook_Open()  
'выделяет цветом ярлыки незапароленных листов  
'делает активным первый лист  
'запускается сам при открытии книги  
For Each i In Sheets  
If i.ProtectContents Then i.Tab.ColorIndex = -4142 Else i.Tab.ColorIndex = 3  
Next  
Sheets(1).Activate  
End Sub  
 
 
а не доработаете его напильником, чтобы КАЖДЫЙ лист в данной книге, был виден сначала...  
поясню, на большинстве листов в этой книге есть таблица с данными, есть ссылка на бланк, который находится на этом же листе, но гораздо правее... и вот барышни вносят в таблицу данные, переходят к бланку, дозаполняют его и жмакают на кнопку макроса, который сохраняет бланк в отдельной книге. а обратно не возвращаются.  
и вот откроешь книгу, она выкинет тебе содержание, переходишь на нужный лист... а он в положении "бланк".  
ломает каждый раз по ссылке "вернуться к таблице" тыкать :-)  
 
возможно такое?
 
Попробуйте  
 
 
Private Sub Workbook_Open()  
'выделяет цветом ярлыки незапароленных листов  
'делает активным первый лист  
'запускается сам при открытии книги  
Dim i As Worksheet  
   For Each i In Sheets  
       i.Activate  
       Range("A1").Select  
       If i.ProtectContents Then i.Tab.ColorIndex = -4142 Else i.Tab.ColorIndex = 3  
   Next  
   Sheets(1).Activate  
End Sub
 
{quote}{login=Pavel55}{date=19.06.2008 12:27}{thema=}{post}Попробуйте  
 
 
Private Sub Workbook_Open()  
'выделяет цветом ярлыки незапароленных листов  
'делает активным первый лист  
'запускается сам при открытии книги  
Dim i As Worksheet  
   For Each i In Sheets  
       i.Activate  
       Range("A1").Select  
       If i.ProtectContents Then i.Tab.ColorIndex = -4142 Else i.Tab.ColorIndex = 3  
   Next  
   Sheets(1).Activate  
End Sub{/post}{/quote}  
 
вынужден поправить уважаемого коллегу - метод select  только выделяет указанный диапазон..  
 
а вот goto еще и "скроллирует", если мне будет позволено применить такое слово..
 
дада, слэн прав :-)  
селект я уже испробовал. ексель уверенно выделяет указанную ячейку.  
так какую строчку вставить?  
goto.range ("A1")  
так?
 
не так...  
спасайте :-)
 
Попробуйте так (как предложил уважаемый Слэн)  
 
Private Sub Workbook_Open()  
'выделяет цветом ярлыки незапароленных листов  
'делает активным первый лист  
'запускается сам при открытии книги  
Dim i As Worksheet  
   For Each i In Sheets  
       i.Activate  
       Application.Goto Range("A1"), scroll:=True  
   If i.ProtectContents Then i.Tab.ColorIndex = -4142 Else i.Tab.ColorIndex = 3  
   Next  
   Sheets(1).Activate  
End Sub
 
вау! цветомузыка ))))  
все 20 листов попеременно показали свой лик, подвигавшись вправо-влево )))  
красиво  
тока вот дебугер ругнулся на эту строку:  
Application.Goto Range("A1"), scroll:=True  
 
в общем и с отключенным скролом не фурычит.  
пожалуй ну его в пень :-) буду ручками возвращаться.  
всем спасибо!
 
{quote}{login=mazayZR}{date=19.06.2008 01:46}{thema=}{post}вау! цветомузыка ))))  
все 20 листов попеременно показали свой лик, подвигавшись вправо-влево )))  
красиво  
тока вот дебугер ругнулся на эту строку:  
Application.Goto Range("A1"), scroll:=True  
 
в общем и с отключенным скролом не фурычит.  
пожалуй ну его в пень :-) буду ручками возвращаться.  
всем спасибо!{/post}{/quote}  
 
запятая лишняя перед scroll:=True
 
о как...  
ActiveWindow.SmallScroll ToRight:=-100
Страницы: 1
Читают тему
Loading...