Здравствуйте уважаемые форумчане. Вопрос состоит в следующем. Файл-пример содержит макрос ПОСЛУЖНАЯ КАРТА, который при вводе личного номера в ячейку F2 формирует некоторую карту на человека. Необходимо создать программу которая создавала и сохраняла подобную карту на всех людей из вкладки База, при этом файл имел название соответствующее Личному номеру и содержал только Листы ПК1 и ПК2. Заранее спасибо...
Здравствуйте уважаемые форумчане. Вопрос состоит в следующем. Файл-пример содержит макрос ПОСЛУЖНАЯ КАРТА, который при вводе личного номера в ячейку F2 формирует некоторую карту на человека. Необходимо создать программу которая создавала и сохраняла подобную карту на всех людей из вкладки База, при этом файл имел название соответствующее Личному номеру и содержал только Листы ПК1 и ПК2. Заранее спасибо...Sashagor1982
Дело в том, что файл должен так и остаться в excel. Суть программы в том, что бы не менять личные номера в ручную, запускать макрос, потом сохранять и т.д. как нидудь автоматизировать процесс.
Дело в том, что файл должен так и остаться в excel. Суть программы в том, что бы не менять личные номера в ручную, запускать макрос, потом сохранять и т.д. как нидудь автоматизировать процесс.Sashagor1982
Здравствуйте. Мне не понятно для чего плодить кучу файлов если данные в карточке берутся из базы. Есть база, есть форма карты, выбрал в форме ФИО, катра заполнилась данными. Вы представляете как потом в этой куче искать нужную фамилию.Если хотите сохранять отдельым файлом, нет проблем, Выделить два листа и сохранить в новой книге с нужным именем. То же самое слияние. Оно удобно когда нужно печатать сразу много карточек, а по одной можно и без помощи Ворда справиться.
Здравствуйте. Мне не понятно для чего плодить кучу файлов если данные в карточке берутся из базы. Есть база, есть форма карты, выбрал в форме ФИО, катра заполнилась данными. Вы представляете как потом в этой куче искать нужную фамилию.Если хотите сохранять отдельым файлом, нет проблем, Выделить два листа и сохранить в новой книге с нужным именем. То же самое слияние. Оно удобно когда нужно печатать сразу много карточек, а по одной можно и без помощи Ворда справиться.gling
Необходимо создать программу которая создавала и сохраняла подобную карту на всех людей из вкладки База
как-то так: [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"
Workbooks(MyFilename).Sheets("ПК 1").Select Workbooks(MyFilename).Save Application.DisplayAlerts = True End Sub
[/vba]
Цитата
Необходимо создать программу которая создавала и сохраняла подобную карту на всех людей из вкладки База
как-то так: [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"
Спасибо, но можно доработать, чтобы махом появлялась куча файлов на всех людей из Базы. Суть макроса в том, что бы не сидеть и не делать на каждого персонально, здесь всего лишь пример и карты и людей, реальная карта состоит из 5 листов и людей больше 2000, в ручную накладно, это ответ на вопросы.
Спасибо, но можно доработать, чтобы махом появлялась куча файлов на всех людей из Базы. Суть макроса в том, что бы не сидеть и не делать на каждого персонально, здесь всего лишь пример и карты и людей, реальная карта состоит из 5 листов и людей больше 2000, в ручную накладно, это ответ на вопросы.Sashagor1982
доработать, чтобы махом появлялась куча файлов на всех людей из Базы.
Ну в общем-то, задача ясна, сначала нужно Ваш макрос доработать "Послужная_карта()", чтоб он оба листа (ПК1 и ПК2) корректно фомировал. Потом запустить в цикле 0.Для каждого значения "Личный номер" из списка "База" выполнить: 1. "Послужная_карта()" 2. "MacroSaveResalt()" End Вот и получите пачку файлов на каждого "клиента" из Базы. так-то проблем не вижу, но делать это скучно, попробуйте во Фриланс запрос сделать, за бабло сделают Вам.
доработать, чтобы махом появлялась куча файлов на всех людей из Базы.
Ну в общем-то, задача ясна, сначала нужно Ваш макрос доработать "Послужная_карта()", чтоб он оба листа (ПК1 и ПК2) корректно фомировал. Потом запустить в цикле 0.Для каждого значения "Личный номер" из списка "База" выполнить: 1. "Послужная_карта()" 2. "MacroSaveResalt()" End Вот и получите пачку файлов на каждого "клиента" из Базы. так-то проблем не вижу, но делать это скучно, попробуйте во Фриланс запрос сделать, за бабло сделают Вам.al-Ex
Да нет, за бабло не надо)))) Это самое простое.... Вот задать вопрос, изучить ваше решение, адаптировать под оригинальную программу и получить результат вот это сила...
Да нет, за бабло не надо)))) Это самое простое.... Вот задать вопрос, изучить ваше решение, адаптировать под оригинальную программу и получить результат вот это сила...Sashagor1982
адаптировать под оригинальную программу и получить результат вот это сила...
Попробуйте записать макрорекордером: выделить несколько листов книги--ПКМ--Переместить или скопировать--Создать копию галочка--выбрать новая книга--Сохранить как--Указать где присвоив имя книге. Получится макрос написанный ниже. Сравните с тем что уже Вам предложили. Поймете что и чем заменить. В макросе выделены сразу 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]
Цитата
адаптировать под оригинальную программу и получить результат вот это сила...
Попробуйте записать макрорекордером: выделить несколько листов книги--ПКМ--Переместить или скопировать--Создать копию галочка--выбрать новая книга--Сохранить как--Указать где присвоив имя книге. Получится макрос написанный ниже. Сравните с тем что уже Вам предложили. Поймете что и чем заменить. В макросе выделены сразу 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