Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.58/12: Рейтинг темы: голосов - 12, средняя оценка - 4.58
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 48
1

Задачка с событием Worksheet_Change

03.05.2012, 00:03. Просмотров 2257. Ответов 1
Метки нет (Все метки)

Код работает просто СУППЕР! Я его поместил в стандартный модуль Module1 с названием процедуры Поиск. К нему обращаются процедуры рабочих листов при наступлении события Worksheet_Change любого активного рабочего листа через Call Поиск. Теперь при наступлении изменения в ячейках D62 или D63, а соответственно и D65, автоматически удаляются названия "Телефон" и "город", а также сумма в грн. Это приводит к появлению только одной записи. Это мне и нужно!

Вот код рабочего листа Лист1. Такой же код присутствует и в других листах: Лист2...


Private Sub Worksheet_Change(ByVal Target As Range)
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dim тф As Range, i As String
Set тф = Range("D62:D65")
 
    If Not (Application.Intersect(Target, тф) Is Nothing) Then
        Call Поиск
        
        i = 8
        While Sheets("Лист1").Range("E" + LTrim$(Str$(i))) <> ""
        i = i + 1
        Wend
        Sheets("Лист1").Range("E" + LTrim$(Str$(i))) = Range("D65").Value
        Sheets("Лист1").Range("G" + LTrim$(Str$(i))) = "Телефон"
        Sheets("Лист1").Range("I" + LTrim$(Str$(i))) = "город"
    End If
 
End Sub
Стандартный модуль
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Public Sub Поиск()
 
  Dim f As Excel.Range, w As Excel.Range
  
  Set w = Range("I8:J20")
  Set f = w.Find("город", , xlValues, xlWhole)
 
    Do Until f Is Nothing
      Range(f.Offset(0, -4), f).Value = Empty
      Set f = w.FindNext
    Loop
End Sub
Но я обнаружил особенность, которую теперь нужно устранить.
Иногда может получиться, что или ячейка D62 или D63 могут стать пустыми, что сделает пустой и ячейку D65. В этом случае значение ячейки, содержащей сумму расхода в грн. "Телефон" и "город", очищается, но остаются названия "Телефон" и "город" в ячейках столбцов G и I.

ВОПРОС: Как сделать, чтобы при удалении значения из ячейки с суммой в грн. удалялись и теперь ненужные записи "Телефон" и "город", которые были связаны с удаленной записью суммы в грн.

Как усовершенствовать код?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2012, 00:03
Ответы с готовыми решениями:

Worksheet_Change
Хочу поймать событие в открытой книге, но сложность заключается в том что ловить я его хочу в файле...

Ошибка в Worksheet_Change()
Доброго всем времени! Вопрос по файлу во вложении: если открыть и перещелкнуть свойство &quot;Род тока&quot;...

Не работает worksheet_change
Здравствуйте! Уважаемые форумчане, подскажите, пожалуйста, почему не работает обработчик событий...

Worksheet_Change убивает пользовательские функции
Добрый вечер! Прошу помочь со следующей проблемой: В файле в приложении есть 2 функции в модуле...

1
5 / 5 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
09.05.2012, 20:00 2
khall,

Ya zametil eto:
Visual Basic
1
2
3
4
i = 8
While Sheets("Лист1").Range("E" + LTrim$(Str$(i))) <> ""
i = i + 1
Wend
Zachem nado LTrim$? I zachem voobsche While-Wend? Pochemu ne cherez Range("E65536").end(xlup).row?

VladConn
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.05.2012, 20:00

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Реакция макроса Worksheet_Change на изменение значения в ячейке
Здравствуйте. Подскажите насчет реакции макроса на изменившуюся ячейку . Эксель имеет такой...

Worksheet_Change не позволяет выбрать Range составленный из переменных
Добрый вечер, Прошу подсказать почему вылезает ошибка 1004: При изменении ячейки в диапазоне...

Обработчик событий Worksheet_Change(ByVal Target As Range)
Привет всем у меня есть вопрос, хотя он уже поднимался, но я так и не нашёл На него однозначного...

Перестало срабатывать событие Worksheet_Change, как исправить проблему?
Добрый всем день, у меня такая вот не большая проблема. Не могу разобраться с кодом: Цель...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.