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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2010, 18:39   #1
Chyzz
Новичок
Джуниор
 
Регистрация: 07.05.2010
Сообщений: 2
По умолчанию Автоматическое заполнение ячейки

Доброго времени суток! Помогите, пожалуйста, решить такой вот вопросец.
Есть 2 таблицы на разных листах. В первой (KyrsVal) размещено информация о курсе валют на определенную дату. Во второй таблице (IncData) 3 столбца: "дата", "валюта", "курс". Когда в IncData "Валюта" выбираем из выпадающего списка название валюты в столбце "курс" нужно автоматическое заполнение курса валют из 1-й табл. с учетом, что Дата.IncData = Дата.KyrsVal
Формулой это выглядит так:

=ЕСЛИ(I8=0;0;ВПР(B8;KyrsVal!$A:$E;Е СЛИ(IncData!I8="USD";2;ЕСЛИ(IncData !I8="EUR";3;ЕСЛИ(I8="RUR";4;5)));ЛО ЖЬ))

Как это реализовать программным кодом?
Заранее благодарен
Chyzz вне форума Ответить с цитированием
Старый 07.05.2010, 19:30   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Как это реализовать программным кодом?
А зачем надо это делать программно?
Чем формула не устраивает?

Без примера файла вряд ли кто напишет вам код...
EducatedFool вне форума Ответить с цитированием
Старый 08.05.2010, 20:37   #3
Chyzz
Новичок
Джуниор
 
Регистрация: 07.05.2010
Сообщений: 2
По умолчанию

Что-ж, помощь пришла из неоткуда и реализовалась она так:
при выборе из списка вида валюты в столбце "Валюта" макрос вставляет в столбце "Курс" формулу, в соответствующую ячейку, которая подбирает значение курса валюты из таблицы на листе KyrsVal на нужную дату.
Сам код ниже.
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
   
    If Target.Column = 8 And Target.Row > 7 Then
    Cells(Target.Row, 9).Value = "=IF(R[0]C[-1]=0,0,VLOOKUP(R[0]C[-7],KyrsVal!C1:C5,IF(IncData!R[0]C[-1]=""USD"",2,IF(IncData!R[0]C[-1]=""EUR"",3,IF(R[0]C[-1]=""RUR"",4,5))),FALSE))"
    End If
    
End Sub
Условие Target.Row > 7 для того чтобы не трогать шапку таблицы.

может кому пригодиться...
Chyzz вне форума Ответить с цитированием
Старый 08.05.2010, 21:10   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

пишем код, чтобы вставить формулу, которая потом и будет все считать в конечном итоге... не логично как-то. Пишете код - то поставьте уже курс, а не формулу, которая его определяет.
Сами сначала делаем все мягко говоря "через код", а потом удивляемся...
Формулу можно написать короче, и для любого количества валют, а не для трех, как у Вас.
Появится послезавтра еще одна валюта и "караул!", надо код переписывать? так?
пример во вложении.
Вложения
Тип файла: rar книга322.rar (4.3 Кб, 26 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 08.05.2010 в 21:38.
IgorGO вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматическое заполнение ячеек (VBA) Warhead Microsoft Office Excel 11 15.03.2010 13:07
Автоматическое заполнение. Как? Vitaliy7 Microsoft Office Access 2 25.01.2010 12:29
Автоматическое заполнение строк Пришвин Microsoft Office Excel 32 21.09.2009 18:01
автоматическое заполнение данными ячеек в excel kasanad80 Microsoft Office Excel 7 17.07.2009 15:31
Автоматическое заполнение данных из другого листа usgaz@list.ru Microsoft Office Excel 8 17.10.2008 10:41