Есть Книга из 8 листов. На Лист2 есть кнопка "обновить". При нажатии на эту кнопку должно происходить копирование Лист1 и Лист2 в новую книгу "ТЕСТ". При чем, перед сохранением новой книги с Лист1 должна быть удалена кнопка "Внести в историю заказоов", а с Лист2 должна быть удалена кнопка "Обновить". Кнопка "Итого" находящаяся на Лист2 - не должна удаляться.
В прикрепленном файле попытка реализовать макрос. Подскажите где ошибка.
Есть Книга из 8 листов. На Лист2 есть кнопка "обновить". При нажатии на эту кнопку должно происходить копирование Лист1 и Лист2 в новую книгу "ТЕСТ". При чем, перед сохранением новой книги с Лист1 должна быть удалена кнопка "Внести в историю заказоов", а с Лист2 должна быть удалена кнопка "Обновить". Кнопка "Итого" находящаяся на Лист2 - не должна удаляться.
В прикрепленном файле попытка реализовать макрос. Подскажите где ошибка.SanchesLi
[offtop] alex77755, спасибо, что поправили. Ввиду своего малого опыта ни разу не доводилось пользоваться этой конструкцией (наверное потому,что редко пользуюсь записью макросов ), теперь буду знать.[/offtop]
[offtop] alex77755, спасибо, что поправили. Ввиду своего малого опыта ни разу не доводилось пользоваться этой конструкцией (наверное потому,что редко пользуюсь записью макросов ), теперь буду знать.[/offtop]EvgenyD
SanchesLi, 1. А зачем сохранять кнопку в новой книге если её макрос в модуле? процедуру сохраняемой кнопки тогда лйчше перенести в лист. Но книгу с макросами нужно сохранять в формате поддерживающем макросы (xls, xlsb) В каком офисе делаешь? запиши макрос он покажет 2. Зачем иметь процедуру в листе, а кнопку удлять? Вот єту процедуру можно с листа убрать в модуль
Без макросов в листах будет так [vba]
Код
Sub Обновить_Прайс() Dim List$, iPath$ Application.ScreenUpdating = False iPath = "D:\Актуальный_Прайс.xlsx" Sheets(Array(Лист1.Name, Лист2.Name)).Copy 'указываем листы, которые хотим оставить With ActiveWorkbook .Worksheets(Лист1.Name).Shapes("Кнопка 1").Delete .Worksheets(Лист2.Name).Shapes("Кнопка 2").Delete Application.DisplayAlerts = False .SaveAs Filename:=iPath Application.ScreenUpdating = True Application.DisplayAlerts = True .Close End With End Sub
[/vba]
SanchesLi, 1. А зачем сохранять кнопку в новой книге если её макрос в модуле? процедуру сохраняемой кнопки тогда лйчше перенести в лист. Но книгу с макросами нужно сохранять в формате поддерживающем макросы (xls, xlsb) В каком офисе делаешь? запиши макрос он покажет 2. Зачем иметь процедуру в листе, а кнопку удлять? Вот єту процедуру можно с листа убрать в модуль
Без макросов в листах будет так [vba]
Код
Sub Обновить_Прайс() Dim List$, iPath$ Application.ScreenUpdating = False iPath = "D:\Актуальный_Прайс.xlsx" Sheets(Array(Лист1.Name, Лист2.Name)).Copy 'указываем листы, которые хотим оставить With ActiveWorkbook .Worksheets(Лист1.Name).Shapes("Кнопка 1").Delete .Worksheets(Лист2.Name).Shapes("Кнопка 2").Delete Application.DisplayAlerts = False .SaveAs Filename:=iPath Application.ScreenUpdating = True Application.DisplayAlerts = True .Close End With End Sub
В справку по методу SaveAs не заглядывали? Так он, помимо Filename, имеет аргумент FileFormat, и прочая... Это только к файлу txt можно любое расширение прислюнявить.
В справку по методу SaveAs не заглядывали? Так он, помимо Filename, имеет аргумент FileFormat, и прочая... Это только к файлу txt можно любое расширение прислюнявить.RAN
SanchesLi, я же и имел в виду полную строку сохранения когда писал "запиши макрос он покажет" Макрос запишет все аргументы. Правда если это не 2007. Что-то у меня этот 2007 хреново макросы пишет. Не всё, по крайнй мере
SanchesLi, я же и имел в виду полную строку сохранения когда писал "запиши макрос он покажет" Макрос запишет все аргументы. Правда если это не 2007. Что-то у меня этот 2007 хреново макросы пишет. Не всё, по крайнй мереalex77755
alex77755, запись макроса немного прояснила ситуацию, выдала вот такие полезные строки: .SaveAs Filename:=iPath, FileFormat:= _ xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False Теперь я могу сохранять в формате с поддержкой макросов, но при создании нового файла остается связь макроса с родителем. Как сделать что бы в новом документе кнопе ИТОГО (Лист2) назначался макрос находящийся в Лист2 созданного документа?
alex77755, запись макроса немного прояснила ситуацию, выдала вот такие полезные строки: .SaveAs Filename:=iPath, FileFormat:= _ xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False Теперь я могу сохранять в формате с поддержкой макросов, но при создании нового файла остается связь макроса с родителем. Как сделать что бы в новом документе кнопе ИТОГО (Лист2) назначался макрос находящийся в Лист2 созданного документа?SanchesLi
Кто нибудь помогите!!! Вопрос остается открытым. Как сделать что бы в новом документе кнопе ИТОГО (Лист2) назначался макрос находящийся в Лист2 созданного документа?
Кто нибудь помогите!!! Вопрос остается открытым. Как сделать что бы в новом документе кнопе ИТОГО (Лист2) назначался макрос находящийся в Лист2 созданного документа?SanchesLi