Страницы: 1
RSS
Не возвращать удаленные данные в выпадающем списке
 
У меня в столбце А создан выпадающий список с удалением ненужных элементов, но дело в том, что после удаление, он возвращает данные, не знаете как сделать так чтобы после удаление данные не возвращались?
 
Ибрагим Белхороев, вариант такой вести два списка:
1 выпадающий список
2 те которые уже использовались и их убирать из 1 го
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("A:A")) Is Nothing Then
If Target <> Empty Then
    Dim lr As Long, cell As Range, sh As Worksheet
    Set sh = Worksheets("Ñïèñîê")
    Set cell = sh.Columns(1).Find(Target)
    Debug.Print cell.Row
    cell.Delete Shift:=xlUp
    lr = sh.Cells(Rows.Count, 2).End(xlUp).Row + 1
    sh.Cells(lr, 2) = Target
    With Columns("A:A").Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=Ñïèñîê!$A$2:$A$" & sh.Cells(Rows.Count, 1).End(xlUp).Row & ""
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
End If
End If
End Sub
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Цитата
Ибрагим Белхороев написал:
выпадающий список с удалением ненужных элементов
это как ?
Быстрее молнии, быстрее ветра, быстрее калькулятора
 
Borrusale, а в "Приемах" статью про удаление использованных данных из выпадающего списка читали?
 
Юрий М, я так понял, их после удаления из ячейки с выпадающим списком  (очистили ячейку)не должно быть  в выпадающим списке снова.
Изменено: Mershik - 24.04.2021 14:50:23
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Юрий М написал:
читали?
Только что прочитал. Понятно. Спасибо.
Быстрее молнии, быстрее ветра, быстрее калькулятора
 
Borrusale, не игнорируйте "Приемы" - там очень много полезняшек ))
 
Mershik, спасибо вам.
 
Mershik, не знаете почему этот макрос не работает в этой книге?
Изменено: Ибрагим Белхороев - 26.07.2021 10:08:06
 
Ибрагим Белхороев, ну вы как будто его вручную набирали . Private Sub Worksheet_Change одна в листе если у вас несколько внутри одного делайте проверки ваших диапазонов
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("B13:B18")) Is Nothing Then
If Target <> Empty Then
    Dim lr As Long, cell As Range, sh As Worksheet
    Set sh = Worksheets("Ëèñò5")
    Set cell = sh.Columns(2).Find(Target)
    cell.Delete Shift:=xlUp
    lr = sh.Cells(Rows.Count, 3).End(xlUp).Row + 1
    sh.Cells(lr, 3) = Target
    With Range("B13:B18").Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=Ëèñò5!$B$1:$B$33" & sh.Cells(Rows.Count, 1).End(xlUp).Row & ""
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
End If
End If
End Sub
Изменено: Mershik - 26.04.2021 12:49:11
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, я просто не очень хорошо разбираюсь в экселе тем более в макросах, спасибо вам за помощь.
Страницы: 1
Наверх