Borisenkoff Опубликовано 2 октября, 2009 Жалоба Поделиться Опубликовано 2 октября, 2009 Друзья, кто разбирается в макросах Экселя, помогите, пожалуйста, любителю))) Есть папка, в которой находится 64 экселевских файла с одинаковыми (по формату) таблицами. Таблица содержит сведения об операциях по кассе (счета и суммы). Мне нужно вытащить количество операций по заданному счёту, которые меньше или равны 30 тысячам. Сейчас я делаю это через автофильтр, заходя в каждый файл и смотрю, какое количество записей найдено. Минимум, мне нужен скрипт, отвечающий на вопрос: какое количество записей содержит таблица, если в колонке А есть такой-то счет, а в колонке В при этом сумма меньше или равна 30 тысячам. Имея такой скрипт я смогу написать макрос, но он будет, во-первых, большим, а. во-вторых, он будет завязан на именах файлов. Т.е. мне нельзя будет использовать файлы с таблицами с любыми именами, только с определёнными. Поэтому... максимум, нужен скрипт, который будет открывать файлы Эксель из указанной папки, независимо от того, как они называются. Т.е. он должен как бы перебирать их: открыл, взял данные, вставил их в нужное место (в др экселевский файл), закрыл. И так со всеми файлами. Сумбурно наверно излагаю, но, как умею. Может ли кто помочь?)) Ссылка на комментарий Поделиться на другие сайты Поделиться
Borisenkoff Опубликовано 2 октября, 2009 Автор Жалоба Поделиться Опубликовано 2 октября, 2009 Чьёрт побьери! (с) Думал, что в оффтопике пишу, перекиньте, пожалуйста. Ссылка на комментарий Поделиться на другие сайты Поделиться
Borisenkoff Опубликовано 3 октября, 2009 Автор Жалоба Поделиться Опубликовано 3 октября, 2009 Слушайте, я один такой до фига умный в этой ветке?)))) Ссылка на комментарий Поделиться на другие сайты Поделиться
Hendalph Опубликовано 4 октября, 2009 Жалоба Поделиться Опубликовано 4 октября, 2009 КМК, тут не обойтись без приложения стороннего... написанного на чем угодно... ибо первой в голову пришла мысль тоже с перебором имен файлов, больше идей нет =( Ссылка на комментарий Поделиться на другие сайты Поделиться
Sab252 Опубликовано 4 октября, 2009 Жалоба Поделиться Опубликовано 4 октября, 2009 Лучше всётаки спрашивать где-то здесь Excel форум Ссылка на комментарий Поделиться на другие сайты Поделиться
Ифыч Опубликовано 7 октября, 2009 Жалоба Поделиться Опубликовано 7 октября, 2009 Если все еще актуально, то могу написать софтину, которая все это буит делать. Желательно в личку:)) Ссылка на комментарий Поделиться на другие сайты Поделиться
Borisenkoff Опубликовано 8 октября, 2009 Автор Жалоба Поделиться Опубликовано 8 октября, 2009 Hendalph, Ифыч, не не, с софтиной заморачиваться для меня слишком сложно будет. Я хочу своими силами справиться. Скажите хотя бы, каким скриптом выбрать, сколько в колонке сумм меньше или равной 30 тысячам? Ссылка на комментарий Поделиться на другие сайты Поделиться
Ифыч Опубликовано 8 октября, 2009 Жалоба Поделиться Опубликовано 8 октября, 2009 Я в Excel'е не силен. Могу только подсказать, что можно воспользоваться функцией БСЧЁТ. А вообще почитай хелп к Excel'ю, там много всего полезного.:) Ссылка на комментарий Поделиться на другие сайты Поделиться
IIuTa4oK Опубликовано 13 октября, 2009 Жалоба Поделиться Опубликовано 13 октября, 2009 Borisenkoff, Можете примерчик скинуть на iiuta4ok (псина) rambler (тычка) ru Чтобы понятно было, какова структура файла. Ссылка на комментарий Поделиться на другие сайты Поделиться
Borisenkoff Опубликовано 13 октября, 2009 Автор Жалоба Поделиться Опубликовано 13 октября, 2009 IIuTa4oK, С почтой у меня мороки много. Из столбцов G и H мне нужно выбрать, сколько было операцйи по счету 30232810800002000001 на сумму меньше или равно 30 000. И так в 64 файлах. Ссылка на комментарий Поделиться на другие сайты Поделиться
IIuTa4oK Опубликовано 13 октября, 2009 Жалоба Поделиться Опубликовано 13 октября, 2009 Borisenkoff, Сегодня вечером или завтра утром выложу вам код. Ссылка на комментарий Поделиться на другие сайты Поделиться
САНЕК~ Опубликовано 13 октября, 2009 Жалоба Поделиться Опубликовано 13 октября, 2009 Все ответы ЗДЕСЬ!!! Ссылка на комментарий Поделиться на другие сайты Поделиться
IIuTa4oK Опубликовано 13 октября, 2009 Жалоба Поделиться Опубликовано 13 октября, 2009 Borisenkoff, В файлах с данными один лист или несколько? Как они называются? У вас на компе разделитель точка или запятая? Попробуйте: Sub Выборка() Application.ScreenUpdating = False Set vyb = ActiveWorkbook.ActiveSheet ns = 1 vyb.Cells(1, 1) = "Название файла" vyb.Cells(1, 2) = "Дата операции" vyb.Cells(1, 3) = "Сумма" ' Переменные Mask = "*.xls" ' Маска файлов для отбора Path = "C:\Выписки\" 'Путь к файлам с выписками With Application.FileSearch .NewSearch .LookIn = Path .Filename = Mask .SearchSubFolders = False If .Execute() > 0 Then For k = 1 To .FoundFiles.Count Workbooks.Open Filename:=.FoundFiles(k), UpdateLinks:=0 dan = ActiveWorkbook.Name Set dan_l = ActiveWorkbook.ActiveSheet For i = 1 To ActiveCell.SpecialCells(xlLastCell).Row If dan_l.Cells(i, 7).Value = "30232810800002000001" And dan_l.Cells(i, 8).Value <= 30000 Then ns = ns + 1 vyb.Cells(ns, 1).Value = dan 'Название файла отчета vyb.Cells(ns, 2).Value = dan_l.Cells(i, 3).Value 'Дата операции vyb.Cells(ns, 3).Value = dan_l.Cells(i, 8).Value 'Сумма End If Next i Workbooks(dan).Close (0) Next k End If End With Application.ScreenUpdating = True End Sub Ссылка на комментарий Поделиться на другие сайты Поделиться
Borisenkoff Опубликовано 14 октября, 2009 Автор Жалоба Поделиться Опубликовано 14 октября, 2009 IIuTa4oK, круто)) Ничего не понимаю, сейчас попробую)) Ссылка на комментарий Поделиться на другие сайты Поделиться
Borisenkoff Опубликовано 14 октября, 2009 Автор Жалоба Поделиться Опубликовано 14 октября, 2009 Отлично! Друг, ты мне так помог!!! Просто офигенно!))) За 6 секунд инфа собралась! Просто чудо!) Сейчас подредактирую мелочи и отлично будет! If dan_l.Cells(i, 7).Value = "30232810800002000001" And dan_l.Cells(i, 8).Value <= 30000 Thenns = ns + 1vyb.Cells(ns, 1).Value = dan 'Название файла отчетаvyb.Cells(ns, 2).Value = dan_l.Cells(i, 3).Value 'Дата операцииvyb.Cells(ns, 3).Value = dan_l.Cells(i, 8).Value 'Сумма Как сделать, чтобы вместо названия файла отчета притягивалось название отделения? Оно в каждом файле в ячейке D5. И дата операции не нужна, пусть будет просто название отделения и сумму операции. Я допишу, чтобы он сводную таблицу делал и будет просто фантастика!) Ссылка на комментарий Поделиться на другие сайты Поделиться
IIuTa4oK Опубликовано 14 октября, 2009 Жалоба Поделиться Опубликовано 14 октября, 2009 Отлично! Друг, ты мне так помог!!! Просто офигенно!)))За 6 секунд инфа собралась! Просто чудо!) Сейчас подредактирую мелочи и отлично будет! Как сделать, чтобы вместо названия файла отчета притягивалось название отделения? Оно в каждом файле в ячейке D5. И дата операции не нужна, пусть будет просто название отделения и сумму операции. Я допишу, чтобы он сводную таблицу делал и будет просто фантастика!) Да не за что :rolleyes: Тогда так: Sub Выборка() Application.ScreenUpdating = False Set vyb = ActiveWorkbook.ActiveSheet ns = 1 vyb.Cells(1, 1) = "Название отделения" vyb.Cells(1, 2) = "Сумма операции" ' Переменные Mask = "*.xls" ' Маска файлов для отбора Path = "C:\Выписки\" 'Путь к файлам с выписками With Application.FileSearch .NewSearch .LookIn = Path .Filename = Mask .SearchSubFolders = False If .Execute() > 0 Then For k = 1 To .FoundFiles.Count Workbooks.Open Filename:=.FoundFiles(k), UpdateLinks:=0 dan = ActiveWorkbook.Name Set dan_l = ActiveWorkbook.ActiveSheet For i = 1 To ActiveCell.SpecialCells(xlLastCell).Row If dan_l.Cells(i, 7).Value = "30232810800002000001" And dan_l.Cells(i, 8).Value <= 30000 Then ns = ns + 1 vyb.Cells(ns, 1).Value = dan_l.Cells(5, 4).Value 'Название отделения vyb.Cells(ns, 2).Value = dan_l.Cells(i, 8).Value 'Сумма End If Next i Workbooks(dan).Close (0) Next k End If End With Application.ScreenUpdating = True End Sub Макросы офиса - классная штука! Ссылка на комментарий Поделиться на другие сайты Поделиться
Borisenkoff Опубликовано 14 октября, 2009 Автор Жалоба Поделиться Опубликовано 14 октября, 2009 IIuTa4oK, шикааарно! Отлично работает! Спасибо большущее!!! Ссылка на комментарий Поделиться на другие сайты Поделиться
IIuTa4oK Опубликовано 14 октября, 2009 Жалоба Поделиться Опубликовано 14 октября, 2009 IIuTa4oK, шикааарно! Отлично работает! Спасибо большущее!!! Ну хорошо :rolleyes: А точно все правильно работает? Проверяли? А то мало ли.. Ссылка на комментарий Поделиться на другие сайты Поделиться
Borisenkoff Опубликовано 14 октября, 2009 Автор Жалоба Поделиться Опубликовано 14 октября, 2009 IIuTa4oK, выборочно проверил - вроде всё сходится. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Заархивировано
Эта тема находится в архиве и закрыта для дальнейших ответов.