Страницы: 1
RSS
макрос копирования листа с данными в ту же книгу
 
Товарищи! Имеется задача, которая облегчит немного работу с отчетным файлом. Знаю, что не откажете в помощи :) поиском прошерстила похожие топики, но прямой подсказки не нашла.
Задача в следующем:
имеется достаточно большой xls-файл со множеством листов:
самый ранний лист - список юр. лиц с разными данными на 1500 строк
последующие листы - именуются датами вносимых изменений, представляют собой тот самый ранний лист, но с внесенными изменениями в сведения
Каждый раз, когда происходят изменения сведений мы делаем следующее:
- переместить/скопировать последний добавленный лист (при этом из-за огромного кол-ва информации выдается сообщение: Копируемый лист содержит ячейки, содержащие более 255 знаков. Копирования всего листа приведет к обрезанию содержимого таких ячеек. Чтобы избежать этого, скопируйте...., а потом еще и: Ошибка доступа к файлу. Некоторые числовые форматы могут быть утеряны. Данные сообщения мы игнорируем.)
- после этого на листе-источнике копирования выделяем полностью всю таблицу и вставляем данные во вновь полученный лист, при этом exсel спрашивает: заменить содержимое конечных ячеек? Соглашаемся с этим предложением.
- новому листу присваиваем имя равное дате изменений.

Не могли бы вы предложить макрос, которым вышеуказанную процедуру можно автоматиризовать, избежав проблем с информационными сообщениями о потере данных.

Немного сумбурно, если будут вопросы, постараюсь ответить более четко.
 
Код
Sub ttt()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.CutCopyMode = False

Sheets(Sheets.Count).Copy After:=Sheets(Sheets.Count)
On Error Resume Next
Sheets(Sheets.Count).Name = Date
Sheets(Sheets.Count - 1).Range("A:J").Copy
Sheets(Sheets.Count).Range("A:A").PasteSpecial xlPasteAll
[a1].Select

Application.CutCopyMode = True
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub




Sheets(Sheets.Count - 1).Range("A:J").Copy 'ТУТ УКАЖИТЕ ВМЕСТО A:J СВОЙ ДИАПАЗОН
Изменено: marker_mc - 22.05.2013 15:26:27
 
marker_mc, спасибо за Ваше время.

попробовала макрос, возникли некоторые вопросы (см. пример):
- допустим 21.05.2013 были изменения в списке
Как в макросе взять лист "27.04.13" и скопировать его перед всеми листами, пусть даже с именем "27.04.13 (2)". А далее в него скопировать всю информацию из 27.04.13?
Спасибо!
 
ну можно сделать еще одну кнопку для такого же копирования только текущего листа.
 
вот так вы имели ввиду?
 
Супер! Вот теперь в точности то, что было нужно!
Спасибо огромное!
 
пожалуйста, пользуйтесь.
 
Здравствуйте.

Хотел прицепить макрос для своих нужд.

Выявил нюанс - после первой копии не хочет присваивать имя даты для других копий.
Оставляет имя копируемого листа.

Что нужно изменить в макросе, чтобы менялось имя нового листа на дату?
 
Привет всем.

Немного допилил макрос от "marker_mc", чтобы он удовлетворял моим потребностям, а именно:

при нажатии на кнопку макрос копирует активный лист, вставляет его в конец книги и обзывает датой и временем с секундами.
Без секунд почему-то перестает переименовывать, не понял пока почему. Может кто подскажет...

Но меня устраивает пока.

Пользуйтесь.
Страницы: 1
Наверх