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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 18.01.2009, 22:52   #1
photomuza
Новичок
Джуниор
 
Регистрация: 18.01.2009
Сообщений: 2
По умолчанию Помогите сделать шаблон плз

К своему стыду, за 7 лет плотной работы на ПК, с Екселем никогда не дружил. Изучать сейчас нет времени да и скорей всего вряд ли понадобится плотно.

В общем задача такова. Имеем подобный файл HTML (это отчет программы-терминала для работы на Форексе, сохраняет только в таком формате):
http://ohohoh.info/forex/exel/Statement.htm

Отчет отображает прибыль в валюте, а мне нужен - в ПУНКТАХ.

Таблица HTML имеет 14 столбцов. Меня интересует весь последний 14 столбик + сумма внизу, разница лишь в том, чтобы прибыль отображалась в пунктах. Что такое 1 пункт? Это минимальное изменение цены (Price).

Как считать пункты? Смотрим верхний ряд. Нас интересуют ячейки (слева направо) 3 (Type), 6 (Price) и 10 (Price). Все. В 14 заносим результат.

Опишем переменные: Type(), Price6, Price10, Profit(), Profit-ALL

Алгоритм такой:
Код:
If Type(N)=sell;
Profit(N)=Price6 - Price10;

/// И наоборот - ///

If Type(N)=buy;
Profit(N)=Price10 - Price6;
Результат может быть и отрицательный (в примере есть один такой ряд). Все полученные профиты в 14 столбце складываются в общую сумму Profit-ALL. Вот и все. Думаю понятно. Там есть столбик Swap, но для подсчета ПУНКТОВ, он не играет роли.

Что бы мне хотелось иметь. Шаблон под этот алгоритм, чтоб я взял свой HTML файл, сделал Ctrl+С:
http://ohohoh.info/forex/exel/copy.png
Затем в Екселе Ctrl+V.

Вот нашел файл - вставляется, но там другое количество ячеек поэтому мое не считает:
http://ohohoh.info/forex/exel/exel.zip

Думаю, задача несложная. Заранее сенкс.
photomuza вне форума
Старый 19.01.2009, 00:25   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Думаю, задача несложная
Да, задача простая. Если Вы, конечно, и дальше будете также аккуратно выделять нужный диапазон для копирования в HTML файле.

Я сталкивался с подобной задачей, только я выделял всё содержимое WEB - страницы (нажатием Ctrl + A), копировал его (нажатием Ctrl + C), после чего нажимал в Excel одну кнопочку на панели инструментов.
Макрос сам анализировал структуру содержимого буфера обмена, вырезал ненужные строки (шапку и окончание таблицы), а остатки обрабатывал, и вставлял на лист.

Так получается быстрее, вот только макрос значительно сложнее...

Кстати, выяснилось, что разные браузеры (в частности, Opera и IE) по-разному скидывают содержимое таких HTML-таблиц в буфер обмена - Opera разделяет ячейки табуляторами, а IE - пробелами.

Я пользуюсь Оперой, поэтому проверял всё именно с её использованием.

Посмотрите вариант во вложении.
Сначала копируете диапазон в HTML файле, после чего выделяете любую ячейку в строке, начиная с которой нужно осуществить вставку, и нажимаете кнопку "Запуск макроса".

Макрос очень прост:
Код:
Sub ВставкаДанных()
    ActiveCell.EntireRow.Cells(3).Activate
    ActiveSheet.Paste

    Selection.Columns(4).Replace ".", ",", xlPart
    Selection.Columns(6).Resize(, 3).Replace ".", ",", xlPart
    Selection.Columns(10).Resize(, 5).Replace ".", ",", xlPart
End Sub
После вставки он заменяет точки запятыми в отдельных столбцах.
Ваши формулы делают все вычисления.

Если требуется что-то дополнительно вычислять - добавьте формулы правее столбца Q
Вложения
Тип файла: rar excel.rar (20.0 Кб, 27 просмотров)
EducatedFool вне форума
Старый 19.01.2009, 02:45   #3
photomuza
Новичок
Джуниор
 
Регистрация: 18.01.2009
Сообщений: 2
По умолчанию

Все понял. Старая версия у меня (2000). Другую версию не нашел пока. А не считало у меня при COPY/PASTE вот почему: моему Екселю нужна была запятая в ценах, а в файлах МТ - точка. Заменяю точку на запятую маленькой программкой - теперь считает. Может позже разберусь со столбиком Q.
Спасибо за помощь!
photomuza вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите плз!!! DenGA Общие вопросы по Java, Java SE, Kotlin 0 08.12.2008 17:27
Помогите плз! Необходимо сделать электронный каталог продукции на CD reyst БД в Delphi 3 14.09.2008 20:26