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

Вход

Регистрация

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

 

= Мир MS Excel/Нумерация новых позиций таблицы (макрос) - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Нумерация новых позиций таблицы (макрос)
Shot Дата: Среда, 19.02.2020, 15:15 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Здравствуйте!

Требуется помощь в написании макроса. Я сам не писатель, могу только изменять ранее заданные условия.
Суть дилеммы следующая:
В колонке А (условно А:А) необходимо поставить номер при условии, что в колонке С (условно С:С) этой же строки появилось какое-либо наименование.
Вновь появившиеся наименования колонки С могут располагаться на разных строках (пример заполнения строк: 1, 5, 2, 15, 55, 3 и т.д.), нумерация при этом должна появиться в порядке их появления и более не меняться.
Если в колонке С по заданной строке ничего нет, нумерация в колонке А не проставляется.
Если в колонке С по заданной строке изменилось наименование, в колонке А номер не меняется.
Если строка с ранее проставленным номером была удалена, последующая нумерация не сбивается и заполняются х+1 от самого крайнего номера.
Нумерация макросом заполняется автоматически при появлении заданных значений.

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

Перелопатил интернет и не нашел аналогов :(
За ранее спасибо.

Пока остановился на:
[vba]
Код
Public Sub nomer()
Dim Rng As Range
Set Rng = Worksheets("СВОД по ГИП").Range("A8:A500")
Worksheet_Change Rng
End Sub
[/vba]
К сообщению приложен файл: 7689312.xlsm (31.0 Kb)


в VBA нуп!

Сообщение отредактировал Shot - Среда, 19.02.2020, 15:50
 
Ответить
СообщениеЗдравствуйте!

Требуется помощь в написании макроса. Я сам не писатель, могу только изменять ранее заданные условия.
Суть дилеммы следующая:
В колонке А (условно А:А) необходимо поставить номер при условии, что в колонке С (условно С:С) этой же строки появилось какое-либо наименование.
Вновь появившиеся наименования колонки С могут располагаться на разных строках (пример заполнения строк: 1, 5, 2, 15, 55, 3 и т.д.), нумерация при этом должна появиться в порядке их появления и более не меняться.
Если в колонке С по заданной строке ничего нет, нумерация в колонке А не проставляется.
Если в колонке С по заданной строке изменилось наименование, в колонке А номер не меняется.
Если строка с ранее проставленным номером была удалена, последующая нумерация не сбивается и заполняются х+1 от самого крайнего номера.
Нумерация макросом заполняется автоматически при появлении заданных значений.

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

Перелопатил интернет и не нашел аналогов :(
За ранее спасибо.

Пока остановился на:
[vba]
Код
Public Sub nomer()
Dim Rng As Range
Set Rng = Worksheets("СВОД по ГИП").Range("A8:A500")
Worksheet_Change Rng
End Sub
[/vba]

Автор - Shot
Дата добавления - 19.02.2020 в 15:15
Fidgy Дата: Среда, 19.02.2020, 15:29 | Сообщение № 2
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 11 ±
Замечаний: 0% ±

Excel 2016
Файл с примером нужен
 
Ответить
СообщениеФайл с примером нужен

Автор - Fidgy
Дата добавления - 19.02.2020 в 15:29
Pelena Дата: Среда, 19.02.2020, 15:30 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 19405
Репутация: 4555 ±
Замечаний: ±

Excel 365 & Mac Excel
Здравствуйте.
Оформите код тегами с помощью кнопки # в режиме правки поста. Приложите небольшой пример с сохранением структуры таблицы


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЗдравствуйте.
Оформите код тегами с помощью кнопки # в режиме правки поста. Приложите небольшой пример с сохранением структуры таблицы

Автор - Pelena
Дата добавления - 19.02.2020 в 15:30
Shot Дата: Среда, 19.02.2020, 15:51 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Извините, исправил/дополнил.
Первый раз тут пишу, в основном данный форум только читал и юзал реализованные коды :)


в VBA нуп!
 
Ответить
СообщениеИзвините, исправил/дополнил.
Первый раз тут пишу, в основном данный форум только читал и юзал реализованные коды :)

Автор - Shot
Дата добавления - 19.02.2020 в 15:51
Shot Дата: Среда, 19.02.2020, 15:56 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Если через формулы, то реализовывал так:
Код
=ЕСЛИ(B129>0;ЕСЛИОШИБКА(СЧЁТЕСЛИМН($A$8:$A128;">0";$B$8:$B128;"<"&B129);0)+ЕСЛИОШИБКА(СЧЁТЕСЛИМН($A130:$A$265;">0";$B130:$B$265;"<"&B129);0)+1;СИМВОЛ(152))

Включив итерацию.

Но, т.к. дата меняется в зависимости от внесения изменений в наименование, то и нумерация слетает вся, а это не должно быть так, т.к. данные номера уходят в работу и за ними следует множества процедур.
Если номер изменится, то держателя данного файла около 10 отделов пустят на моральное публичное избиение с использованием различных способов (методов) извращения :D.
Не хотелось бы под это попасть, в связи с этим решено было использование макроса.


в VBA нуп!

Сообщение отредактировал Shot - Среда, 19.02.2020, 15:57
 
Ответить
СообщениеЕсли через формулы, то реализовывал так:
Код
=ЕСЛИ(B129>0;ЕСЛИОШИБКА(СЧЁТЕСЛИМН($A$8:$A128;">0";$B$8:$B128;"<"&B129);0)+ЕСЛИОШИБКА(СЧЁТЕСЛИМН($A130:$A$265;">0";$B130:$B$265;"<"&B129);0)+1;СИМВОЛ(152))

Включив итерацию.

Но, т.к. дата меняется в зависимости от внесения изменений в наименование, то и нумерация слетает вся, а это не должно быть так, т.к. данные номера уходят в работу и за ними следует множества процедур.
Если номер изменится, то держателя данного файла около 10 отделов пустят на моральное публичное избиение с использованием различных способов (методов) извращения :D.
Не хотелось бы под это попасть, в связи с этим решено было использование макроса.

Автор - Shot
Дата добавления - 19.02.2020 в 15:56
Nic70y Дата: Среда, 19.02.2020, 16:37 | Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 9005
Репутация: 2369 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("c7:c18000")) Is Nothing Then
        If Range("a" & Target.Row) = "" And Target <> "" Then
            u = Application.Max(Range("a7:a18000")) + 1
            Range("a" & Target.Row) = u
        End If
    End If
End Sub
[/vba]при условии, что вноситься по одной записи
К сообщению приложен файл: 18.xlsm (27.7 Kb)


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Среда, 19.02.2020, 17:17
 
Ответить
Сообщение[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("c7:c18000")) Is Nothing Then
        If Range("a" & Target.Row) = "" And Target <> "" Then
            u = Application.Max(Range("a7:a18000")) + 1
            Range("a" & Target.Row) = u
        End If
    End If
End Sub
[/vba]при условии, что вноситься по одной записи

Автор - Nic70y
Дата добавления - 19.02.2020 в 16:37
Shot Дата: Четверг, 20.02.2020, 07:55 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Спасибо Вам большое.
Все заработало в лучшем виде.


в VBA нуп!
 
Ответить
СообщениеСпасибо Вам большое.
Все заработало в лучшем виде.

Автор - Shot
Дата добавления - 20.02.2020 в 07:55
  • Страница 1 из 1
  • 1
Поиск:

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