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

Вход

Регистрация

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

 

= Мир MS Excel/Обнуление не соответсвующих значений - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Обнуление не соответсвующих значений (Формулы/Formulas)
Обнуление не соответсвующих значений
Sidvit Дата: Пятница, 29.12.2017, 09:46 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

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

Необходимо обнулять значения (или выдавать запись "не выбрано") в ячейках "D" и "E" если первоначально выбранные значение и данные в ячейки "D" и "E" подтянулись, а потом выбрали другие значения из выпадающего списка в ячейках "C" - надо чтобы пользователь выбрал иные значения в ячейках "D" и "E" используемые для значения ячейки "С".
К сообщению приложен файл: 5337453.xlsx (25.8 Kb)


Заранее благодарю!

С уважением,
Sidivit.
 
Ответить
СообщениеУважаемые гуру, доброе утро!
Прошу помочь разобраться с обнулением значений в ячейках не соответствующих выбранным условиям.

Необходимо обнулять значения (или выдавать запись "не выбрано") в ячейках "D" и "E" если первоначально выбранные значение и данные в ячейки "D" и "E" подтянулись, а потом выбрали другие значения из выпадающего списка в ячейках "C" - надо чтобы пользователь выбрал иные значения в ячейках "D" и "E" используемые для значения ячейки "С".

Автор - Sidvit
Дата добавления - 29.12.2017 в 09:46
_Igor_61 Дата: Пятница, 29.12.2017, 10:29 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 504
Репутация: 90 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте! В модуль листа:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("C:C")) Is Nothing Then
  Dim lR
  lR = ActiveCell.Row
  Cells(lR, 4).Value = "Не выбрано"
  Cells(lR, 5).Value = "Не выбрано"
End If
End Sub
[/vba]
К сообщению приложен файл: 5337453_1.xlsm (29.9 Kb)
 
Ответить
СообщениеЗдравствуйте! В модуль листа:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("C:C")) Is Nothing Then
  Dim lR
  lR = ActiveCell.Row
  Cells(lR, 4).Value = "Не выбрано"
  Cells(lR, 5).Value = "Не выбрано"
End If
End Sub
[/vba]

Автор - _Igor_61
Дата добавления - 29.12.2017 в 10:29
Manyasha Дата: Пятница, 29.12.2017, 10:33 | Сообщение № 3
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Sidvit, здравствуйте, еще вариант
[vba]
Код
Dim data_new, data_old
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    Dim lr&
    lr = Cells(Rows.Count, 3).End(xlUp).Row
    data_new = Range("c3:c" & lr).Value
    If IsEmpty(data_old) Then data_old = data_new
    If Not Intersect(Target, Range("c3:c" & lr)) Is Nothing Then
        If data_old(Target.Row - 2, 1) <> data_new(Target.Row - 2, 1) Then
            Target.Offset(, 1).Resize(, 2).ClearContents
            data_old = Range("c3:c" & lr).Value
        End If
    End If
End Sub
[/vba]
К сообщению приложен файл: 5337453-1.xlsm (31.5 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеSidvit, здравствуйте, еще вариант
[vba]
Код
Dim data_new, data_old
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    Dim lr&
    lr = Cells(Rows.Count, 3).End(xlUp).Row
    data_new = Range("c3:c" & lr).Value
    If IsEmpty(data_old) Then data_old = data_new
    If Not Intersect(Target, Range("c3:c" & lr)) Is Nothing Then
        If data_old(Target.Row - 2, 1) <> data_new(Target.Row - 2, 1) Then
            Target.Offset(, 1).Resize(, 2).ClearContents
            data_old = Range("c3:c" & lr).Value
        End If
    End If
End Sub
[/vba]

Автор - Manyasha
Дата добавления - 29.12.2017 в 10:33
Sidvit Дата: Пятница, 29.12.2017, 13:09 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Благодарю за ответы.
Очень помогли.

Вы лучшие!!!


Заранее благодарю!

С уважением,
Sidivit.
 
Ответить
СообщениеБлагодарю за ответы.
Очень помогли.

Вы лучшие!!!

Автор - Sidvit
Дата добавления - 29.12.2017 в 13:09
Sidvit Дата: Пятница, 29.12.2017, 13:28 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

_Igor_61, подскажите пожалуйста как будет выглядеть код если мне необходимо, чтобы текст "не выбрано" не применялся к ячейкам D43, E43, D51, E51.


Заранее благодарю!

С уважением,
Sidivit.
 
Ответить
Сообщение_Igor_61, подскажите пожалуйста как будет выглядеть код если мне необходимо, чтобы текст "не выбрано" не применялся к ячейкам D43, E43, D51, E51.

Автор - Sidvit
Дата добавления - 29.12.2017 в 13:28
_Igor_61 Дата: Пятница, 29.12.2017, 21:10 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 504
Репутация: 90 ±
Замечаний: 0% ±

Excel 2007
А завтра вместо 43 и 51 строк будут 68 и 23 и 1112? В Вашем примере таблица заканчивается на 17 строке, но это не принципиально. Принципиально - условия, где меняем, а где не меняем. Что меняем? Номер строки или значение из списка? Если список - нужна таблица соответствий, а ее скорее всего только Вы сможете сделать, потому что как узнать по каким условиям менять или не менять значения? В код VBA номера строк добавить не сложно, Вы можете уточнить, почему именно в этих строках? Если именно в этих - то "Cells(1,2)" - первая цифра - строка, вторая - столбец. Не очень понятно из Вашего вопроса, что именно нужно, может это поможет:
[vba]
Код
If Target.Cells = ("C3") Then
   Exit Sub
End If
[/vba]
"С3" - для примера, вставляйте свои ячейки


Сообщение отредактировал _Igor_61 - Пятница, 29.12.2017, 21:18
 
Ответить
СообщениеА завтра вместо 43 и 51 строк будут 68 и 23 и 1112? В Вашем примере таблица заканчивается на 17 строке, но это не принципиально. Принципиально - условия, где меняем, а где не меняем. Что меняем? Номер строки или значение из списка? Если список - нужна таблица соответствий, а ее скорее всего только Вы сможете сделать, потому что как узнать по каким условиям менять или не менять значения? В код VBA номера строк добавить не сложно, Вы можете уточнить, почему именно в этих строках? Если именно в этих - то "Cells(1,2)" - первая цифра - строка, вторая - столбец. Не очень понятно из Вашего вопроса, что именно нужно, может это поможет:
[vba]
Код
If Target.Cells = ("C3") Then
   Exit Sub
End If
[/vba]
"С3" - для примера, вставляйте свои ячейки

Автор - _Igor_61
Дата добавления - 29.12.2017 в 21:10
_Igor_61 Дата: Пятница, 29.12.2017, 21:42 | Сообщение № 7
Группа: Проверенные
Ранг: Ветеран
Сообщений: 504
Репутация: 90 ±
Замечаний: 0% ±

Excel 2007
Кажется, понял, что нужно
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("C:C")) Is Nothing Then
  Dim lR
  lR = ActiveCell.Row
If lR = 6 Or lR = 9 Or lR = 5 Then
  Exit Sub
End If
  Cells(lR, 4).Value = "Не выбрано"
  Cells(lR, 5).Value = "Не выбрано"
End If
End Sub
[/vba]
Ставьте lR= Ваша строка (вместо 6, 9, 5) и проверяйте. У меня работает.
 
Ответить
СообщениеКажется, понял, что нужно
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("C:C")) Is Nothing Then
  Dim lR
  lR = ActiveCell.Row
If lR = 6 Or lR = 9 Or lR = 5 Then
  Exit Sub
End If
  Cells(lR, 4).Value = "Не выбрано"
  Cells(lR, 5).Value = "Не выбрано"
End If
End Sub
[/vba]
Ставьте lR= Ваша строка (вместо 6, 9, 5) и проверяйте. У меня работает.

Автор - _Igor_61
Дата добавления - 29.12.2017 в 21:42
Sidvit Дата: Суббота, 30.12.2017, 22:27 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

_Igor_61, очень признателен вам за помощь в решении моего вопроса. 9 числа смогу проверить. Ещё раз огромное Вам спасибо за содействие.


Заранее благодарю!

С уважением,
Sidivit.
 
Ответить
Сообщение_Igor_61, очень признателен вам за помощь в решении моего вопроса. 9 числа смогу проверить. Ещё раз огромное Вам спасибо за содействие.

Автор - Sidvit
Дата добавления - 30.12.2017 в 22:27
Sidvit Дата: Вторник, 09.01.2018, 10:47 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

_Igor_61


Большое спасибо за помощь. Ваше решение работает так как надо!
Подскажите пожалуйста как сделать чтобы текст "Не выбрано" менялся на красный цвет?


Заранее благодарю!

С уважением,
Sidivit.
 
Ответить
Сообщение
_Igor_61


Большое спасибо за помощь. Ваше решение работает так как надо!
Подскажите пожалуйста как сделать чтобы текст "Не выбрано" менялся на красный цвет?

Автор - Sidvit
Дата добавления - 09.01.2018 в 10:47
Pelena Дата: Вторник, 09.01.2018, 12:13 | Сообщение № 10
Группа: Админы
Ранг: Местный житель
Сообщений: 19162
Репутация: 4412 ±
Замечаний: ±

Excel 365 & Mac Excel
Sidvit, новый вопрос не относится к данной теме, создайте для него отдельную тему


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеSidvit, новый вопрос не относится к данной теме, создайте для него отдельную тему

Автор - Pelena
Дата добавления - 09.01.2018 в 12:13
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Обнуление не соответсвующих значений (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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