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

Вход

Регистрация

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

 

= Мир MS Excel/Проработка макроса с различными условиями и сохранение файла - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Проработка макроса с различными условиями и сохранение файла (Макросы/Sub)
Проработка макроса с различными условиями и сохранение файла
Sashagor1982 Дата: Пятница, 05.02.2016, 20:40 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 160
Репутация: 12 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте уважаемые форумчане. Вопрос состоит в следующем. Файл-пример содержит макрос ПОСЛУЖНАЯ КАРТА, который при вводе личного номера в ячейку F2 формирует некоторую карту на человека. Необходимо создать программу которая создавала и сохраняла подобную карту на всех людей из вкладки База, при этом файл имел название соответствующее Личному номеру и содержал только Листы ПК1 и ПК2. Заранее спасибо...
К сообщению приложен файл: 047.xls(90Kb)
 
Ответить
СообщениеЗдравствуйте уважаемые форумчане. Вопрос состоит в следующем. Файл-пример содержит макрос ПОСЛУЖНАЯ КАРТА, который при вводе личного номера в ячейку F2 формирует некоторую карту на человека. Необходимо создать программу которая создавала и сохраняла подобную карту на всех людей из вкладки База, при этом файл имел название соответствующее Личному номеру и содержал только Листы ПК1 и ПК2. Заранее спасибо...

Автор - Sashagor1982
Дата добавления - 05.02.2016 в 20:40
_Boroda_ Дата: Пятница, 05.02.2016, 22:38 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 9377
Репутация: 3950 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Почитайте вот это: слияние. Возможно, Вам подойдет.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПочитайте вот это: слияние. Возможно, Вам подойдет.

Автор - _Boroda_
Дата добавления - 05.02.2016 в 22:38
Sashagor1982 Дата: Суббота, 06.02.2016, 13:05 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 160
Репутация: 12 ±
Замечаний: 0% ±

Excel 2007
Дело в том, что файл должен так и остаться в excel. Суть программы в том, что бы не менять личные номера в ручную, запускать макрос, потом сохранять и т.д. как нидудь автоматизировать процесс.
 
Ответить
СообщениеДело в том, что файл должен так и остаться в excel. Суть программы в том, что бы не менять личные номера в ручную, запускать макрос, потом сохранять и т.д. как нидудь автоматизировать процесс.

Автор - Sashagor1982
Дата добавления - 06.02.2016 в 13:05
gling Дата: Суббота, 06.02.2016, 14:07 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1352
Репутация: 326 ±
Замечаний: 0% ±

2010
Здравствуйте. Мне не понятно для чего плодить кучу файлов если данные в карточке берутся из базы. Есть база, есть форма карты, выбрал в форме ФИО, катра заполнилась данными. Вы представляете как потом в этой куче искать нужную фамилию.Если хотите сохранять отдельым файлом, нет проблем, Выделить два листа и сохранить в новой книге с нужным именем. То же самое слияние. Оно удобно когда нужно печатать сразу много карточек, а по одной можно и без помощи Ворда справиться.
К сообщению приложен файл: 8254804.xls(84Kb)


Сообщение отредактировал gling - Суббота, 06.02.2016, 21:27
 
Ответить
СообщениеЗдравствуйте. Мне не понятно для чего плодить кучу файлов если данные в карточке берутся из базы. Есть база, есть форма карты, выбрал в форме ФИО, катра заполнилась данными. Вы представляете как потом в этой куче искать нужную фамилию.Если хотите сохранять отдельым файлом, нет проблем, Выделить два листа и сохранить в новой книге с нужным именем. То же самое слияние. Оно удобно когда нужно печатать сразу много карточек, а по одной можно и без помощи Ворда справиться.

Автор - gling
Дата добавления - 06.02.2016 в 14:07
Roman777 Дата: Суббота, 06.02.2016, 14:46 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 703
Репутация: 75 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Sashagor1982, попробуйте такой:


Хотя я тоже не противник плодить много файлов и предпочёл бы на Вашем месте формулами всё сделать...
К сообщению приложен файл: 1692745.xls(98Kb)


Много чего не знаю!!!!
 
Ответить
СообщениеSashagor1982, попробуйте такой:


Хотя я тоже не противник плодить много файлов и предпочёл бы на Вашем месте формулами всё сделать...

Автор - Roman777
Дата добавления - 06.02.2016 в 14:46
al-Ex Дата: Суббота, 06.02.2016, 15:48 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 149
Репутация: 53 ±
Замечаний: 0% ±

Excel 2010
Цитата
Необходимо создать программу которая создавала и сохраняла подобную карту на всех людей из вкладки База

как-то так:
[vba]
Код
Sub MacroSaveResalt()
'
Dim MyPath As String
Dim MyFileBase As String
Dim MyFilename As String
Dim MyPath_Filename As String
'
MyFileBase = "047_V0.xls" ' тут имя исходного файла с базой
MyPath = ActiveWorkbook.Path
MyFilename = CStr(Workbooks(MyFileBase).Sheets("ПК 1").Range("F2").Value) & ".xls" 'имя нового файла
MyPath_Filename = MyPath & "\" & CStr(Workbooks(MyFileBase).Sheets("ПК 1").Range("F2").Value) & ".xls"

Application.DisplayAlerts = False

    Sheets("ПК 1").Select
    Sheets("ПК 1").Copy
         ActiveWorkbook.SaveAs Filename:=MyPath_Filename _
        , FileFormat:=xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
   
    Workbooks(MyFileBase).Sheets("ПК 2").Copy After:=Workbooks(MyFilename).Sheets(1)
       
    Workbooks(MyFilename).Sheets("ПК 1").Select
    Workbooks(MyFilename).Save
Application.DisplayAlerts = True
End Sub
[/vba]
К сообщению приложен файл: 047_V0.xls(90Kb)


Сообщение отредактировал al-Ex - Суббота, 06.02.2016, 20:49
 
Ответить
Сообщение
Цитата
Необходимо создать программу которая создавала и сохраняла подобную карту на всех людей из вкладки База

как-то так:
[vba]
Код
Sub MacroSaveResalt()
'
Dim MyPath As String
Dim MyFileBase As String
Dim MyFilename As String
Dim MyPath_Filename As String
'
MyFileBase = "047_V0.xls" ' тут имя исходного файла с базой
MyPath = ActiveWorkbook.Path
MyFilename = CStr(Workbooks(MyFileBase).Sheets("ПК 1").Range("F2").Value) & ".xls" 'имя нового файла
MyPath_Filename = MyPath & "\" & CStr(Workbooks(MyFileBase).Sheets("ПК 1").Range("F2").Value) & ".xls"

Application.DisplayAlerts = False

    Sheets("ПК 1").Select
    Sheets("ПК 1").Copy
         ActiveWorkbook.SaveAs Filename:=MyPath_Filename _
        , FileFormat:=xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
   
    Workbooks(MyFileBase).Sheets("ПК 2").Copy After:=Workbooks(MyFilename).Sheets(1)
       
    Workbooks(MyFilename).Sheets("ПК 1").Select
    Workbooks(MyFilename).Save
Application.DisplayAlerts = True
End Sub
[/vba]

Автор - al-Ex
Дата добавления - 06.02.2016 в 15:48
Sashagor1982 Дата: Суббота, 06.02.2016, 21:39 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 160
Репутация: 12 ±
Замечаний: 0% ±

Excel 2007
Спасибо, но можно доработать, чтобы махом появлялась куча файлов на всех людей из Базы. Суть макроса в том, что бы не сидеть и не делать на каждого персонально, здесь всего лишь пример и карты и людей, реальная карта состоит из 5 листов и людей больше 2000, в ручную накладно, это ответ на вопросы.
 
Ответить
СообщениеСпасибо, но можно доработать, чтобы махом появлялась куча файлов на всех людей из Базы. Суть макроса в том, что бы не сидеть и не делать на каждого персонально, здесь всего лишь пример и карты и людей, реальная карта состоит из 5 листов и людей больше 2000, в ручную накладно, это ответ на вопросы.

Автор - Sashagor1982
Дата добавления - 06.02.2016 в 21:39
al-Ex Дата: Суббота, 06.02.2016, 23:11 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 149
Репутация: 53 ±
Замечаний: 0% ±

Excel 2010
доработать, чтобы махом появлялась куча файлов на всех людей из Базы.


Ну в общем-то, задача ясна,
сначала нужно Ваш макрос доработать "Послужная_карта()", чтоб он оба листа (ПК1 и ПК2) корректно фомировал.
Потом запустить в цикле
0.Для каждого значения "Личный номер" из списка "База"
выполнить:
1. "Послужная_карта()"
2. "MacroSaveResalt()"
End
Вот и получите пачку файлов на каждого "клиента" из Базы.
так-то проблем не вижу, но делать это скучно,
попробуйте во Фриланс запрос сделать, за бабло сделают Вам.
 
Ответить
Сообщение
доработать, чтобы махом появлялась куча файлов на всех людей из Базы.


Ну в общем-то, задача ясна,
сначала нужно Ваш макрос доработать "Послужная_карта()", чтоб он оба листа (ПК1 и ПК2) корректно фомировал.
Потом запустить в цикле
0.Для каждого значения "Личный номер" из списка "База"
выполнить:
1. "Послужная_карта()"
2. "MacroSaveResalt()"
End
Вот и получите пачку файлов на каждого "клиента" из Базы.
так-то проблем не вижу, но делать это скучно,
попробуйте во Фриланс запрос сделать, за бабло сделают Вам.

Автор - al-Ex
Дата добавления - 06.02.2016 в 23:11
Sashagor1982 Дата: Суббота, 06.02.2016, 23:25 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 160
Репутация: 12 ±
Замечаний: 0% ±

Excel 2007
Да нет, за бабло не надо)))) Это самое простое.... Вот задать вопрос, изучить ваше решение, адаптировать под оригинальную программу и получить результат вот это сила...
 
Ответить
СообщениеДа нет, за бабло не надо)))) Это самое простое.... Вот задать вопрос, изучить ваше решение, адаптировать под оригинальную программу и получить результат вот это сила...

Автор - Sashagor1982
Дата добавления - 06.02.2016 в 23:25
Sashagor1982 Дата: Воскресенье, 07.02.2016, 00:00 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 160
Репутация: 12 ±
Замечаний: 0% ±

Excel 2007
[vba]
Код
ActiveWorkbook.SaveAs Filename:=MyPath_Filename _
        , FileFormat:=xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
[/vba]
Можно спросить, что делает данная строка?
 
Ответить
Сообщение[vba]
Код
ActiveWorkbook.SaveAs Filename:=MyPath_Filename _
        , FileFormat:=xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
[/vba]
Можно спросить, что делает данная строка?

Автор - Sashagor1982
Дата добавления - 07.02.2016 в 00:00
Alaectan Дата: Воскресенье, 07.02.2016, 01:45 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Сохраняет рабочую книгу. Это если кратко.
 
Ответить
СообщениеСохраняет рабочую книгу. Это если кратко.

Автор - Alaectan
Дата добавления - 07.02.2016 в 01:45
al-Ex Дата: Воскресенье, 07.02.2016, 05:01 | Сообщение № 12
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 149
Репутация: 53 ±
Замечаний: 0% ±

Excel 2010
Цитата
что делает данная строка?

[vba]
Код

Sheets("ПК 1").Copy
        ActiveWorkbook.SaveAs Filename:=MyPath_Filename _
        , FileFormat:=xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
[/vba]
Если точнее:
сохраняет "Лист ПК1"
в новом файле формата " .xls"
наименование и полный путь которого, в переменной "MyPath_Filename"


Сообщение отредактировал al-Ex - Воскресенье, 07.02.2016, 05:25
 
Ответить
Сообщение
Цитата
что делает данная строка?

[vba]
Код

Sheets("ПК 1").Copy
        ActiveWorkbook.SaveAs Filename:=MyPath_Filename _
        , FileFormat:=xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
[/vba]
Если точнее:
сохраняет "Лист ПК1"
в новом файле формата " .xls"
наименование и полный путь которого, в переменной "MyPath_Filename"

Автор - al-Ex
Дата добавления - 07.02.2016 в 05:01
Sashagor1982 Дата: Воскресенье, 07.02.2016, 15:08 | Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 160
Репутация: 12 ±
Замечаний: 0% ±

Excel 2007
А заменить строкой аналогичной ПК 2 можно?
 
Ответить
СообщениеА заменить строкой аналогичной ПК 2 можно?

Автор - Sashagor1982
Дата добавления - 07.02.2016 в 15:08
Udik Дата: Воскресенье, 07.02.2016, 15:18 | Сообщение № 14
Группа: Друзья
Ранг: Старожил
Сообщений: 1219
Репутация: 153 ±
Замечаний: 0% ±

Excel 2013
можно подставить любое имя существующего листа

сохраняет "Лист ПК1"

э, скорее лист "ПК 1" почувствуйте разницу B)


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com


Сообщение отредактировал Udik - Воскресенье, 07.02.2016, 15:23
 
Ответить
Сообщениеможно подставить любое имя существующего листа

сохраняет "Лист ПК1"

э, скорее лист "ПК 1" почувствуйте разницу B)

Автор - Udik
Дата добавления - 07.02.2016 в 15:18
gling Дата: Воскресенье, 07.02.2016, 15:20 | Сообщение № 15
Группа: Друзья
Ранг: Старожил
Сообщений: 1352
Репутация: 326 ±
Замечаний: 0% ±

2010
Цитата
адаптировать под оригинальную программу и получить результат вот это сила...

Попробуйте записать макрорекордером: выделить несколько листов книги--ПКМ--Переместить или скопировать--Создать копию галочка--выбрать новая книга--Сохранить как--Указать где присвоив имя книге. Получится макрос написанный ниже. Сравните с тем что уже Вам предложили. Поймете что и чем заменить. В макросе выделены сразу 2 лиса Лист1 и Лист2.[vba]
Код
Sub Макрос1()
'
' Макрос1 Макрос
'

'
    Sheets(Array("Лист1", "Лист2")).Select
    Sheets("Лист2").Activate
    Sheets(Array("Лист1", "Лист2")).Copy
    ChDir "C:\Users\user\Desktop"
    ActiveWorkbook.SaveAs Filename:="C:\Users\user\Desktop\Проба.xlsx", _
        FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
End Sub
[/vba]


Сообщение отредактировал gling - Воскресенье, 07.02.2016, 15:23
 
Ответить
Сообщение
Цитата
адаптировать под оригинальную программу и получить результат вот это сила...

Попробуйте записать макрорекордером: выделить несколько листов книги--ПКМ--Переместить или скопировать--Создать копию галочка--выбрать новая книга--Сохранить как--Указать где присвоив имя книге. Получится макрос написанный ниже. Сравните с тем что уже Вам предложили. Поймете что и чем заменить. В макросе выделены сразу 2 лиса Лист1 и Лист2.[vba]
Код
Sub Макрос1()
'
' Макрос1 Макрос
'

'
    Sheets(Array("Лист1", "Лист2")).Select
    Sheets("Лист2").Activate
    Sheets(Array("Лист1", "Лист2")).Copy
    ChDir "C:\Users\user\Desktop"
    ActiveWorkbook.SaveAs Filename:="C:\Users\user\Desktop\Проба.xlsx", _
        FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
End Sub
[/vba]

Автор - gling
Дата добавления - 07.02.2016 в 15:20
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Проработка макроса с различными условиями и сохранение файла (Макросы/Sub)
Страница 1 из 11
Поиск:

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