Здравствуйте! С Новым годом! Пусть новый год принесет всем Мира, добра, счастья!)
Помогите мне пожалуйста в решении вопроса. Есть книга с макросами. 1 макрос - в модуле ЭТА КНИГА (при открытии файла происходит нумерация документа) 2 макрос - модуль 1 (запуск формы) 3 макрос - модуль 2 (сохранение файла) 4 форма.
при сохранении файла в отдельный документ также переносятся все макросы, два из которых в новом документе не нужны. Это - 1 макрос, который находится в модуле ЭТА КНИГА и 3 макрос - сохранение файла.
Вот сам код сохранения файла:
Код
Sub сохранение_новый()
t = Application.ThisWorkbook.Path
t = StrReverse(Mid(StrReverse(t), InStr(1, StrReverse(t), "\") + 1))
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=t & "\папки\" & CStr(Range("A4")) & "\" & CStr(Range("B4")) & "\" & Range("AC3") & ".xlsb"
Selection.Replace What:="[*]", Replacement:=""
ActiveSheet.Buttons.Delete
Application.DisplayAlerts = True
End Sub
Как сделать так, чтобы при сохранении в новом документе остались только форма и макрос с модуля 1(запуск формы)? Какую строчку в код нужно вписать? Просто каждый раз открывая потом созданный документ в нем автоматически происходит перенумерация документа.
Думаю оптимально - перенести/переписать макрос из ЭТА КНИГА в ЭТА КНИГА но персональной книги или надстройки, и аналогично макрос сохранения (чуть скорректировав).
Или Вы не понимаете что такое персональная книга макрсов, или я не понимаю зачем Вы её сохраняете в новый документ... И что там в этом новом документе кроме этих макросов
этот файл типа шаблона - учетный лист. открывая его, он автоматически нумеруется, затем в него вставляются персональные данные и он сохраняется уже под именем этих персональных данных в нужную папку, нужного года и месяца. Затем этот, сохраненный файл уже можно редактировать, добавляя новые записи. Таких файлов-анкет очень много. Для этого и создан шаблон с автоматической нумерацией. Но беда в том, что каждый раз затем открывая вновь созданные файлы, срабатывает макрос нумерации.
Я прикрепила файл. При сохранении нового файла сохраняется и макрос из модуля "эта книга", а нужно чтобы он не сохранялся во вновь созданном документе, иначе потом при открытии его каждый раз меняется номер этого документа
1. Совет не по нумерации, а вообще: обязательно указывайте имя листа, на котором меняете номер. 2. После открытия книги и изменения номера прописать в любой ячейке флаг (любой символ, слово, значение...). Перед нумерацией проверять наличие флага. Если флаг есть, номер не изменять. А лучше нумеровать при наличии флага. В шаблоне флаг записан, при перенумерации флаг удаляется.
Код сохранения Вы уже показывали. Вроде как на кнопку можно завязять и код из персональной книги (у меня получилось), так что мой совет выше может сработать.
Private Sub Workbook_Open()
With Worksheets("учетный лист")
If .Cells(1, 1).Value = "kkk" Then
.Cells(4, 9).Value = .Cells(4, 9).Value + 1
.Cells(1, 1).ClearContents
End If
End With
Me.Save
End Sub
если я в файле шаблоне поставлю флаг, он также перенесется и во вновь созданный файл, и все останется на прежнем уровне. на счет кода из персональной книги - макрос находится в модуле "эта книга" файла, в котором он написан, в списке макросов его поэтому нет, и если открывать чистый эксель, его тоже там нет.. так не могу понять, куда его перенести..Ребят, вы только не сердитесь, я ведь не такой уж специалист в макросах, и если бы я хорошо разбиралась, я бы и сама сделала, но у меня не получилось..
В персональную книгу или надстройку можно прописать макрос, который при открытии книги-шаблона будет делать ту же работу. Т.е. с одним макросм разобрались. Ну и второй тоже убираете в любую другую книгу. Кнопку можно оставить.
ивобщем то я решила проблему) переписала код нумерации, теперь он выглядит так:
Код
Private Sub Workbook_Open()
On Error Resume Next
With Workbooks("новый").Worksheets("учетный лист")
.Cells(4, 9).Value = .Cells(4, 9).Value + 1
End With
Me.Save
End Sub
Я в самом коде указала конкретную книгу, в которой меняется номер и все). Спасибо Вам всем за советы и помощь)
я в конкретной книге записала макрос, при открытии этой книги он меняет номер и сохраняет сразу эту книгу, чтобы при следующем открытии вновь поменять уже сохраненный ранее номер) После введения данных в эту книгу, сохраняю ее под новым названием, в конкретном месте. Да, макрос переносится тоже при сохранении, но так как условия поставленные в макросе, а конкретно название книги не совпадает, то он не срабатывает, то есть номер во вновь созданном документе не меняется уже, что мне и нужно было)
Просто Ledi написал: при открытии этой книги он меняет номер и сохраняет сразу эту книгу... После введения данных в эту книгу, сохраняю ее под новым названием
Вариант: открыли книгу случайно или данные ввели неправильно и дубликат книги удален.... Но номер изменился и книга сохранилась с новым номером.
во первых случайно этот файл не откроешь, потому что он для конкретной работы, а во вторых, если в этой, еще не заполненной книге-шаблоне увеличится номер, то это не страшно, гораздо хуже было когда уже в заполненных новых файлах менялся номер каждый раз при открытии, ну и в третьих, всегда можно изменить вручную номер в пустом шаблоне, для меня это было не так важно)
да, уверена, я уже проверила, и к тому же там не только название файла, но и название страницы на которой нужно менять номер( за этот совет Вам большое спасибо, потому что в старом макросе не была указана страница). И еще раз повторюсь - этот макрос написан в конкретной книге, и написан для нее, а не для вообще документа эксель, поэтому он и срабатывает именно в этой конкретной книге, и еще срабатывал при сохранении этой книги... слава Богу этот вопрос решен) потому что я поздно заметила что номера меняются.. представьте.. данные нужно было вносить каждый день, иногда по нескольку раз в день открывать документ, за месяц таких открываний в каждом из заполненных документов номер менялся)