Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.12.2009, 16:06   #1
KOSTIK1
Форумчанин
 
Аватар для KOSTIK1
 
Регистрация: 06.10.2009
Сообщений: 193
Вопрос Удаление содержимого соседних ячеек после ввода данных.

Доброго времени суток всем!
Помогите с кодом ВБА у меня не получается.
Есть столбец "D" и в любой ячейке этого столбца после ввода значения (например даты) нужно чтобы соответственно в этой строке но только в столбце "G" и "К" удалялись значения, и наоборот, внеся значение в ячейку из столбца "G" значения в "D" и "Е" этой же строки, удалялись. Спасибо.
С Уважением, Костик
KOSTIK1 вне форума Ответить с цитированием
Старый 29.12.2009, 16:31   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Вот весь код:
Код:
Const Диапазон = "d:d,e:e,g:g"

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Intersect(Target, Range(Диапазон)) Is Nothing Then Exit Sub
    Dim cell As Range: On Error Resume Next
    Application.EnableEvents = False
    For Each cell In Intersect(Target.EntireRow, Range(Диапазон)).Cells
        If cell.Address <> Target.Address Then cell.ClearContents
    Next cell
    Application.EnableEvents = True
End Sub
А вот - пример файла:




Прочитал задание ещё раз... заметил, что столбцы отличаются.
Тогда такой код испробуйте: http://excelvba.ru/XL_Files/Sample__...__18-38-22.zip

Код:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    On Error Resume Next: Application.EnableEvents = False
    Select Case Target.Column
        Case 4
            ' Есть столбец "D" и нужно чтобы в этой строке
            ' но только в столбце "G" и "К" удалялись значения
            Target.EntireRow.Cells(7).ClearContents
            Target.EntireRow.Cells(11).ClearContents
        Case 7
            ' внеся значение в ячейку из столбца "G"
            ' значения в "D" и "Е" этой же строки, удалялись.
            Target.EntireRow.Cells(4).ClearContents
            Target.EntireRow.Cells(5).ClearContents
    End Select
    Application.EnableEvents = True
End Sub

Последний раз редактировалось EducatedFool; 29.12.2009 в 16:38.
EducatedFool вне форума Ответить с цитированием
Старый 29.12.2009, 16:35   #3
KOSTIK1
Форумчанин
 
Аватар для KOSTIK1
 
Регистрация: 06.10.2009
Сообщений: 193
По умолчанию

Превосходно! Спасибо за скорость.
С Уважением, Костик
KOSTIK1 вне форума Ответить с цитированием
Старый 29.12.2009, 16:53   #4
KOSTIK1
Форумчанин
 
Аватар для KOSTIK1
 
Регистрация: 06.10.2009
Сообщений: 193
По умолчанию

Извиняюсь, но нужно чтобы на удаление влияли только столбцы "D" и "G".
То-есть изменив в "G" очистилось в "D" и "Е", а изменив в "D" очистилось только "G" и "К". А тут выбор в любой из перечисленных ячеек влияет на все остальные стирая их. Как можно подправить? Спасибо


PS-Поздно увидел ваше EducatedFool исправление!
Вопрос исчерпан. Ещё раз СПАСИБО.
С Уважением, Костик

Последний раз редактировалось KOSTIK1; 29.12.2009 в 16:58.
KOSTIK1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
удаление не нужных знаков после запятой. Alar Общие вопросы Delphi 4 31.05.2012 19:59
Excel - удаление объед. ячеек в .doc prima Microsoft Office Excel 0 20.10.2009 11:40
Удаление скрытых столбцов после фильтрации. Garrison Microsoft Office Excel 7 02.09.2009 16:27
Быстрое удаление содержимого ячеек gadspider Microsoft Office Excel 11 18.07.2009 12:08
Обработка содержимого ячеек - отчистка от мусора Bromista Microsoft Office Excel 10 17.04.2009 11:39