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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2011, 12:04   #1
freakymeow
 
Регистрация: 05.04.2011
Сообщений: 6
По умолчанию Формирование новой структуры документа

Всем привет. У меня есть сложная задачка. Очень надеюсь на то, что найду на этом форуме совет.
Итак, у меня есть база данных в Excel по транспорту на предприятии (смотри приложенный файл).
Давайте рассмотрим, что тут представлено.
В ячейке объединенных ячейках C158+D158+E158 наименование техники, F158 - гос номер, G158 - общие часы работы, H158 - общий пробег, I158 - сумма затрат, D159+E159 - путевой лист NNNN (дата) {номер путевого листа может быть как четырехзначным, так и пятизначным}, G159 - часы работы по дате, указанной в путевке, H159 - километраж, I159 - затраты, E161 - цена за час.
Далее в ячейке C162 идет следущий автомобиль.
Количество путевых листов по каждому автомобилю может варьироваться от 1 до 31, следовательно не в каждой четвертой ячейке C (C166, C170, C174,...) будет следущая марка техники.

Что же требуется вычленить из всего этого отчета на 5000+ строк?
Необходимо попытаться получить форму, представленную на рисунке ниже.
Примерный алгоритм действий следущий:
- На новом листе заполнить верхнюю строку значениями 01, 02, 03, ... - датами текущего месяца
- Поиск непустых ячеек в столбце C - C(n)
- При нахождении непустой ячейки нужно убрать объединение ячеек и скопировать в новый лист значения в ячейке С - C(n) и значение из ячейки F - F(n) после двух пробелов {номер автомобиля}
- В ячейке D(n+1) поиск "(", сохранение двух следущих цифр в переменную - дату.
- Нахождение на новом листе в верхней строке даты равной дате, вычленной в ячейке D(n+1)
- Вставка данных из текущего листа в новый лист: в стоблец с найденной датой время из ячейки G(n+1).
- Вставка в конец таблицы на новом листе цену за час из ячейки E(n+3)

Наверно я чтото упустил, однако я готов ответить на любые вопросы. Также буду рад ознакомиться с ссылками, где можно посмотреть наглядное использование VBA функций, которые были бы полезны в решении моей задачи.
Спасибо!
Изображения
Тип файла: jpg excel.JPG (85.0 Кб, 130 просмотров)

Последний раз редактировалось freakymeow; 05.04.2011 в 13:25.
freakymeow вне форума Ответить с цитированием
Старый 05.04.2011, 12:07   #2
freakymeow
 
Регистрация: 05.04.2011
Сообщений: 6
По умолчанию

Прикладываю рисунок, где видно, что должно примерно получиться
Изображения
Тип файла: jpg excel1.JPG (54.5 Кб, 85 просмотров)
freakymeow вне форума Ответить с цитированием
Старый 05.04.2011, 12:46   #3
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Ответ картинкой давать?
Ил приложите какой то кусок файла
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 05.04.2011, 13:16   #4
freakymeow
 
Регистрация: 05.04.2011
Сообщений: 6
По умолчанию

Прикладываю файл, спасибо.
Вложения
Тип файла: rar excel.rar (10.8 Кб, 26 просмотров)

Последний раз редактировалось freakymeow; 05.04.2011 в 14:33.
freakymeow вне форума Ответить с цитированием
Старый 05.04.2011, 19:48   #5
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Выбираете файл в диалоге.обрабатывается первый лист
Вложения
Тип файла: rar Книга.rar (19.5 Кб, 41 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 05.04.2011, 20:17   #6
freakymeow
 
Регистрация: 05.04.2011
Сообщений: 6
По умолчанию

Спасибо большое! Сейчас буду разбираться.
freakymeow вне форума Ответить с цитированием
Старый 06.04.2011, 00:16   #7
freakymeow
 
Регистрация: 05.04.2011
Сообщений: 6
По умолчанию

В ходе работы у меня возник небольшой вопрос. Допустим код начинается с нуля (08050000), в массиве при записи в *.csv файл (смотрел по Add watch) он сохраняется с нулем вначале, однако при открытии *.csv файла нуля уже нет, но если открыть в блокноте, то там отображается нормально. Собственно вопрос - как определенному столбцу присвоить текстовый формат (как при записи в *.csv файл указать что это именно текст) или как открыть текстовый файл (*.txt) и все данные из него перенести в какой-нибудь массив?
Конечно можно при переносе в *.csv поставить какой-нибудь печатный символ перед кодом или же при загружении данных из *.csv сложить строчку с кодом с '0', но вдруг есть какое-нибудь более элегантное решение.
Спасибо.
Прикладываю файл с модифицированным макросом, csv таблицей и исходными данными.

upd: остановился на
Код:
    DD(n, 6) = "0" & DD(n, 6)
    DD(n, 8) = "0" & DD(n, 8)
Вложения
Тип файла: rar excel.rar (102.9 Кб, 13 просмотров)

Последний раз редактировалось freakymeow; 06.04.2011 в 00:45.
freakymeow вне форума Ответить с цитированием
Старый 06.04.2011, 01:39   #8
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Я тогда не пойму,зачем писать вам в файл.пишите на лист

upd="'" & 4556
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 06.04.2011, 01:48   #9
freakymeow
 
Регистрация: 05.04.2011
Сообщений: 6
По умолчанию

Да, так я и сделаю. Так сложилось что сегодня был первый день знакомства с VBA и естественно первые решения могут показаться громозкими и нелогичными.
freakymeow вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Формирование документа Word на основе данных Excel gaevoy1 Microsoft Office Excel 10 11.04.2011 12:05
Автоматическое создание структуры документа cmygla Microsoft Office Word 1 08.12.2010 19:13
Формирование и вывод новой матрицы DarkSwan Visual C++ 10 05.11.2010 17:03
формирование новой таблицы на основе исходной azov Microsoft Office Excel 2 18.07.2009 22:38
Формирование Excel-документа через OLE-сервер с Unicode-символами sergushkin Microsoft Office Excel 2 13.04.2008 23:04