Здравствуйте! Обращаюсь к Вам за помощью, т.к. самостоятельное решение и поиски не увенчались успехом. В файле-примере имеется простая таблица с наименование Товар( столбец А) и Приоритетом их покупки (столбец В) .Приоритеты выставляются в ручную и также в ручную могут изменяться. Либо какой то номер может быть удален полностью и все приоритеты должны меняться по рангу (например на Листе2: удаляем 1й приоритет и следующие за ним числа меняют ранг, 2й становится первым, 3й - вторым и т.д.), либо приоритеты меняются местами, пример Лист3: поставив в ячейку B11 приоритет 2 в этой ячейке становится 2, а в ячейке В7 становиться приоритет 3, который был в ячейке B11. Помогите пожалуйста с макросом, отслеживающим диапазон и присваивающий ранг при изменении чисел!
Здравствуйте! Обращаюсь к Вам за помощью, т.к. самостоятельное решение и поиски не увенчались успехом. В файле-примере имеется простая таблица с наименование Товар( столбец А) и Приоритетом их покупки (столбец В) .Приоритеты выставляются в ручную и также в ручную могут изменяться. Либо какой то номер может быть удален полностью и все приоритеты должны меняться по рангу (например на Листе2: удаляем 1й приоритет и следующие за ним числа меняют ранг, 2й становится первым, 3й - вторым и т.д.), либо приоритеты меняются местами, пример Лист3: поставив в ячейку B11 приоритет 2 в этой ячейке становится 2, а в ячейке В7 становиться приоритет 3, который был в ячейке B11. Помогите пожалуйста с макросом, отслеживающим диапазон и присваивающий ранг при изменении чисел!FINT09
Честно говоря, не совсем понятно как должен меняться ранг при изменении/удалении чисел. Вы хотите менять числа в столбце В и там же ранжировать по-новому? Тогда только макросом. Но в каком порядке ранжировать, всё равно не понятно
Честно говоря, не совсем понятно как должен меняться ранг при изменении/удалении чисел. Вы хотите менять числа в столбце В и там же ранжировать по-новому? Тогда только макросом. Но в каком порядке ранжировать, всё равно не понятноPelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Pelena, Да, я тоже понял, что это решить только макросом, к сожалению это не в моих силах пока. А порядок ранжирования таков, удалив 1 в столбце, следом за ним число 2 становиться 1 и все числа в диапазоне по такому же примеру. Или если нужно поменять приоритеты 2 и 5 местами, то к примеру поставив в ячейку с 2 цифру 5 в этой ячейке становится 5, а в ячейке где была 5 становиться 2. Как то так
Pelena, Да, я тоже понял, что это решить только макросом, к сожалению это не в моих силах пока. А порядок ранжирования таков, удалив 1 в столбце, следом за ним число 2 становиться 1 и все числа в диапазоне по такому же примеру. Или если нужно поменять приоритеты 2 и 5 местами, то к примеру поставив в ячейку с 2 цифру 5 в этой ячейке становится 5, а в ячейке где была 5 становиться 2. Как то такFINT09
Скорее всего наваял бред. но все же посмотрите кто нибудь код: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Dim i&, j&, Test As Range, Uslovie As Boolean Set Test = Range("B2:B12") Const Nrow& = 11 'кол-во строк в запоминаемом и тестируемом диапазоне Const Ncol& = 1 'кол-во столбцов Static Oldvalue(Nrow, Ncol) As Variant For i = 1 To Nrow For j = 1 To Ncol With Test.Cells(i, j) If .Value <> Oldvalue(i, j) Then Uslovie = True Oldvalue(i, j) = .Value End If End With Next j Next i If Uslovie Then Formula = "=RANG(B2;$B$2:$B$12;1))"
End Sub
[/vba]
Скорее всего наваял бред. но все же посмотрите кто нибудь код: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Dim i&, j&, Test As Range, Uslovie As Boolean Set Test = Range("B2:B12") Const Nrow& = 11 'кол-во строк в запоминаемом и тестируемом диапазоне Const Ncol& = 1 'кол-во столбцов Static Oldvalue(Nrow, Ncol) As Variant For i = 1 To Nrow For j = 1 To Ncol With Test.Cells(i, j) If .Value <> Oldvalue(i, j) Then Uslovie = True Oldvalue(i, j) = .Value End If End With Next j Next i If Uslovie Then Formula = "=RANG(B2;$B$2:$B$12;1))"