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

Вход

Регистрация

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

 

= Мир MS Excel/Автоматическая нумерация строк - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Автоматическая нумерация строк (Формулы/Formulas)
Автоматическая нумерация строк
supersvetodiod Дата: Понедельник, 27.10.2014, 16:20 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Добрый!
Просьба помочь советом...
В приложенном файле две таблицы.
Левая- уже пронумерованная при помощи макроса.
Вторая - так как хотелось бы видеть. Но она просто вручную забита.
Подскажите. как можно реализовать, чтобы нумеровались только строки с проведенными работами ( там где наименование )
Если я правильно понимаю, то нужно сравнивать в столбце "наименование работ" следующее: если есть пробел, то не надо нумеровать. Если нет. то нумеруется. Но тогда под нумерацию попадает и такие позиции. как "Капитаьный ремонт", "текущий ремонт". А этого мне пока не надо...

макрос:
[vba]
Код
Sub FormatRange()
Set MyRange = Sheets("шаблон").UsedRange
For i = 1 To MyRange.Rows.Count
If ((i + 2) Mod 1) = 0 Then Range("A" & MyRange.Item(1).Row + i - 1) = ((i - 1) \ 1) + 1
Next i
End Sub
[/vba]

Заранее спасибо тем, кто поможет советом!
К сообщению приложен файл: 4774591.xlsx (9.7 Kb)
 
Ответить
СообщениеДобрый!
Просьба помочь советом...
В приложенном файле две таблицы.
Левая- уже пронумерованная при помощи макроса.
Вторая - так как хотелось бы видеть. Но она просто вручную забита.
Подскажите. как можно реализовать, чтобы нумеровались только строки с проведенными работами ( там где наименование )
Если я правильно понимаю, то нужно сравнивать в столбце "наименование работ" следующее: если есть пробел, то не надо нумеровать. Если нет. то нумеруется. Но тогда под нумерацию попадает и такие позиции. как "Капитаьный ремонт", "текущий ремонт". А этого мне пока не надо...

макрос:
[vba]
Код
Sub FormatRange()
Set MyRange = Sheets("шаблон").UsedRange
For i = 1 To MyRange.Rows.Count
If ((i + 2) Mod 1) = 0 Then Range("A" & MyRange.Item(1).Row + i - 1) = ((i - 1) \ 1) + 1
Next i
End Sub
[/vba]

Заранее спасибо тем, кто поможет советом!

Автор - supersvetodiod
Дата добавления - 27.10.2014 в 16:20
Rioran Дата: Понедельник, 27.10.2014, 16:39 | Сообщение № 2
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
supersvetodiod, здравствуйте.

Во вложении пусто.


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
Сообщениеsupersvetodiod, здравствуйте.

Во вложении пусто.

Автор - Rioran
Дата добавления - 27.10.2014 в 16:39
supersvetodiod Дата: Понедельник, 27.10.2014, 16:43 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Во вложении пусто.

Перезалил
К сообщению приложен файл: 9009821.xls (38.0 Kb)
 
Ответить
Сообщение
Во вложении пусто.

Перезалил

Автор - supersvetodiod
Дата добавления - 27.10.2014 в 16:43
Rioran Дата: Понедельник, 27.10.2014, 17:02 | Сообщение № 4
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
Но тогда под нумерацию попадает и такие позиции. как "Капитаьный ремонт", "текущий ремонт"

Ещё нужно пропускать строку "Итого". Сколько вообще строк необходимо пропускать при подсчёте?


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
Сообщение
Но тогда под нумерацию попадает и такие позиции. как "Капитаьный ремонт", "текущий ремонт"

Ещё нужно пропускать строку "Итого". Сколько вообще строк необходимо пропускать при подсчёте?

Автор - Rioran
Дата добавления - 27.10.2014 в 17:02
supersvetodiod Дата: Понедельник, 27.10.2014, 17:07 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Сколько вообще строк необходимо пропускать при подсчёте?

Получается, шапка таблицы, "кап.ремонт" ( тек. ремонт и др. позиции ремонтов, которые будут ниже ), итого и одна строка после "итого"...
 
Ответить
Сообщение
Сколько вообще строк необходимо пропускать при подсчёте?

Получается, шапка таблицы, "кап.ремонт" ( тек. ремонт и др. позиции ремонтов, которые будут ниже ), итого и одна строка после "итого"...

Автор - supersvetodiod
Дата добавления - 27.10.2014 в 17:07
Alex_ST Дата: Понедельник, 27.10.2014, 17:10 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3208
Репутация: 609 ±
Замечаний: 0% ±

2003
У Вас данные в ячейках строк заголовков Кап.ремонт и Тек.ремонт, которые нумеровать не нужно, а также строки Итого ничем не отличаются от учитываемых строк.
Конечно, можно было бы при подсчёте ФОРМУЛОЙ привязаться к этим конкретным названиям, но тогда если хоть чуть-чуть изменится это слово, не сработает.
Ещё у Вас там жирный шрифт у заголовков и "равнение направо" у Итого.
Формулы с атрибутами оформления ячейки работать практически не умеют. Это легко могут делать макросы.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеУ Вас данные в ячейках строк заголовков Кап.ремонт и Тек.ремонт, которые нумеровать не нужно, а также строки Итого ничем не отличаются от учитываемых строк.
Конечно, можно было бы при подсчёте ФОРМУЛОЙ привязаться к этим конкретным названиям, но тогда если хоть чуть-чуть изменится это слово, не сработает.
Ещё у Вас там жирный шрифт у заголовков и "равнение направо" у Итого.
Формулы с атрибутами оформления ячейки работать практически не умеют. Это легко могут делать макросы.

Автор - Alex_ST
Дата добавления - 27.10.2014 в 17:10
Rioran Дата: Понедельник, 27.10.2014, 17:39 | Сообщение № 7
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
supersvetodiod, предлагаю макрос. Кнопка во вложении.

Жёсткое решение. Программа оценивает размеры таблицы по столбцу В. Нумеруются все строки, кроме: пустых, "итого" и строк, в которых встречается слово "ремонт".

Вам подходит такой вариант?

[vba]
Код
Sub Rio_Format_Range()

Dim A As Long, B As Long, C As Long, X As Long

With ThisWorkbook.Worksheets("шаблон")

A = .Cells(1, 2).End(xlDown).Row + 1
B = .Cells(.Rows.Count, 2).End(xlUp).Row
If A - 1 > B Then Exit Sub

X = 1

For C = A To B
     Select Case .Cells(C, 2).Value
         Case "", "*ремонт*", "итого"
         Case Else: .Cells(C, 1).Value = X: X = X + 1
     End Select
Next C

End With

End Sub
[/vba]
К сообщению приложен файл: Rio_Roll.xls (38.5 Kb)


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
Сообщениеsupersvetodiod, предлагаю макрос. Кнопка во вложении.

Жёсткое решение. Программа оценивает размеры таблицы по столбцу В. Нумеруются все строки, кроме: пустых, "итого" и строк, в которых встречается слово "ремонт".

Вам подходит такой вариант?

[vba]
Код
Sub Rio_Format_Range()

Dim A As Long, B As Long, C As Long, X As Long

With ThisWorkbook.Worksheets("шаблон")

A = .Cells(1, 2).End(xlDown).Row + 1
B = .Cells(.Rows.Count, 2).End(xlUp).Row
If A - 1 > B Then Exit Sub

X = 1

For C = A To B
     Select Case .Cells(C, 2).Value
         Case "", "*ремонт*", "итого"
         Case Else: .Cells(C, 1).Value = X: X = X + 1
     End Select
Next C

End With

End Sub
[/vba]

Автор - Rioran
Дата добавления - 27.10.2014 в 17:39
supersvetodiod Дата: Вторник, 28.10.2014, 00:26 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Вам подходит такой вариант?

Очень даже ничего...
Общий файл бывает не более 2 листов. Поэтому замечательно.
Думаю добавлю, раз так получилось еще и "эксплуатацию", ну и несколько других позиций.
Ну и попробую это дело все "запихнуть" в другие документы. где у меня есть позиции по 500 строк. При добавлении строки приходится "крестиком" пользоваться. А это порядком надоело.
Более-менее спасал мой первый вариант, но его тоже надо было править руками.
Еще раз благодарю Rioran за такое решение ну и так, что было на кошельке то и отправил Вам. Просто от души. Пусть маленькая, но благодарность!)
 
Ответить
Сообщение
Вам подходит такой вариант?

Очень даже ничего...
Общий файл бывает не более 2 листов. Поэтому замечательно.
Думаю добавлю, раз так получилось еще и "эксплуатацию", ну и несколько других позиций.
Ну и попробую это дело все "запихнуть" в другие документы. где у меня есть позиции по 500 строк. При добавлении строки приходится "крестиком" пользоваться. А это порядком надоело.
Более-менее спасал мой первый вариант, но его тоже надо было править руками.
Еще раз благодарю Rioran за такое решение ну и так, что было на кошельке то и отправил Вам. Просто от души. Пусть маленькая, но благодарность!)

Автор - supersvetodiod
Дата добавления - 28.10.2014 в 00:26
Rioran Дата: Вторник, 28.10.2014, 09:09 | Сообщение № 9
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
supersvetodiod, спасибо, получил =) Мелочь, а приятно.


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
Сообщениеsupersvetodiod, спасибо, получил =) Мелочь, а приятно.

Автор - Rioran
Дата добавления - 28.10.2014 в 09:09
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Автоматическая нумерация строк (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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