Подскажите кто-нить

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Аватара пользователя
BlackFoxVart
Сообщения: 4
Зарегистрирован: 27 ноя 2007, 15:13
Контактная информация:

Как в Excel сделать так, чтобы при удалении строки или столбца в таблице выполнялся макрос? Навроде Worksheet_BeforedoubleClick для двойного клика
Аватара пользователя
Ser Artur
Сообщения: 82
Зарегистрирован: 24 май 2005, 16:32

Zachem TEBE sdelaj tak
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then
UserForm1.Show (0)
End If
End Sub
Ser Artur
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

BlackFoxVart,

Код: Выделить всё

Private Sub Worksheet_Change(ByVal Target As Range)
    if Target.Rows.Count = 65536 then 'для 2003 Excel
         debug.print "изменение целых столбцов"
    end id
    if Target.Columns.Count = 256 then 'для 2003 Excel
         debug.print "изменение целых строк"
    end id
End Sub
Аватара пользователя
BlackFoxVart
Сообщения: 4
Зарегистрирован: 27 ноя 2007, 15:13
Контактная информация:

Aent писал(а):BlackFoxVart,

Код: Выделить всё

Private Sub Worksheet_Change(ByVal Target As Range)
    if Target.Rows.Count = 65536 then 'для 2003 Excel
         debug.print "изменение целых столбцов"
    end id
    if Target.Columns.Count = 256 then 'для 2003 Excel
         debug.print "изменение целых строк"
    end id
End Sub
Вот то. что нужно. Всем спасибо, кто откликнулся
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

В общем случае (что бы работало и в 2007)
Количество строк и столбцов - ActiveSheet.Rows.Count и ActiveSheet.Columns.Count, соответственно. Обращаю Ваше внимание что при использовании данного метода мы
перехватываем помимо удаления - вставку и заполнение строк и столбцов
Решать что именно произошло нужно дополнительно. Cкажем по адресу (номеру)последней заполненной строки.
Аватара пользователя
BlackFoxVart
Сообщения: 4
Зарегистрирован: 27 ноя 2007, 15:13
Контактная информация:

Еще вопрос. Не знаю там пишу или нет?
Как запустить макрос при выборе (выделении) того или иного листа? Пока пытаюсь пробить сам, может кто и знает)))
Genyaa
Сообщения: 310
Зарегистрирован: 11 окт 2006, 17:24
Откуда: Moscow
Контактная информация:

Правый клик не ярлыке листа вызывает контекстное меню.. в нем выбераете "Исходный текст" - Открывается окно модуля этого листа. Создаете макрос под именем Private Sub Worksheet_Activate (можно выбрать из выпадающих списков вверху окна модуля). И этот макрос будет запускаться всякий раз, как только этот лист будет активизирован/выбран.

Подобное можно сделать для всей книги - в модуле книги - Private Sub Workbook_SheetActivate(ByVal Sh As Object) - будет выполняться всякий раз, когда какой-либо лист будет выбираться/активизироваться.
Всякое решение плодит новые проблемы.
Аватара пользователя
BlackFoxVart
Сообщения: 4
Зарегистрирован: 27 ноя 2007, 15:13
Контактная информация:

Спасибо. Работает. Век живи, век учись, как грится... ;)
Ответить