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

Вход

Регистрация

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

 

= Мир MS Excel/Сохранение листов в отдельную книгу с удалением макросов. - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Сохранение листов в отдельную книгу с удалением макросов.
SanchesLi Дата: Среда, 26.08.2015, 19:36 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Есть Книга из 8 листов.
На Лист2 есть кнопка "обновить". При нажатии на эту кнопку должно происходить копирование Лист1 и Лист2 в новую книгу "ТЕСТ". При чем, перед сохранением новой книги с Лист1 должна быть удалена кнопка "Внести в историю заказоов", а с Лист2 должна быть удалена кнопка "Обновить". Кнопка "Итого" находящаяся на Лист2 - не должна удаляться.

В прикрепленном файле попытка реализовать макрос. Подскажите где ошибка.
К сообщению приложен файл: 7456038.xlsm (49.5 Kb)
 
Ответить
СообщениеЕсть Книга из 8 листов.
На Лист2 есть кнопка "обновить". При нажатии на эту кнопку должно происходить копирование Лист1 и Лист2 в новую книгу "ТЕСТ". При чем, перед сохранением новой книги с Лист1 должна быть удалена кнопка "Внести в историю заказоов", а с Лист2 должна быть удалена кнопка "Обновить". Кнопка "Итого" находящаяся на Лист2 - не должна удаляться.

В прикрепленном файле попытка реализовать макрос. Подскажите где ошибка.

Автор - SanchesLi
Дата добавления - 26.08.2015 в 19:36
EvgenyD Дата: Среда, 26.08.2015, 20:53 | Сообщение № 2
Группа: Пользователи
Ранг: Участник
Сообщений: 74
Репутация: 19 ±
Замечаний: 0% ±

Excel 2013
SanchesLi, Что сразу увидел -это именование листов например:
[vba]
Код
Sheets(Array("Лист1", "Лист2")).Copy
[/vba]
у вас нет в файле листа Лист1 и Лист2.
 
Ответить
СообщениеSanchesLi, Что сразу увидел -это именование листов например:
[vba]
Код
Sheets(Array("Лист1", "Лист2")).Copy
[/vba]
у вас нет в файле листа Лист1 и Лист2.

Автор - EvgenyD
Дата добавления - 26.08.2015 в 20:53
EvgenyD Дата: Среда, 26.08.2015, 20:58 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 74
Репутация: 19 ±
Замечаний: 0% ±

Excel 2013
Удаление кнопки будет как-то так (пользуйтесь записью макросов - там есть почти все необходимое):
[vba]
Код
ActiveSheet.Shapes.Range(Array("Button 1")).Delete
[/vba]


Сообщение отредактировал EvgenyD - Среда, 26.08.2015, 22:40
 
Ответить
СообщениеУдаление кнопки будет как-то так (пользуйтесь записью макросов - там есть почти все необходимое):
[vba]
Код
ActiveSheet.Shapes.Range(Array("Button 1")).Delete
[/vba]

Автор - EvgenyD
Дата добавления - 26.08.2015 в 20:58
alex77755 Дата: Среда, 26.08.2015, 22:31 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

EvgenyD, А зачем создавать новую книгу? Она создастчя сама автоматом
[vba]
Код
Sheets(Array("Лист1", "Лист2")).Copy
[/vba]
Процедура в целом как раз и годится.
Именно так и записывает макрос
И эта новая книга становится активной и её нужно просто сохранить


Могу помочь в VB6, VBA
Alex77755@mail.ru


Сообщение отредактировал alex77755 - Среда, 26.08.2015, 22:31
 
Ответить
СообщениеEvgenyD, А зачем создавать новую книгу? Она создастчя сама автоматом
[vba]
Код
Sheets(Array("Лист1", "Лист2")).Copy
[/vba]
Процедура в целом как раз и годится.
Именно так и записывает макрос
И эта новая книга становится активной и её нужно просто сохранить

Автор - alex77755
Дата добавления - 26.08.2015 в 22:31
gling Дата: Среда, 26.08.2015, 22:38 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2688
Репутация: 764 ±
Замечаний: 0% ±

2010
Почитайте ЭТУ тему


ЯД-41001506838083
 
Ответить
СообщениеПочитайте ЭТУ тему

Автор - gling
Дата добавления - 26.08.2015 в 22:38
EvgenyD Дата: Среда, 26.08.2015, 22:46 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 74
Репутация: 19 ±
Замечаний: 0% ±

Excel 2013
[offtop] alex77755, спасибо, что поправили. Ввиду своего малого опыта ни разу не доводилось пользоваться этой конструкцией (наверное потому,что редко пользуюсь записью макросов :) ), теперь буду знать.[/offtop]
 
Ответить
Сообщение[offtop] alex77755, спасибо, что поправили. Ввиду своего малого опыта ни разу не доводилось пользоваться этой конструкцией (наверное потому,что редко пользуюсь записью макросов :) ), теперь буду знать.[/offtop]

Автор - EvgenyD
Дата добавления - 26.08.2015 в 22:46
alex77755 Дата: Среда, 26.08.2015, 23:02 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

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]


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
Сообщение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]

Автор - alex77755
Дата добавления - 26.08.2015 в 23:02
RAN Дата: Четверг, 27.08.2015, 17:55 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
В справку по методу SaveAs не заглядывали?
Так он, помимо Filename, имеет аргумент FileFormat, и прочая...
Это только к файлу txt можно любое расширение прислюнявить.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеВ справку по методу SaveAs не заглядывали?
Так он, помимо Filename, имеет аргумент FileFormat, и прочая...
Это только к файлу txt можно любое расширение прислюнявить.

Автор - RAN
Дата добавления - 27.08.2015 в 17:55
alex77755 Дата: Пятница, 28.08.2015, 07:49 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

SanchesLi, я же и имел в виду полную строку сохранения когда писал "запиши макрос он покажет"
Макрос запишет все аргументы.
Правда если это не 2007. Что-то у меня этот 2007 хреново макросы пишет. Не всё, по крайнй мере


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
СообщениеSanchesLi, я же и имел в виду полную строку сохранения когда писал "запиши макрос он покажет"
Макрос запишет все аргументы.
Правда если это не 2007. Что-то у меня этот 2007 хреново макросы пишет. Не всё, по крайнй мере

Автор - alex77755
Дата добавления - 28.08.2015 в 07:49
SanchesLi Дата: Пятница, 28.08.2015, 21:57 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
alex77755, запись макроса немного прояснила ситуацию, выдала вот такие полезные строки:
.SaveAs Filename:=iPath, FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Теперь я могу сохранять в формате с поддержкой макросов, но при создании нового файла остается связь макроса с родителем. Как сделать что бы в новом документе кнопе ИТОГО (Лист2) назначался макрос находящийся в Лист2 созданного документа?
 
Ответить
Сообщениеalex77755, запись макроса немного прояснила ситуацию, выдала вот такие полезные строки:
.SaveAs Filename:=iPath, FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Теперь я могу сохранять в формате с поддержкой макросов, но при создании нового файла остается связь макроса с родителем. Как сделать что бы в новом документе кнопе ИТОГО (Лист2) назначался макрос находящийся в Лист2 созданного документа?

Автор - SanchesLi
Дата добавления - 28.08.2015 в 21:57
SanchesLi Дата: Четверг, 03.09.2015, 00:55 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Кто нибудь помогите!!!
Вопрос остается открытым.
Как сделать что бы в новом документе кнопе ИТОГО (Лист2) назначался макрос находящийся в Лист2 созданного документа?
 
Ответить
СообщениеКто нибудь помогите!!!
Вопрос остается открытым.
Как сделать что бы в новом документе кнопе ИТОГО (Лист2) назначался макрос находящийся в Лист2 созданного документа?

Автор - SanchesLi
Дата добавления - 03.09.2015 в 00:55
KSV Дата: Четверг, 03.09.2015, 02:46 | Сообщение № 12
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
так [vba]
Код
Worksheets("прайс").Shapes("Button 1").OnAction = "Лист2.ИТОГО_Кнопка"
[/vba]
или так [vba]
Код
Лист2.Shapes("Кнопка 1").OnAction = "Лист2.ИТОГО_Кнопка"
[/vba]


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
Сообщениетак [vba]
Код
Worksheets("прайс").Shapes("Button 1").OnAction = "Лист2.ИТОГО_Кнопка"
[/vba]
или так [vba]
Код
Лист2.Shapes("Кнопка 1").OnAction = "Лист2.ИТОГО_Кнопка"
[/vba]

Автор - KSV
Дата добавления - 03.09.2015 в 02:46
  • Страница 1 из 1
  • 1
Поиск:

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