Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Печать нескольких файлов макросом - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Печать нескольких файлов макросом
Макрописец Дата: Среда, 24.06.2015, 14:51 | Сообщение № 1
Группа: Заблокированные
Ранг: Форумчанин
Сообщений: 128
Репутация: 7 ±
Замечаний: 100% ±

Excel 2010
Здравствуйте, уважаемые Хелперы и форумчане.
Как напечатать макросом открытый файл текущий лист - знаю. Но никак не могу сварганить макрос, чтобы печатал все файлы в папке, начиная с указанного (чтобы я мог указать с какого), и до текущего открытого, включая его. У меня названия файлов либо идут по датам (пример, 2015.04.01 и так до конца месяца, пропусков нет), либо по цифрам (1, 2..., аналогично пропусков нет и в порядке возрастания). А лучше если бы смотрел дату создания файла - указал файл - и печатать его, и все, созданные позже.
К сообщению приложен файл: 5655103.xlsm (7.8 Kb)


ТЕРПЕНИЕ И ТРУД - ВСЁ ПЕРЕТРУТ!
 
Ответить
СообщениеЗдравствуйте, уважаемые Хелперы и форумчане.
Как напечатать макросом открытый файл текущий лист - знаю. Но никак не могу сварганить макрос, чтобы печатал все файлы в папке, начиная с указанного (чтобы я мог указать с какого), и до текущего открытого, включая его. У меня названия файлов либо идут по датам (пример, 2015.04.01 и так до конца месяца, пропусков нет), либо по цифрам (1, 2..., аналогично пропусков нет и в порядке возрастания). А лучше если бы смотрел дату создания файла - указал файл - и печатать его, и все, созданные позже.

Автор - Макрописец
Дата добавления - 24.06.2015 в 14:51
Макрописец Дата: Среда, 24.06.2015, 14:53 | Сообщение № 2
Группа: Заблокированные
Ранг: Форумчанин
Сообщений: 128
Репутация: 7 ±
Замечаний: 100% ±

Excel 2010
Упс, кажись не туда тему отправил? А если есть решение и макросами и формулами - куда писать? Модераторы, перенесите тему в нужный раздел, пожалуйста.


ТЕРПЕНИЕ И ТРУД - ВСЁ ПЕРЕТРУТ!
 
Ответить
СообщениеУпс, кажись не туда тему отправил? А если есть решение и макросами и формулами - куда писать? Модераторы, перенесите тему в нужный раздел, пожалуйста.

Автор - Макрописец
Дата добавления - 24.06.2015 в 14:53
KSV Дата: Среда, 24.06.2015, 15:17 | Сообщение № 3
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
на чистом VBA (без подключения каких-либо библиотек) можно, например, так:
[vba]
Код
Sub PrintFiles()
       Dim p$, f$
       p = "C:\Users\User\Downloads\DDE\"
       f = Dir$(p & "*.xls*")
       Do While Len(f)
           If FileDateTime(p & f) >= #5/27/2015# Then
               With Workbooks.Open(p & f)
                   .PrintOut
                   .Close False
               End With
           End If
           f = Dir$
       Loop
End Sub
[/vba]

[p.s.]Спасибо нашим замечательным ТС! Где бы мы без вас брали пустые файлы?! :D [/p.s.]


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333


Сообщение отредактировал KSV - Среда, 24.06.2015, 15:19
 
Ответить
Сообщениена чистом VBA (без подключения каких-либо библиотек) можно, например, так:
[vba]
Код
Sub PrintFiles()
       Dim p$, f$
       p = "C:\Users\User\Downloads\DDE\"
       f = Dir$(p & "*.xls*")
       Do While Len(f)
           If FileDateTime(p & f) >= #5/27/2015# Then
               With Workbooks.Open(p & f)
                   .PrintOut
                   .Close False
               End With
           End If
           f = Dir$
       Loop
End Sub
[/vba]

[p.s.]Спасибо нашим замечательным ТС! Где бы мы без вас брали пустые файлы?! :D [/p.s.]

Автор - KSV
Дата добавления - 24.06.2015 в 15:17
Макрописец Дата: Среда, 24.06.2015, 15:32 | Сообщение № 4
Группа: Заблокированные
Ранг: Форумчанин
Сообщений: 128
Репутация: 7 ±
Замечаний: 100% ±

Excel 2010
KSV,
А где здесь прописано выскакивающее окошко для выбора файла?


ТЕРПЕНИЕ И ТРУД - ВСЁ ПЕРЕТРУТ!
 
Ответить
СообщениеKSV,
А где здесь прописано выскакивающее окошко для выбора файла?

Автор - Макрописец
Дата добавления - 24.06.2015 в 15:32
KSV Дата: Среда, 24.06.2015, 15:59 | Сообщение № 5
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Насколько я понял из вашего первого сообщения, вам нужен был просто пример, а не готовое решение...
И если этот пример чуть доделать, то получилось бы готовое решение:
[vba]
Код
Private Sub PrintFiles()
     Dim i&, d#, p$, f$
     f = Application.GetOpenFilename("Файлы Excel,*.xls*")
     If f = "False" Then Exit Sub
     i = InStrRev(f, "\")
     p = Left$(f, i)
     f = Mid$(f, i + 1)
     d = FileDateTime(p & f)
     f = Dir$(p & "*.xls*")
     Do While Len(f)
         If FileDateTime(p & f) >= d Then
             With Workbooks.Open(p & f)
                 .PrintOut
                 .Close False
             End With
         End If
         f = Dir$
     Loop
End Sub
[/vba]
К сообщению приложен файл: 5938144.xlsm (16.3 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
СообщениеНасколько я понял из вашего первого сообщения, вам нужен был просто пример, а не готовое решение...
И если этот пример чуть доделать, то получилось бы готовое решение:
[vba]
Код
Private Sub PrintFiles()
     Dim i&, d#, p$, f$
     f = Application.GetOpenFilename("Файлы Excel,*.xls*")
     If f = "False" Then Exit Sub
     i = InStrRev(f, "\")
     p = Left$(f, i)
     f = Mid$(f, i + 1)
     d = FileDateTime(p & f)
     f = Dir$(p & "*.xls*")
     Do While Len(f)
         If FileDateTime(p & f) >= d Then
             With Workbooks.Open(p & f)
                 .PrintOut
                 .Close False
             End With
         End If
         f = Dir$
     Loop
End Sub
[/vba]

Автор - KSV
Дата добавления - 24.06.2015 в 15:59
Макрописец Дата: Среда, 24.06.2015, 16:21 | Сообщение № 6
Группа: Заблокированные
Ранг: Форумчанин
Сообщений: 128
Репутация: 7 ±
Замечаний: 100% ±

Excel 2010
KSV,
Большущее спасибо. Просто в ВБА не очень, и не всегда понятно, в какую часть кода вставлять, например выскакивающее окошко.


ТЕРПЕНИЕ И ТРУД - ВСЁ ПЕРЕТРУТ!
 
Ответить
СообщениеKSV,
Большущее спасибо. Просто в ВБА не очень, и не всегда понятно, в какую часть кода вставлять, например выскакивающее окошко.

Автор - Макрописец
Дата добавления - 24.06.2015 в 16:21
KSV Дата: Среда, 24.06.2015, 16:30 | Сообщение № 7
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Пожалуйста!
[p.s.]В коде учитывается не только дата выбранного файла, но и время, поэтому файлы с той же датой, но созданные ранее по времени, печататься не будут (т.е., именно так, как просили).
Если время учитывать не нужно, то удалите d# из первой строки кода, а далее в коде замените в двух местах d на i[/p.s.]


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
СообщениеПожалуйста!
[p.s.]В коде учитывается не только дата выбранного файла, но и время, поэтому файлы с той же датой, но созданные ранее по времени, печататься не будут (т.е., именно так, как просили).
Если время учитывать не нужно, то удалите d# из первой строки кода, а далее в коде замените в двух местах d на i[/p.s.]

Автор - KSV
Дата добавления - 24.06.2015 в 16:30
Макрописец Дата: Среда, 24.06.2015, 17:07 | Сообщение № 8
Группа: Заблокированные
Ранг: Форумчанин
Сообщений: 128
Репутация: 7 ±
Замечаний: 100% ±

Excel 2010
Огромнейшее спасибо!!!!!!!!


ТЕРПЕНИЕ И ТРУД - ВСЁ ПЕРЕТРУТ!
 
Ответить
СообщениеОгромнейшее спасибо!!!!!!!!

Автор - Макрописец
Дата добавления - 24.06.2015 в 17:07
Макрописец Дата: Среда, 24.06.2015, 18:07 | Сообщение № 9
Группа: Заблокированные
Ранг: Форумчанин
Сообщений: 128
Репутация: 7 ±
Замечаний: 100% ±

Excel 2010
Простите, макрос-то вроде работает, но я его не вижу в списке макросов - приходится из ВБА запускать. Как это исправить?


ТЕРПЕНИЕ И ТРУД - ВСЁ ПЕРЕТРУТ!
 
Ответить
СообщениеПростите, макрос-то вроде работает, но я его не вижу в списке макросов - приходится из ВБА запускать. Как это исправить?

Автор - Макрописец
Дата добавления - 24.06.2015 в 18:07
KSV Дата: Среда, 24.06.2015, 18:09 | Сообщение № 10
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Уберите слово Private, чтоб осталось: Sub PrintFiles()


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
СообщениеУберите слово Private, чтоб осталось: Sub PrintFiles()

Автор - KSV
Дата добавления - 24.06.2015 в 18:09
Макрописец Дата: Среда, 24.06.2015, 18:10 | Сообщение № 11
Группа: Заблокированные
Ранг: Форумчанин
Сообщений: 128
Репутация: 7 ±
Замечаний: 100% ±

Excel 2010
А если со словом Private - никак?


ТЕРПЕНИЕ И ТРУД - ВСЁ ПЕРЕТРУТ!
 
Ответить
СообщениеА если со словом Private - никак?

Автор - Макрописец
Дата добавления - 24.06.2015 в 18:10
KSV Дата: Среда, 24.06.2015, 18:16 | Сообщение № 12
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
А для чего оно вам? :)
Ключевое слово Private и нужно для того, чтобы область видимости процедуры была только на уровне модуля, в котором она объявлена, а если вы хотите видеть ее извне, то нужно убрать Private.


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
СообщениеА для чего оно вам? :)
Ключевое слово Private и нужно для того, чтобы область видимости процедуры была только на уровне модуля, в котором она объявлена, а если вы хотите видеть ее извне, то нужно убрать Private.

Автор - KSV
Дата добавления - 24.06.2015 в 18:16
Макрописец Дата: Среда, 24.06.2015, 18:21 | Сообщение № 13
Группа: Заблокированные
Ранг: Форумчанин
Сообщений: 128
Репутация: 7 ±
Замечаний: 100% ±

Excel 2010
KSV,
Я просто ещё не дошёл до Private. Огромнейшее Вам спасибо. К сожалению, второй раз (30 мин назад уже увеличивал) увеличить репутацию пока не даёт. Удачи во всём.


ТЕРПЕНИЕ И ТРУД - ВСЁ ПЕРЕТРУТ!
 
Ответить
СообщениеKSV,
Я просто ещё не дошёл до Private. Огромнейшее Вам спасибо. К сожалению, второй раз (30 мин назад уже увеличивал) увеличить репутацию пока не даёт. Удачи во всём.

Автор - Макрописец
Дата добавления - 24.06.2015 в 18:21
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!