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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2009, 04:25   #1
ru3000
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 163
Восклицание Шеф дал задание составить список файлов: актов, счет-фактур. А их ТЫСЯЧИ!!!

Ребята, засада! Шеф дал задание составить список-перечень всех файлов excel: актов, счет-фактур. А их ТЫСЯЧИ!!! Единственное радует, что наши бухгалтера грамотно называли все файлы - если это Счет-фактура, то название файла именно такое: "Счет-фактура ..."; если Товарная накладная, то - "ТН ...". Подскажите плиз какое-нибудь решение, по автоматизации процесса.

Дано: папка с файлами с названиями типа:
Счет №000001-09 от 01.01.09.xlsx
Счет-фактура №СФ-000002-09 от 02.02.09.xlsx
ТН-000003-09 от 03.03.09.xlsx

Где все числовые переменны.

Надо: получить список файлов в виде: см. вложение

Заранее спасибо!
Вложения
Тип файла: zip Книга1.zip (7.3 Кб, 36 просмотров)
ru3000 вне форума Ответить с цитированием
Старый 17.10.2009, 10:10   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Решение, на самом деле, очень простое:

1) Открываем папку с файлами в браузере Opera
Видим что-то вроде этого:



2) Копируем список файлов, и вставляем на лист excel
3) При помощи простейших формул в соседних столбцах получаем даты и номера документов.

Вот вариант с использованием макросов:

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

Открываете каким-нибудь командером нужную папку, пишете
dir /s >c:\filelist.txt
список всех файлов с данной папки и всех вложенных у вас в файле c:\filelist.txt.
если нужные файлы разбросаны по разным папкам, на разных дисках
dir /s >>c:\filelist.txt
будет их последовательно добавлять в c:\filelist.txt.
Откройте файл экселем и начинайте думать... как это богатство представить на ясные очи шефу. для начала - можно в необработанном виде и проследить реакцию, чтобы понять насколько вы близки к выполнению задания.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 17.10.2009, 16:38   #4
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте ru3000.
Удачный способ предложил IgorGO, можно дополнить только тем, что команда DIR работает с маской ввода :
dir "Счет*.xlsx" /s >c:\filelist.txt
и выходной файл (filelist.txt) создается в 866 (DOS) кодировке.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 18.10.2009, 16:22   #5
ru3000
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 163
По умолчанию

Всем огромное спасибо, особенно EducatedFool. Начальству очень понравилось "моя" ) оперативность. Правда макросы пришлось немного переделать под себя, но все-равно все круто. Спасибо!
И, как говорится: "Нет худа без добра." Теперь задача поставлена, чтобы из каждого файла экпортировалось: Получатель и Сумма. Пробовал своими силами, но ничего не вышло. Сложность в том, что эти данные в каждом файле на разных местах и ни как их отследить не получается. Помогите разобраться, плиз!
Вложения
Тип файла: zip Новая папка.zip (71.8 Кб, 22 просмотров)
ru3000 вне форума Ответить с цитированием
Старый 18.10.2009, 17:23   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Начальству очень понравилось "моя" ) оперативность.
В таком случае, пора уже делиться с нами частью своей зарплаты

Цитата:
Сложность в том, что эти данные в каждом файле на разных местах и ни как их отследить не получается. Помогите разобраться, плиз!
Пришлось значительно усложнить код.
Вот что получилось:

EducatedFool вне форума Ответить с цитированием
Старый 18.10.2009, 20:01   #7
ru3000
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 163
По умолчанию

Вот это да!!!
Вот это круть! Спасибо огромейшее. Вы не представляете как меня выручили. Все прекрасно работает. Даже больше того, указал сетевую папку и, о чудо, все работает, хотя вовсе не был уверен, что макрос сможет увидеть сетевой путь. Еще раз спасибо!
EducatedFool, Вы лучший!
ru3000 вне форума Ответить с цитированием
Старый 19.10.2009, 00:08   #8
ru3000
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 163
По умолчанию

Уважаемый EducatedFool, у меня никак не получается прописать в формуле поиска то, чтобы формула искала значения не в конкретных ячейках, как то: "c18" и "g24", а сначала искала бы значение "Заказчик:" и ивлекала бы значение на одну ячейку правее. И (res2), что бы формула искала значение "Всего к оплате:" и также звлекала бы значение на одну ячейку правее. Ведь в каждом файле разное кол-во строк и искомые данные все время меняют свое место. А так есть возможность привязки поиска к ячейке с постоянным значением.
Код:
   
        Case filename Like "Счет *":
            v = "Счет"
            n = Trim(Mid(Split(filename, " ")(1), 2))
            res1 = "c18": res2 = "g24": GetInfoXL filenameL, res1, res2
Заранее, спасибо.
ru3000 вне форума Ответить с цитированием
Старый 19.10.2009, 02:04   #9
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Ну, теперь Вам точно со мной не рассчитаться

Проверяйте:

EducatedFool вне форума Ответить с цитированием
Старый 19.10.2009, 20:55   #10
ru3000
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 163
По умолчанию

EducatedFool, человечеще! Спасибо за содействие.
Все ок, только есть один минус. При сканировании большого объема файлов с расширением *.doc комп начисто зависает. Диспетчер задач показывает память забитую сотнями процессами WINWORD.exe. Пытался в код впихнуть Shell "Cmd /x/c taskkill /f /im WINWORD.exe", но все безрезультатно. Подскажите, плиз., решение.

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


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Необходимо в excel составить список баз 1С 8.1 и 1С 7.7 ru3000 Microsoft Office Excel 1 14.10.2009 22:21
Индивидуальное задание(список студентов, библиотека) AlverX Microsoft Office Access 0 24.05.2009 18:29
Приложение которое выводит список файлов текущего каталога и при клике на любом из файлов откроет его. LimanSSk Общие вопросы Delphi 2 18.05.2009 16:03
В PASCAL .Составить список слов начинающихся на конкретную букву Waia Помощь студентам 1 07.11.2008 18:20
Составить линейный список, Среда Delphi Kreaman Помощь студентам 1 11.06.2008 19:54