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

Вход

Регистрация

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

 

= Мир MS Excel/Работа макроса только на определенных листах книги - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Работа макроса только на определенных листах книги (Макросы/Sub)
Работа макроса только на определенных листах книги
Vladimir7200 Дата: Воскресенье, 21.09.2014, 07:51 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Здравствуйте. Пользуюсь макросом (спасибо Алексею Матевосову) который записан в "эта книга". Работа макроса нужна на большинстве листах, но не на всех. Макрос изменяет содержимое ячеек на листах, где его работа не нужна. Пробовал убирать макрос из книги и помещать в соответствующие листы, но он тогда вообще переставал работать. Как сделать, чтобы макрос работал только на нужных листах? Спасибо.

Макрос такой:
[vba]
Код
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

'водим дату открытия и закрытия сессии
If Not Intersect(Range("J5:U" & Range("C4").End(xlDown).Row), Target) Is Nothing Then
Range("F" & Target.Row) = IIf(Range("E" & Target.Row) = "Д", Date, "")
End If

If Not Intersect(Range("G5:I" & Range("C4").End(xlDown).Row), Target) Is Nothing Then
Range("W" & Target.Row) = IIf(Range("V" & Target.Row) = "Сд", Date, "")
End If

'создаем примечание с датой сдачи экзамена
If Intersect(Target, Range("AG:AG")) Is Nothing Then Exit Sub

Dim oComment As Comment
On Error Resume Next
Set oComment = Target.Comment
If oComment Is Nothing Then
Target.AddComment Target.Text & " " & Range("AI" & Target.Row)

Else
oComment.Text oComment.Text & Chr(10) & Target.Text & " " & Range("AI" & Target.Row)
End If
End Sub
[/vba]
 
Ответить
СообщениеЗдравствуйте. Пользуюсь макросом (спасибо Алексею Матевосову) который записан в "эта книга". Работа макроса нужна на большинстве листах, но не на всех. Макрос изменяет содержимое ячеек на листах, где его работа не нужна. Пробовал убирать макрос из книги и помещать в соответствующие листы, но он тогда вообще переставал работать. Как сделать, чтобы макрос работал только на нужных листах? Спасибо.

Макрос такой:
[vba]
Код
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

'водим дату открытия и закрытия сессии
If Not Intersect(Range("J5:U" & Range("C4").End(xlDown).Row), Target) Is Nothing Then
Range("F" & Target.Row) = IIf(Range("E" & Target.Row) = "Д", Date, "")
End If

If Not Intersect(Range("G5:I" & Range("C4").End(xlDown).Row), Target) Is Nothing Then
Range("W" & Target.Row) = IIf(Range("V" & Target.Row) = "Сд", Date, "")
End If

'создаем примечание с датой сдачи экзамена
If Intersect(Target, Range("AG:AG")) Is Nothing Then Exit Sub

Dim oComment As Comment
On Error Resume Next
Set oComment = Target.Comment
If oComment Is Nothing Then
Target.AddComment Target.Text & " " & Range("AI" & Target.Row)

Else
oComment.Text oComment.Text & Chr(10) & Target.Text & " " & Range("AI" & Target.Row)
End If
End Sub
[/vba]

Автор - Vladimir7200
Дата добавления - 21.09.2014 в 07:51
AndreTM Дата: Воскресенье, 21.09.2014, 08:50 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Просто в начале макроса надо проверять ещё и (не)соответствие нужному вам листу.
Т.е. либо где-то прописать список тех листов, на которые макрос (не)должен реагировать (в виде списка на листе, именованного диапазона или формулы, прямо здесь в макросе, наконец), либо по каким-то признакам уметь определять "нужные" листы (на основе имеюшейся на них структуры информации, например).
В любом случае, надо на ваш файл смотреть...


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
СообщениеПросто в начале макроса надо проверять ещё и (не)соответствие нужному вам листу.
Т.е. либо где-то прописать список тех листов, на которые макрос (не)должен реагировать (в виде списка на листе, именованного диапазона или формулы, прямо здесь в макросе, наконец), либо по каким-то признакам уметь определять "нужные" листы (на основе имеюшейся на них структуры информации, например).
В любом случае, надо на ваш файл смотреть...

Автор - AndreTM
Дата добавления - 21.09.2014 в 08:50
Vladimir7200 Дата: Воскресенье, 21.09.2014, 16:16 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Прилагаю файл. Макрос должен работать только на листах 1201 и 1202 (на самом деле групп больше, это для примера)
К сообщению приложен файл: 2012_5.7z (36.7 Kb)
 
Ответить
СообщениеПрилагаю файл. Макрос должен работать только на листах 1201 и 1202 (на самом деле групп больше, это для примера)

Автор - Vladimir7200
Дата добавления - 21.09.2014 в 16:16
Формуляр Дата: Воскресенье, 21.09.2014, 17:48 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация: 255 ±
Замечаний: 0% ±

Excel 2003, 2013
В начало ф-ции вставить:
[vba]
Код
Select Case sh.name
Case "1201", "1202" 'список листов, на которых должен работать макрос
Case Else:    Exit Sub
End Select
[/vba]


Excel 2003 EN, 2013 EN
 
Ответить
СообщениеВ начало ф-ции вставить:
[vba]
Код
Select Case sh.name
Case "1201", "1202" 'список листов, на которых должен работать макрос
Case Else:    Exit Sub
End Select
[/vba]

Автор - Формуляр
Дата добавления - 21.09.2014 в 17:48
Vladimir7200 Дата: Вторник, 23.09.2014, 02:19 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Спасибо.
 
Ответить
СообщениеСпасибо.

Автор - Vladimir7200
Дата добавления - 23.09.2014 в 02:19
Vladimir7200 Дата: Вторник, 23.09.2014, 03:12 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Огромное спасибо, а то данные из других листов исчезал и совсем некстати
 
Ответить
СообщениеОгромное спасибо, а то данные из других листов исчезал и совсем некстати

Автор - Vladimir7200
Дата добавления - 23.09.2014 в 03:12
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Работа макроса только на определенных листах книги (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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