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

Вход

Регистрация

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

 

= Мир MS Excel/Удалить из калькуляции все данные вне области печати - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Удалить из калькуляции все данные вне области печати (Формулы/Formulas)
Удалить из калькуляции все данные вне области печати
Aramzamzam Дата: Вторник, 07.11.2017, 17:57 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте!
Помогите, пожалуйста, написать макрос.
Для отправки сметы клиенту нужно удалить из нее все лишние данные (входные цены, наценки, трудозатраты и т.д.)
Все данные для клиента выделены областью печати.
Вручную я выполняю эту задачу так:
1)Выбираю первую вкладку
2)Выделяю область печати
3) копировать -> вставить значения
4) удалить все данные вне области печати (я выделяю десяток столбцов правее области печати и нажимаю Del)
5) выбираю следующую вкладку, повторяю весь цикл

Очень хочется данный процесс автоматизировать
К сообщению приложен файл: 8648292.xlsx (78.1 Kb)
 
Ответить
СообщениеЗдравствуйте!
Помогите, пожалуйста, написать макрос.
Для отправки сметы клиенту нужно удалить из нее все лишние данные (входные цены, наценки, трудозатраты и т.д.)
Все данные для клиента выделены областью печати.
Вручную я выполняю эту задачу так:
1)Выбираю первую вкладку
2)Выделяю область печати
3) копировать -> вставить значения
4) удалить все данные вне области печати (я выделяю десяток столбцов правее области печати и нажимаю Del)
5) выбираю следующую вкладку, повторяю весь цикл

Очень хочется данный процесс автоматизировать

Автор - Aramzamzam
Дата добавления - 07.11.2017 в 17:57
nilem Дата: Вторник, 07.11.2017, 20:22 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Привет
попробуйте так (возьмите на всякий случай копию файла)
[vba]
Код
Sub ertert()
Dim wsh As Worksheet
For Each wsh In ThisWorkbook.Sheets
    With wsh.Range(wsh.PageSetup.PrintArea)
        .Value = .Value
        wsh.Cells(1, .Columns.Count + 1).Resize(, 10).EntireColumn.Delete
        wsh.Cells(.Rows.Count + 1, 1).Resize(10).EntireRow.Delete
    End With
Next wsh
End Sub
[/vba]


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеПривет
попробуйте так (возьмите на всякий случай копию файла)
[vba]
Код
Sub ertert()
Dim wsh As Worksheet
For Each wsh In ThisWorkbook.Sheets
    With wsh.Range(wsh.PageSetup.PrintArea)
        .Value = .Value
        wsh.Cells(1, .Columns.Count + 1).Resize(, 10).EntireColumn.Delete
        wsh.Cells(.Rows.Count + 1, 1).Resize(10).EntireRow.Delete
    End With
Next wsh
End Sub
[/vba]

Автор - nilem
Дата добавления - 07.11.2017 в 20:22
Aramzamzam Дата: Среда, 08.11.2017, 14:38 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Привет
попробуйте так (возьмите на всякий случай копию файла)


выдает ошибку Run-time error `1004`
Method `Range`of object `_Worksheet`failed


Сообщение отредактировал Aramzamzam - Среда, 08.11.2017, 14:45
 
Ответить
Сообщение
Привет
попробуйте так (возьмите на всякий случай копию файла)


выдает ошибку Run-time error `1004`
Method `Range`of object `_Worksheet`failed

Автор - Aramzamzam
Дата добавления - 08.11.2017 в 14:38
nilem Дата: Среда, 08.11.2017, 15:20 | Сообщение № 4
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Попробуйте в файле.
Нажмите Alt+F8 - Выполнить
макросы д.б. разрешены
К сообщению приложен файл: 8648292.xlsm (65.7 Kb)


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеПопробуйте в файле.
Нажмите Alt+F8 - Выполнить
макросы д.б. разрешены

Автор - nilem
Дата добавления - 08.11.2017 в 15:20
Aramzamzam Дата: Среда, 08.11.2017, 16:09 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

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

Автор - Aramzamzam
Дата добавления - 08.11.2017 в 16:09
nilem Дата: Среда, 08.11.2017, 16:29 | Сообщение № 6
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
сохранил в персональную книгу макросов

тогда измените эту строку
[vba]
Код
For Each wsh In ThisWorkbook.Sheets
[/vba]
вот так
[vba]
Код
For Each wsh In ActiveWorkbook.Sheets
[/vba]
т.е. макрос будет работать с активной книгой


Яндекс.Деньги 4100159601573
 
Ответить
Сообщение
сохранил в персональную книгу макросов

тогда измените эту строку
[vba]
Код
For Each wsh In ThisWorkbook.Sheets
[/vba]
вот так
[vba]
Код
For Each wsh In ActiveWorkbook.Sheets
[/vba]
т.е. макрос будет работать с активной книгой

Автор - nilem
Дата добавления - 08.11.2017 в 16:29
Aramzamzam Дата: Среда, 08.11.2017, 18:26 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо вам огромное!
Посмотрите, пожалуйста, почему в одной книге у меня продолжает выпадать ошибка
Method `Range`of object `_Worksheet`failed

Хотя в других книгах макрос работает.
Если все вкладки из данной книги скопировать в новую книгу и сохранить - работает.
К сообщению приложен файл: 7713962.xlsx (99.4 Kb)
 
Ответить
СообщениеСпасибо вам огромное!
Посмотрите, пожалуйста, почему в одной книге у меня продолжает выпадать ошибка
Method `Range`of object `_Worksheet`failed

Хотя в других книгах макрос работает.
Если все вкладки из данной книги скопировать в новую книгу и сохранить - работает.

Автор - Aramzamzam
Дата добавления - 08.11.2017 в 18:26
nilem Дата: Среда, 08.11.2017, 19:20 | Сообщение № 8
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Потому что на некоторых листах не установлена область печати. Вот так попробуйте:

Но строк и столбцов для удаления м.б. не 10, а сколько угодно. Поэтому вот так будет лучше:


Яндекс.Деньги 4100159601573

Сообщение отредактировал nilem - Среда, 08.11.2017, 19:29
 
Ответить
СообщениеПотому что на некоторых листах не установлена область печати. Вот так попробуйте:

Но строк и столбцов для удаления м.б. не 10, а сколько угодно. Поэтому вот так будет лучше:

Автор - nilem
Дата добавления - 08.11.2017 в 19:20
Aramzamzam Дата: Четверг, 09.11.2017, 17:41 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Большое спасибо! Вы мне очень помогли.
 
Ответить
СообщениеБольшое спасибо! Вы мне очень помогли.

Автор - Aramzamzam
Дата добавления - 09.11.2017 в 17:41
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Удалить из калькуляции все данные вне области печати (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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