Страницы: 1
RSS
Удалять содержимое несколькоюих ячеек в стоке при удалении содержимого одной ячейки
 
Доброго времени суток.

Прошу помочь с макросом.
При выкачки из определенной программ в случае различия городов по маршруту задваиваются идентификаторы в столбце А. Задача отформатировать таблицу так, чтобы снизу вверх удалялись идентичные идентификаторы и одновременно с этим стирались данные в столбцах с код ТК, тип ТС и Тайм-слот.
В примере есть две вкладки как выкачивается и как должно быть. Как должно быть я сделала руками, но маршрутов слишком много чтобы каждый час обрабатывать в ручную.

и тут есть два сложных задачи
1) необходимо макрос сделать на листе, чтобы он был не в модуле когда в ручную удалять лишние идентификаторы, когда оператор сам делит маршруты
2) написать макрос на модуле чтобы при нажатии кнопки удалялись и нижние идентификаторы снизу вверх и удалились код ТК, Тип ТС и тайм-слот.
 
Файл
 
Цитата
AnnaH написал: В примере есть две вкладки как выкачивается и как должно быть. Как должно быть я сделала руками, но маршрутов слишком много чтобы каждый час обрабатывать в ручную.
а так разве не вручную?
Цитата
AnnaH написал: чтобы он был не в модуле когда в ручную удалять лишние идентификаторы, когда оператор сам делит маршруты
по вашему файлу - создаёте словарь с ключом Идентификатор - если они вам нужны уникальные! а вся остальная инфа дублируется... и в Item заносите эту всю остальную инфу... при создании нового ключа - если Идентификатор уже есть - он дублем в словарь не будет помещён (таков принцип работы словаря)... потом выгружаете keys и items к ним - т.к. keys в единичном экземпляре, то и items к ним соответствующие (без дублей!)... или вы суть вашей проблемы не полностью отразили в файле?..
==
такой макрос запускаете один раз - и не придётся каждый раз дёргать макрос на изменения в ячейках листа на каждые ваши руки...
как вариант
Изменено: JeyCi - 18.09.2019 19:48:29
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Ничего не поняла ни про Item ни про ключи :(
 
Цитата
AnnaH написал: и тут есть два сложных задачи... 1) необходимо макрос сделать на листе, чтобы он был не в модуле
вы прочитайте ваш 1-й пост - там тоже мало понятно - макрос больше нигде быть и не может...
упростила - вот работающий набросок для работы с активного листа под данную вами структуру данных (дальше экспериментируйте с кодом, как нравится - нет времени уточнять ваши нюансы)
Код
Sub chg()
Dim LastRow As Long
Application.ScreenUpdating = False
With ActiveSheet
    LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
    LastCol = 13
    Set cl = .UsedRange.Columns(1).Find("Идентификатор", , xlValues, xlWhole)
    a = cl.Resize(LastRow - cl.Row + 1, 13).Value
End With

cols = Array(1, 9, 11, 12, 13)
nn = UBound(a, 1)
For i = nn To 3 Step -1
  If a(i, 1) = a(i - 1, 1) Then
    For j = 0 To UBound(cols)
        a(i, cols(j)) = ""
    Next
  End If
Next
cl.Resize(UBound(a, 1), UBound(a, 2)).Value = a
Application.ScreenUpdating = True
End Sub

успехов
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Страницы: 1
Наверх