Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2012, 13:56   #1
Brucebelg
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 61
По умолчанию Свой код для каждого листа

Добрый день.

Подскажите, плиз, как создать коды для каждого листа в книге. Сейчас есть код, котроый работает на первом листе. Второй лист будет иметь свой код. Когда я открываю Developer и VB, в основном окне написан код для первого листа, слева в доп. окне Vba project c трямя снизу листами в форме файловой структуры и эта книга. Серым выделен лист 1 для которого уже написан код. Задача создать код для второго, третьего и тд и привязать их к этим листам.

Спасибо за помощь.
Brucebelg вне форума Ответить с цитированием
Старый 26.01.2012, 14:11   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Собственно, с какими проблемами Вы столкнулись при реализации столь мудренной задачи?
или забыли файл-пример прикрепить?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 26.01.2012, 14:13   #3
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Может, лучше создать универсальный код в модуле ЭтаКнига? Там тоже можно обрабатывать события листов, можно выполнять разные действия в зависимости от того, на каком листе произошло событие.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 26.01.2012, 14:18   #4
Brucebelg
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 61
По умолчанию

Проблема одна - как это сделать? Ни разу не пробовал. Файл прикреплен
Вложения
Тип файла: zip Calcs1.zip (18.3 Кб, 12 просмотров)
Brucebelg вне форума Ответить с цитированием
Старый 26.01.2012, 14:40   #5
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Перенес в модуль книги, немного поправил.
ЗИП не загружается, прицепил в РАРе.
Вложения
Тип файла: rar Calcs2.rar (17.5 Кб, 14 просмотров)
exceleved@yandex.ru Яндекс.Деньги: 410011500007619

Последний раз редактировалось Казанский; 26.01.2012 в 14:44.
Казанский вне форума Ответить с цитированием
Старый 26.01.2012, 14:45   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

это в модуль книги:
Код:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range)
  If Source.Address = [C3].Address Then
    Sh.UsedRange.EntireRow.Hidden = False
    Sh.Range(Source + 8 & ":28").EntireRow.Hidden = (Source > 0 And Source < 21)
  End If
End Sub
с модуля листа процедуру необходимо удалить
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 26.01.2012, 16:33   #7
Brucebelg
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 61
По умолчанию

Сасибо и простите, что туплю, но

1) как удалить из модуля листа и как вставить в модуль книги? Если я пишу код в правом окне, то он потом остается в нем, невзирая на то на какой лист в левом окне я нажимаю. Собственно, вопрос и был - есть код, скажем для 1 листа и другой код для второго листа, как их связать с этими листами?

2) по собственно коду - будучи в книге он распространяет действие на все листы? Это не совсем то, что мне нужно, нужн свой код для каждого листа

Спасибо
Brucebelg вне форума Ответить с цитированием
Старый 26.01.2012, 16:39   #8
Brucebelg
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 61
По умолчанию

по 1 вопросу разобрался сам, спасибо.
Brucebelg вне форума Ответить с цитированием
Старый 26.01.2012, 16:41   #9
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

в екселе правой кнопкой мыши по ярлыку листа / исходный текст - вы в модуле листа.
либо в редакторе VBA - Ctrl+R (откроется Project Explorer, там легко выбрать модуль листа, книги, пр.)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 26.01.2012, 16:48   #10
Brucebelg
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 61
По умолчанию

2 Казанский, спасибо за вариант. Как я понимаю, чтобы теперь создать код для второй страницы, я пишу его после этого в то
Brucebelg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как из memo1 переписать текст в memo2 изменяя код каждого символа на 3 ch:=chr(ord(ch)+3)) xpams Компоненты Delphi 2 16.09.2011 19:35
за счет некоторой ошибки выполнить свой код. ромик0 Помощь студентам 2 27.06.2011 23:27
Цикл для каждого листа. Richard123 Microsoft Office Excel 3 24.01.2011 16:11
Как в этом макросе указать , что-бы было название каждого листа и книги ,при сборе всех листов на один ? Александр 33 Microsoft Office Excel 9 06.01.2011 18:40
посчитать значение по каждой статье за определенный период для каждого листа Graver Microsoft Office Excel 5 04.12.2009 01:31