Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите с макросом "Активная ячейка". Нужно чтоб запускался при вводе данных

54K
13 февраля 2010 года
Igor913
3 / / 13.02.2010
Добрый день, хотелось бы написать макрос, который реагирует на изменение данных в ячейке, то есть если в одном листе excel-евского файла в какой-то ячейке ввести число например 543 то макрос переходит не визуально, а в памяти, на другой лист файла, а там таблица из нескольких столбцов с числами, так вот макрос находит в определенном солбце это (543) число, далее сравнивает рядом с ним стоящее в одной строке число с нулем, если оно меньше нуля то макрос возвращает в ту ячейку куда вводили число 543 значение того отрицательного числа которое стоит рядом в одной строке с числом 543. Ну а если число которое стоит в таблице рядом с 543 больше нуля то макрос ни чего не делает, а оператор вводит данные в другую ячейку. Ну в общем-то как сравнивать числа и выводить число в какую-то ячейку с этим я сам справлюсь, а вот как написать чтобы макрос начинал работу после введения данных в ячейку - вот это я не знаю. Кто знает подскажите пожалуйста?
Привожу примерый макрос НО без начала

Sub сравнение()
'
' сравнение Макрос
' Макрос записан 13.02.2010 (ккк)
'
' Сочетание клавиш: Ctrl+s
'
Dim a As Integer [COLOR=green]' - это номер строки в таблице где происходит сравнение[/COLOR]
Dim n As Integer [COLOR=green]' - это переменная которой присваивается значение числа после того как его ввели[/COLOR]
Dim x As Integer [COLOR=green]' - это номер строки на которой находиться ячейка в которую вводиться число[/COLOR]
Dim y As Integer [COLOR=green]' - это номер столбца в котором находиться ячейка в которую вводиться число[/COLOR]

a = 1 [COLOR=green]'задается номер строки с которой начинаем[/COLOR]

[COLOR=blue]' ВОТ ТУТ КАК РАЗ В МЕСТО ЭТИХ ТРЕХ СТРОЧЕК И ДОЛЖНА ПО ИДЕЕ БЫТЬ КОМАНДА
' КОТОРАЯ ЗАПУСКАЕТ МАКРОС ПОСЛЕ ВВОДА ЧИСЛА В ЯЧЕЙКУ[/COLOR]
' Range("B2").Select
' ActiveCell.FormulaR1C1 = "543"
' n = введенному в ячейку числу


x = 2 [COLOR=green]' для того чтобы макрос хоть как то работал задаем умышленно фиксированное значение [/COLOR]
y = 2 [COLOR=green]' для того чтобы макрос хоть как то работал задаем умышленно фиксированное значение [/COLOR]
n = Sheets("лист-данные").Cells(x, y) [COLOR=green]'присваиваем переменной n значение введенного в ячейку числа [/COLOR]
2 If n = Sheets("лист-таблица").Cells(a, 1) Then GoTo 1 [COLOR=green]' находим такое же число как оператор вводил но уже в эталонной таблице[/COLOR]
a = a + 1
If a <= 50 Then GoTo 2
1 If Sheets("лист-таблица").Cells(a, 2) > 0 Then GoTo 3 [COLOR=green]' Число найдено, а сдесь выясняем отрицательное ли число которое стоит рядом в эталонной таблице[/COLOR]

Sheets("лист-данные").Cells(x, y) = Sheets("лист-таблица").Cells(a, 2) [COLOR=green]'присваивается здачение отрицательного числа ячейке в которую изначально был ввод[/COLOR]
Sheets("лист-данные").Select [COLOR=green]'ну тут ниже меняетс цвет шриф для яркости[/COLOR]
Cells(x, y).Select
Selection.Font.ColorIndex = 3
Selection.Font.Bold = True
With Selection.Font
.Name = "Arial Cyr"
.Size = 12
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = 3
End With
pause (20 = cek) [COLOR=green]' то же не знаю как писать паузу в работе, а она нужна чтобы оператор увидел результат[/COLOR]
4 r = r + 1
If r < 50000000 Then GoTo 4 [COLOR=green]' пришлось вместо паузы вот такой ерундой заниматься[/COLOR]
Selection.ClearContents [COLOR=green]'очистка ячейки куда был ввод[/COLOR]
Selection.Font.ColorIndex = 1

3 End Sub

Естественно макрос до коца не проработан, да это не главное сейча для меня, проработаю, мне важно начало его написать.
275
13 февраля 2010 года
pashulka
985 / / 19.09.2004
Используйте следующее событие рабочего листа :

 
Код:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)

End Sub


Пример, применительно к Вашей задаче, можно скачать здесь
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог