Добрый! Просьба помочь советом... В приложенном файле две таблицы. Левая- уже пронумерованная при помощи макроса. Вторая - так как хотелось бы видеть. Но она просто вручную забита. Подскажите. как можно реализовать, чтобы нумеровались только строки с проведенными работами ( там где наименование ) Если я правильно понимаю, то нужно сравнивать в столбце "наименование работ" следующее: если есть пробел, то не надо нумеровать. Если нет. то нумеруется. Но тогда под нумерацию попадает и такие позиции. как "Капитаьный ремонт", "текущий ремонт". А этого мне пока не надо...
макрос: [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]
Заранее спасибо тем, кто поможет советом!
Добрый! Просьба помочь советом... В приложенном файле две таблицы. Левая- уже пронумерованная при помощи макроса. Вторая - так как хотелось бы видеть. Но она просто вручную забита. Подскажите. как можно реализовать, чтобы нумеровались только строки с проведенными работами ( там где наименование ) Если я правильно понимаю, то нужно сравнивать в столбце "наименование работ" следующее: если есть пробел, то не надо нумеровать. Если нет. то нумеруется. Но тогда под нумерацию попадает и такие позиции. как "Капитаьный ремонт", "текущий ремонт". А этого мне пока не надо...
макрос: [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
У Вас данные в ячейках строк заголовков Кап.ремонт и Тек.ремонт, которые нумеровать не нужно, а также строки Итого ничем не отличаются от учитываемых строк. Конечно, можно было бы при подсчёте ФОРМУЛОЙ привязаться к этим конкретным названиям, но тогда если хоть чуть-чуть изменится это слово, не сработает. Ещё у Вас там жирный шрифт у заголовков и "равнение направо" у Итого. Формулы с атрибутами оформления ячейки работать практически не умеют. Это легко могут делать макросы.
У Вас данные в ячейках строк заголовков Кап.ремонт и Тек.ремонт, которые нумеровать не нужно, а также строки Итого ничем не отличаются от учитываемых строк. Конечно, можно было бы при подсчёте ФОРМУЛОЙ привязаться к этим конкретным названиям, но тогда если хоть чуть-чуть изменится это слово, не сработает. Ещё у Вас там жирный шрифт у заголовков и "равнение направо" у Итого. Формулы с атрибутами оформления ячейки работать практически не умеют. Это легко могут делать макросы.Alex_ST
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]
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
Очень даже ничего... Общий файл бывает не более 2 листов. Поэтому замечательно. Думаю добавлю, раз так получилось еще и "эксплуатацию", ну и несколько других позиций. Ну и попробую это дело все "запихнуть" в другие документы. где у меня есть позиции по 500 строк. При добавлении строки приходится "крестиком" пользоваться. А это порядком надоело. Более-менее спасал мой первый вариант, но его тоже надо было править руками. Еще раз благодарю Rioran за такое решение ну и так, что было на кошельке то и отправил Вам. Просто от души. Пусть маленькая, но благодарность!)
Очень даже ничего... Общий файл бывает не более 2 листов. Поэтому замечательно. Думаю добавлю, раз так получилось еще и "эксплуатацию", ну и несколько других позиций. Ну и попробую это дело все "запихнуть" в другие документы. где у меня есть позиции по 500 строк. При добавлении строки приходится "крестиком" пользоваться. А это порядком надоело. Более-менее спасал мой первый вариант, но его тоже надо было править руками. Еще раз благодарю Rioran за такое решение ну и так, что было на кошельке то и отправил Вам. Просто от души. Пусть маленькая, но благодарность!)supersvetodiod