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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2010, 10:54   #1
Евгений_12
Пользователь
 
Регистрация: 24.05.2010
Сообщений: 18
По умолчанию Вызов макроса

Помогите разобраться!
Из одной ячейки в другую нужно постоянно копировать данные.
Есть только одно условие если в (ячейке 1) = #Н/Д то ничего не делать
а оставить старые данные.

Я написал макрос.
Sub b1()
Лист15.Activate
Лист15.Range("G28").Value=IIf(Лист1 5.Range("H28").Taxt="#Н/Д",Лист15.Range("G28").Value,Лист15 .Range("H28").Value )

Работает так как нужно НО! чтобы макрос сработал нужно давить на
кнопук RUN. Как сделать чтоб при открытой книге данные менялись
в реальном времени сами?

Заранее всем большое спасибо.
Евгений_12 вне форума Ответить с цитированием
Старый 30.05.2010, 11:49   #2
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

запишите этот код в событиея:

Workbook_Open() и Worksheet_Change(ByVal Target As Range)
maksim_serg вне форума Ответить с цитированием
Старый 30.05.2010, 17:32   #3
Евгений_12
Пользователь
 
Регистрация: 24.05.2010
Сообщений: 18
По умолчанию Вызов макроса

Что то не работает-- выдает ошибку компиляции.
Евгений_12 вне форума Ответить с цитированием
Старый 30.05.2010, 17:51   #4
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

А как вы написали? Бросьте весь код сюда
motorway вне форума Ответить с цитированием
Старый 30.05.2010, 18:23   #5
Евгений_12
Пользователь
 
Регистрация: 24.05.2010
Сообщений: 18
По умолчанию Запуск макроса

В коде ("ЭтаКнига") У меня запускается несколько "Modules"

Private Sub Workbook_Open()

Day //запускается раз в день
Hour//запускается раз в час
Application.WindowsState=xlMinimize d// скинуть Excel вниз

Worksheet_Change(ByVal Target As Range) --так записать недает вообще
Worksheet_Change(ByVal Target )As Range -при такой записи при нажатии
Enter сам переписывает запись и неправильно компилируется.
Евгений_12 вне форума Ответить с цитированием
Старый 30.05.2010, 18:33   #6
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Короче, после вызова редактора VBA (Alt+F11) вы должны выбрать, нажав "ЭтаКнига", в первом комбобоксе справа Workbook. Автоматически вставится код для Open. Внутрь него и вставляйте код макроса, но следите, чтобы был только код, а не Sub и End Sub.
В правом комбобоксе можно выбрать и другие события. Автоматически создастся код для них, куда и нужно вставить будет ваш код.
Это же можно сделать и для отдельного листа, нажав слева на нужный лист
Кроме того, в вашем коде я не вижу конца процедуры. Есть только начало, а где End Sub??
motorway вне форума Ответить с цитированием
Старый 31.05.2010, 07:46   #7
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
Из одной ячейки в другую нужно постоянно копировать данные...
Как сделать чтоб при открытой книге данные менялись в реальном времени сами?
1. Как часто нужно производить копирование? Почему нужно в реальном времени?
2. Т.к. в Вашей ячейке возможно #Н/Д, то, следовательно ячейка содержит формулу. Поэтому, для этой ячейки событие Worksheet_Change возникать не будет.
3. Можно использовать событие Worksheet_Calculate, но при большом количестве формул на листе, Excel будет "тормозить".
4. Какая формула содержится в контролируемой ячейке? Много ли влияющих ячеек она содержит?
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 31.05.2010 в 10:52.
SAS888 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов процедуры. Leo20 Общие вопросы Delphi 11 23.11.2009 16:30
Простой пример вызов DLL из макроса Excel Averinsergey Общие вопросы Delphi 2 05.05.2009 23:12
Запуск макроса с параметрами из другого макроса Saladin Microsoft Office Excel 2 19.01.2009 09:43
Вызов процедуры igbizon Общие вопросы Delphi 5 02.09.2008 10:44
вызов Iceman Софт 7 24.02.2008 07:30