Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
[ Закрыто] Проблемы с кодом
 
Код
ElseIf Not Intersect(Target, Range("E11:E29")) Is Nothing Then
        If Cells.Activate("D11:D29") = ("ТП") Then Set d = Range("ТП")
        ElseIf ("D11:D29") = ("ТБ") Then Set f = Range("ТП")
            If WorksheetFunction.CountIf(d, Target) = 0 Then
            r = MsgBox("Добавить значение в список?", vbYesNo)
            If r = vbYes Then d.Cells(d.Rows.Count + 1) = Target
            End If
    End If
End Sub

Я дурак в VBA. Подскажите как записать следующие слова только на языке макроса "Если в ячейках D11:D29 появляется значение "ТБ" тогда новое значение записанное в ячейках E11:E29 также будет записываться в именованный диапазон "ТБ", а если в ячейках D11:D29 появляется значение "ТП" тогда новое значение записанное в ячейках E11:E29 также будет записываться и в именованный диапазон "ТП"
и так несколько раз

Прикреплю пример
Изменено: Дмитрий Гончаренко - 22.07.2020 13:07:26
Автоматическое распределения продукта по столбцам в зависимости от его типа
 
С предыдущей проблемой я разобрался. Осталась заключительная она же и самая важная.

Если поможете, я буду очень Вам признателен!

Объясню суть здесь и в файле(пример) Excel!.
Я сделал выпадающий список, при помощи функции ДВССЫЛ, т.е. в соответствии с выбором определенного значения в одном столбце в другом появляются данные, которые относятся только к одному значению и так далее с несколькими пунктами. Также был написан макрос (не я, благодаря уроку Павлова) на добавление новых значений в выпадающий список. Нужно сделать с этим макросом так, чтобы можно было добавлять новые значения в соответствии с названием столбца.

Здесь, конечно, не особо понятно, но думаю в файле эксель будет лучше. Прошу прощения чрезвычайную тупость.

С Уважением, Гончаренко Дмитрий
Объединить команды внутри одной процедуры "Worksheet_Change"
 
Я поправил, теперь возникла уже другая проблема.
Объединить команды внутри одной процедуры "Worksheet_Change"
 
Помогло! Огромнейшее спасибо!  
Объединить команды внутри одной процедуры "Worksheet_Change"
 
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Set a = Range("Номер")
    If Target.Cells.Count > 1 Then Exit Sub
    If IsEmpty(Target) Then Exit Sub
    If Not Intersect(Target, Range("B12:B37")) Is Nothing Then
    If WorksheetFunction.CountIf(a, Target) = 0 Then
            r = MsgBox("Добавить новое значение в справочник?", vbYesNo)
            If r = vbYes Then a.Cells(a.Rows.Count + 1) = Target
            Set a = Range("Время")
    If Not Intersect(Target, Range("C12:C37")) Is Nothing Then
        If WorksheetFunction.CountIf(b, Target) = 0 Then
            r = MsgBox("Добавить новое значение в справочник?", vbYesNo)
            If r = vbYes Then b.Cells(b.Rows.Count + 1) = Target
            End If
        End If
    End Sub

Изменено: Дмитрий Гончаренко - 15.07.2020 13:04:50
Объединить команды внутри одной процедуры "Worksheet_Change"
 
Здравствуйте, мне нужно сделать выпадающий список с добавлением новых значений в нескольких столбцах, при добавлении двух процедур они естественно конфликтуют. (Чайник экселя)
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Set p = Range("Номер")
    If Target.Cells.Count > 1 Then Exit Sub
    If IsEmpty(Target) Then Exit Sub
    If Not Intersect(Target, Range("B12:B37")) Is Nothing Then
        If WorksheetFunction.CountIf(p, Target) = 0 Then
            r = MsgBox("Добавить новое значение в справочник?", vbYesNo)
            If r = vbYes Then p.Cells(p.Rows.Count + 1) = Target
            End If
        End If
    End Sub
    Private Sub Worksheet_Change(ByVal Target As Range)
    Set p = Range("Время")
    If Target.Cells.Count > 1 Then Exit Sub
    If IsEmpty(Target) Then Exit Sub
    If Not Intersect(Target, Range("С12:С37")) Is Nothing Then
        If WorksheetFunction.CountIf(p, Target) = 0 Then
            r = MsgBox("Добавить новое значение в справочник?", vbYesNo)
            If r = vbYes Then p.Cells(p.Rows.Count + 1) = Target
            End If
        End If
    End Sub
Страницы: 1
Наверх