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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2011, 17:43   #1
Olya1985
Форумчанин
 
Регистрация: 31.12.2010
Сообщений: 113
По умолчанию макрос для нумерации строк

Подскажите, пожалуйста, как исправить макрос чтобы строки нумеровались автоматически на листе, а также при удалении строки нумерация также смещалась.
данный макрос зависает после нумерации первой строки.


Private Sub worksheet_change (byval target as range)

For Each oCell In Range([D1], Cells(Rows.Count, "D")).Cells
If Not IsEmpty(oCell) Then iCount = iCount + 1: oCell.Previous = iCount
Next

End Sub
Olya1985 вне форума Ответить с цитированием
Старый 07.01.2011, 18:31   #2
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Поиск по форуму Нумерация строк
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 07.01.2011, 18:40   #3
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
данный макрос зависает после нумерации первой строки
Этот макрос будет зависать после нумерации любой строки.

Почему?
Да потому, что вы не прислушиваетесь к советам.
Я вам уже говорил, что надо дописать в коде, чтобы не было зависаний:
http://programmersforum.ru/showpost....53&postcount=2

Цитата:
Код:
 Application.EnableEvents = False    ' отключаем обработку событий
   ' здесь код, изменяющий ячейки
    Application.EnableEvents = True    ' включаем обратно
EducatedFool вне форума Ответить с цитированием
Старый 07.01.2011, 18:45   #4
Olya1985
Форумчанин
 
Регистрация: 31.12.2010
Сообщений: 113
По умолчанию

но когда я это дописала, то нумерация вообще пропала...

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As Range)
Application.EnableEvents = False
For Each oCell In Range([D1], Cells(Rows.Count, "D")).Cells
If Not IsEmpty(oCell) Then iCount = iCount + 1: oCell.Previous = iCount
Next
Application.EnableEvents = True
End Sub
Olya1985 вне форума Ответить с цитированием
Старый 07.01.2011, 18:52   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Мы не видели ваш файл, не знаем, что и как там надо нумеровать, так что, извините, ответа вы вряд ли дождётесь...

Почитайте правила раздела - там есть рекомендация каждый раз выкладывать пример файла.
EducatedFool вне форума Ответить с цитированием
Старый 07.01.2011, 23:46   #6
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

А нумерация пропала (вернее, макрос больше не выполняется) вероятно после зависания кода. И об этом тоже уже говорилось - Application.EnableEvents = False
так и осталось.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа:Нумерация и отмена нумерации строк в мемо или richedit Obender13 Помощь студентам 4 17.01.2011 15:00
Макрос для удаления повторяющихся строк Jelena_bsb Microsoft Office Excel 3 05.08.2010 13:34
макрос для перемещения определенных строк вверх MrGB Microsoft Office Excel 2 11.07.2010 20:04
макрос для копирования строк из одной таблицы в другую IRI_NA Microsoft Office Excel 9 25.01.2010 20:55