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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.09.2010, 17:27   #1
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию Преобразовать один файл в другой по требованию

Привет, друзья!!!
Опять нужна Ваша помощь, в своей практике "программирования", не приходилось с таким сталкиваться!!
Разобью задачу на две части.
1.
Есть файл 1.xls - это оригинал и есть файл 2.xls - в такой вид нужно преобразовать, оригинал, причем по требованию, т. е. в файле 2.xls, запускаю макрос, он, макрос, просит открыть файл, указываю на оригинал, к именам файлов привязки не должно быть и после этого идет процесс!

2. может сам, потом решу
Вложения
Тип файла: rar XXX.rar (14.7 Кб, 12 просмотров)
valerij вне форума Ответить с цитированием
Старый 06.09.2010, 17:54   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Код писать некогда, а алгоритм вижу такой:
1. Диалог открытия файла.
2. Ищем по первому листу "Сальдо начальное" - запоминаем ряд, ищем "Обороты за период" - запоминаем ряд.
3. Берём в массив от и до запомненного, со 2-го по 4-ый столбец.
4. Перебираем в цикле, заменяя 2-й элемент на его Split()
Например:
ee = "Реализация товаров и услуг № 1497 от 27 08 2010 "
ee = Split(ee)(5)
5. Добавляем новую книгу, выгружаем туда получившийся массив.
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 06.09.2010 в 20:29. Причина: перепутал 2 и 3 :(
Hugo121 вне форума Ответить с цитированием
Старый 06.09.2010, 18:11   #3
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
ee = "Реализация товаров и услуг № 1497 от 27 08 2010 ".
Hugo121!!
У Вас так, красным, а нужно, так:
ee = "1497"
Нужны, только цифры, после №, как во втором файле!!
Я не зная, как удалить все лишнее или скопировать, только цифры, после №.
valerij вне форума Ответить с цитированием
Старый 06.09.2010, 18:14   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Цитата:
Сообщение от valerij Посмотреть сообщение
Hugo121!!
У Вас так, красным, а нужно, так:
ee = "1497"
Нужны, только цифры, после №, как во втором файле!!
Я не зная, как удалить все лишнее или скопировать, только цифры, после №.
Так вот оно и есть - я сперва задал переменную, затем её преобразовал.
Посмотрите код в редакторе, ну или
msgbox ee
ниже поставьте.

Так понятнее?
Код:
Sub tt()
ee = Split("Реализация товаров и услуг № 1497 от 27 08 2010 ")(5)
MsgBox ee
End Sub
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 06.09.2010 в 18:17.
Hugo121 вне форума Ответить с цитированием
Старый 06.09.2010, 18:33   #5
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
ниже поставьте.Так понятнее?
А-а, попробую!!
valerij вне форума Ответить с цитированием
Старый 06.09.2010, 18:36   #6
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Hugo121 - valerij 1:0
проверять надо
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 06.09.2010, 18:46   #7
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от doober Посмотреть сообщение
проверять надо
Сереж, а че проверять?
Забыл, там где такая запись:
"Платежное поручение входящее № 1472.461.3 от 17 08 2010" или
"Возврат товаров от покупателя № 86 от 18 08 2010"
То в эти яч. ставим, ноль.
Т. е. в любых яч., ст. Е, если нет значений

Последний раз редактировалось valerij; 06.09.2010 в 19:18.
valerij вне форума Ответить с цитированием
Старый 06.09.2010, 20:27   #8
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Да, что-то это я пропустил второпях... Ну значит сперва проверяем 3-й элемент массива - если там <>"" - обрабатываем, иначе 0.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 06.09.2010, 21:31   #9
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Ну вот так, не совсем как в примере (я с А1 вставляю, и без рюшечек...), но думаю годится.
В файле только код, вставляет данные в новую книгу. В общем, всё, как выше написано, с добавкой про нули.
Вложения
Тип файла: zip Книга1.zip (9.0 Кб, 15 просмотров)
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 06.09.2010 в 21:39.
Hugo121 вне форума Ответить с цитированием
Старый 07.09.2010, 13:09   #10
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Ну вот так,.
Hugo121!
Жму, GO!
Отлично, указываю на файл, выдает ошибку и выделяет желтым
Код:
If FName <> False Then
valerij вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Из программы выгружается отчет (плохо), его нужно преобразовать в другой вид (хорошо) Anutik Microsoft Office Excel 4 23.09.2009 11:42
Сохранял один код, а открывается другой fs444 Общие вопросы C/C++ 7 18.08.2009 18:52
переделать один документ в другой Tirendus Microsoft Office Excel 4 16.04.2009 11:59
преобразовать два формата даты в один olimpus Microsoft Office Excel 2 18.09.2008 09:16