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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2012, 20:25   #1
TorLink
Пользователь
 
Регистрация: 06.10.2012
Сообщений: 23
Сообщение Обработчик события изменения в ячейке в Excel

Хелп)
Есть книга Excel.
в ней 2 листа
если в первом листе в Первой колонке проставляется цифра, то нужно, в этой же строчке умножить это число на значение 5й колонки. Результат записать на Втором листе в первой колонке.

Понятно, что можно было бы просто прописать формулу, только вот на первой листе может быть 1000 строк, из них цифры поставятся только в 50 и соответственно на втором листе должно быть всего 50 строк.

Нашел пару тем:
http://otvety.google.ru/otvety/thread?tid=...7c18a&pli=1
http://programmersforum.ru/showthread.php?t=39616
http://support.microsoft.com/kb/213566/ru

Но прописывая:
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
	If Target.Address <> [b4].Address Then Exit Sub
	' здесь ваш код
End Sub
Обработчик не срабатывает, в мануале от MS я не понимаю как сделать:
Цитата:
В шаблоне Class1 окно модуля (код), выберите в раскрывающемся списке объект и нажмите кнопку " appevent " в списке.
В шаблоне Class1 окно модуля (код), выберите в раскрывающемся списке процедуры и нажмите кнопку WindowResize в списке. Это будет добавить следующие Class1 модуле (код):
Где раскрывающийся список??

Кто нить может помочь?

И сразу вопрос, где блин взять нормальное описание методов?? а то в умных книжках пишут, типа:
У коллекции Workbooks есть метод Add с параметрами, а что за параметры не написано... и какие ещё методы тоже непонятно... ash: Неужели они не могут норм редактор сделать, чтоб по точке выводился список, или я чего-то не то делаю? Модули открываются по Изменению макросов.
TorLink вне форума Ответить с цитированием
Старый 06.10.2012, 20:34   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Неужели они не могут норм редактор сделать, чтоб по точке выводился список, или я чего-то не то делаю?
Вообще-то, в редакторе VBA список методов и свойств после точки выводится
(называется эта штука IntelliSense)
Работает в Excel в 90% случаев (в отличие от Word, где IntelliSense реализован практически на 100%)

После [b4] и точки список не появится (это нестандартное обращение к диапазону),
а вот если написать Range("b4") и поставить точку, то вы увидите список всех свойств и методов
EducatedFool вне форума Ответить с цитированием
Старый 06.10.2012, 20:49   #3
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Цитата:
Сообщение от TorLink Посмотреть сообщение
если в первом листе в Первой колонке проставляется цифра, то нужно, в этой же строчке умножить это число на значение 5й колонки. Результат записать на Втором листе в первой колонке.
Хорошо, а если в первом листе в Первой колонке удаляется число - что должно происходить? А если вводится нечисловое значение?

> где блин взять нормальное описание методов?
F1 блин Ставьте курсор в слово, например Workbooks, нажимайте F1...
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 06.10.2012, 23:27   #4
TorLink
Пользователь
 
Регистрация: 06.10.2012
Сообщений: 23
По умолчанию

Цитата:
Сообщение от Казанский Посмотреть сообщение
Хорошо, а если в первом листе в Первой колонке удаляется число - что должно происходить? А если вводится нечисловое значение?
Должна удаляться строка... ну если нечисло, то ничего думаю... да это то условиями обыграть можно... мне сам принцип. Т.к. по описанным выше методам результата небыло.. никаких действий по событию...

Гм.. мб на работе не тот excel? по точке не выводилось... дома норм
Справка ангийская вылезает... я с ним не особо дружу, тем более техническим((

Просто никогда с excel -ем нормально не работал, поэтому такой тупняк((

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

Последний раз редактировалось TorLink; 06.10.2012 в 23:45.
TorLink вне форума Ответить с цитированием
Старый 07.10.2012, 00:01   #5
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Может быть пойти другим путём - при переходе на второй лист обновлять на нём все значения? Так не будет проблем с удалением строк/значений на первом листе.
И событие вполне юзабельное есть - активация листа.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 07.10.2012, 00:33   #6
ikki_pf
Форумчанин
 
Регистрация: 25.02.2012
Сообщений: 166
По умолчанию

Цитата:
Сообщение от TorLink Посмотреть сообщение
Гм.. мб на работе не тот excel? по точке не выводилось... дома норм
проверьте галочку:
VBE - Tools - Options... - Editor - Auto List Members
ikki_pf вне форума Ответить с цитированием
Старый 07.10.2012, 01:06   #7
TorLink
Пользователь
 
Регистрация: 06.10.2012
Сообщений: 23
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Может быть пойти другим путём - при переходе на второй лист обновлять на нём все значения? Так не будет проблем с удалением строк/значений на первом листе.
И событие вполне юзабельное есть - активация листа.
Хм, возможно хорошая идея... а как это по скорости в excel? Не получиться, что в случае 1500строк или даже больше на первой странице, при расчете второго листа Он повиснит на минуту??)
А удалить строку это сложно? Я так понимаю прийдеться делать некое соответствие строк из первого листа строкам из второго...
TorLink вне форума Ответить с цитированием
Старый 07.10.2012, 01:07   #8
TorLink
Пользователь
 
Регистрация: 06.10.2012
Сообщений: 23
По умолчанию

Цитата:
Сообщение от ikki_pf Посмотреть сообщение
проверьте галочку:
VBE - Tools - Options... - Editor - Auto List Members
Спс, гляну как доберусь на работу...
А что со справкой, с русской справкой есть среда под vba ?
TorLink вне форума Ответить с цитированием
Старый 07.10.2012, 01:16   #9
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Ну расчёт 1500 строк даже не заметите. 15000 может будет секунду считать...
Если конечно всё правильно на массивах сделать.
А с этим соответствием... Я не представляю, как это вообще сделать.
Вот удалили Вы строку на первом листе, затем вставили строку в другом месте - как это всё организовать?
А так - просто сделали моментом всё заново по новым данным и порядок.
Ну если конечно там миллион строк - ну подумает секунд 5, или больше, или меньше... Нужно посмотреть.
Зачем это всё вообще? Может быть делать эту операцию только тогда, когда нужен результат кнопкой?
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 07.10.2012 в 01:21.
Hugo121 вне форума Ответить с цитированием
Старый 07.10.2012, 15:19   #10
TorLink
Пользователь
 
Регистрация: 06.10.2012
Сообщений: 23
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Ну расчёт 1500 строк даже не заметите. 15000 может будет секунду считать...
Если конечно всё правильно на массивах сделать.
А с этим соответствием... Я не представляю, как это вообще сделать.
Вот удалили Вы строку на первом листе, затем вставили строку в другом месте - как это всё организовать?
А так - просто сделали моментом всё заново по новым данным и порядок.
Ну если конечно там миллион строк - ну подумает секунд 5, или больше, или меньше... Нужно посмотреть.
Зачем это всё вообще? Может быть делать эту операцию только тогда, когда нужен результат кнопкой?
Ну 5 сек. это терпимо...
Суть такая:
На первом листе весь каталог товара...
допустим первая колонка пустая, по строкам размеры, цвета и т.д.
для заполнения не все строки подходят, только там где есть цвета.
Изначально Лист пустой, то есть нужен просто шаблон, он будет запоняться из 1С УТ. и высылаться клиенту.
Клиент проставляет количество в нужных строчках и на втором листе должен видеть результат, количество, цены и т.д.
Цены берутся с первого листа, то есть изначально второй лист пустой!
Кнопкой не совсем представляю, ка как это будет... надо чтоб было удобно...

Последний раз редактировалось TorLink; 07.10.2012 в 15:25.
TorLink вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С# Обработчик события yulshaz Помощь студентам 7 24.09.2012 08:12
Обработчик события окна 3StYleR Паскаль, Turbo Pascal, PascalABC.NET 0 25.04.2012 16:54
Обработчик события yardie Общие вопросы .NET 3 26.03.2011 18:30
Динамический обработчик события SKYDOS Помощь студентам 2 11.04.2008 06:46
Обработчик события... Flash_ Gamedev - cоздание игр: Unity, OpenGL, DirectX 12 12.03.2007 21:24