Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2017, 23:22   #1
СтаСС
Пользователь
 
Регистрация: 12.02.2017
Сообщений: 87
По умолчанию Копирование данных в другую книгу

Здравствуйте, снова прошу помощь у знатоков! В этот раз попробую описать задачу четко чтоб даже мне было понятно
Нужен макрос который:
1. скопирует с активного листа (рабочей книги) данные (диапазон A1:GT1004)
2. откроет другую книгу (она уже существует) из той-же папки что и активная.. код типа -
Код:
With Workbooks.Open(ThisWorkbook.Path & "\" & "CHECK BASE.xlsm"
3. создаст там (в CHECK BASE.xlsm) новый лист (с любым названием типа Лист1 - название будет потом все равно переименовано вручную)
4. вставит скопированное в этот новый лист в ячейку С5
5. сохранит и закроет книгу (CHECK BASE.xlsm) ... ну и - End Sub

Но ОЧЕНЬ ВАЖНО чтоб данные были 1 в 1 с оригиналом (шрифт, окраска, ширина столбцов и тд включая условное форматирование)
НО вместо формул только их ЗНАЧЕНИЕ!
(особо акцентирую внимание на этих двух пунктах так как у меня постоянно какие то косяки тут возникают )
Похожих тем много встречал но присобачить что то готовое к своим потребностям не получается.. ПЛИЗ ХЕЛП МИ )
СтаСС вне форума Ответить с цитированием
Старый 25.03.2017, 00:43   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Sub CopySameData()
  Dim rg As Range, ar
  Set rg = ActiveSheet.Range("A1:GT1004"):  ar = rg.Value
  With Workbooks.Open(ThisWorkbook.Path & "\" & "CHECK BASE.xlsm")
    .Worksheets.Add
    rg.Copy .Worksheets(.Worksheets.Count).Range("C5")
    .Worksheets(.Worksheets.Count).Range("C5").Resize(UBound(ar), UBound(ar, 2)).Value = ar
    .Save: .Close
  End With
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 25.03.2017, 00:57   #3
СтаСС
Пользователь
 
Регистрация: 12.02.2017
Сообщений: 87
По умолчанию

IgorGO, Ваш макрос вроде работает, вроде потому что он создал новый Лист1 но вставил в уже существующий ( где были данные ) и сохранил так.. "говорила мне мама" надо делать всегда копии..

ВОПРОС ПОЧТИ ПО ТЕМЕ- сегодня вылетал ексель когда была открыта и книга CHECK BASE.xlsm после этого он предлагал
сохраненные версии книг но я нажал что не нужны так как ничего тогда не менял в ней.. сам ВОПРОС те копии утеряны окончательно или
как то можно их еще поискать? просто там были важные довольно таки данные в единственном екземпляре..

Последний раз редактировалось СтаСС; 25.03.2017 в 01:06.
СтаСС вне форума Ответить с цитированием
Старый 25.03.2017, 01:07   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

вижу я ничего серьезного не Вы не Ваша мама еще не теряли.
я делаю еще вторую копию на альтернативном носите
реально: компьтер, сервер, флэшка и лет 20-25 ни одной проблемы с моими персональными данными.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 25.03.2017 в 01:10.
IgorGO вне форума Ответить с цитированием
Старый 25.03.2017, 01:16   #5
СтаСС
Пользователь
 
Регистрация: 12.02.2017
Сообщений: 87
По умолчанию

ну про маму это цитата
а та книга просто рабочая и я делаю ее копию раз в день.. верней перед сном.. а сегодня как раз было много чего в ней сделано.. ну как то так.. короче искать уже бесполезно?
СтаСС вне форума Ответить с цитированием
Старый 25.03.2017, 03:54   #6
СтаСС
Пользователь
 
Регистрация: 12.02.2017
Сообщений: 87
По умолчанию

IgorGO, можете как то подправить Ваш макрос чтоб он все же вставлял данные в новый лист?
СтаСС вне форума Ответить с цитированием
Старый 25.03.2017, 08:13   #7
AlexM12
Форумчанин
 
Аватар для AlexM12
 
Регистрация: 29.08.2012
Сообщений: 209
По умолчанию

Замените строку .Worksheets.Add на .Worksheets.Add After:=Worksheets(Worksheets.Count)
Не забывайте о резервных копиях.
Алексей М.
AlexM12 вне форума Ответить с цитированием
Старый 25.03.2017, 16:55   #8
СтаСС
Пользователь
 
Регистрация: 12.02.2017
Сообщений: 87
По умолчанию

AlexM12, большое Вам спасибо!!!
Теперь копирует в новый лист и вроде все сохраняет как надо но кроме ширины столбцов..
А про копии спасибо за напоминание ) Когда то пропавший свет научил автосохранению 2мин. теперь сделаю как IgorGO - по три копии + несколько раз в день сохранять.. а пропавшие данные - большую часть восстановить удасться и 2-4 дня работы будут не большим уроком за свою халатность..
СтаСС вне форума Ответить с цитированием
Старый 25.03.2017, 19:56   #9
AlexM12
Форумчанин
 
Аватар для AlexM12
 
Регистрация: 29.08.2012
Сообщений: 209
По умолчанию

В коде есть лишние строки. Пробуйте так
Код:
Sub CopySameData()
  Dim rg As Range
  Set rg = ActiveSheet.Range("A1:B5") 
  With Workbooks.Open(ThisWorkbook.Path & "\" & "CHECK BASE.xlsm")
    .Worksheets.Add After:=Worksheets(Worksheets.Count)
    rg.Copy .Worksheets(.Worksheets.Count).Range("C5")
    .Save: .Close
  End With
End Sub
Алексей М.

Последний раз редактировалось AlexM12; 25.03.2017 в 20:42.
AlexM12 вне форума Ответить с цитированием
Старый 25.03.2017, 21:35   #10
СтаСС
Пользователь
 
Регистрация: 12.02.2017
Сообщений: 87
По умолчанию

Цитата:
Сообщение от AlexM12 Посмотреть сообщение
Пробуйте так
Нет.. так что то совсем не то - скопировало всего 8 ячеек и пару границ ячеек
Но я как раз только что разобрался с со своей задачей - слепил несколько макросов в один вышло "немного" )) топорно (копированием всего листа в другую книгу.. там удаление всего не нужного.. затем вставка нужных данных но уже только значения.. потом формат по образцу.. и тд) короче содом и гомора но выходит шустро и все как надо.
Но Спасибо и Вам и IgorGO за постоянную помощь и трату личного времени, Ваша помощь всегда не оценима!!!
СтаСС вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование данных из книги в другую книгу по параметрам uniturs Microsoft Office Excel 6 01.08.2015 17:45
Перенос/копирование макроса в другую книгу Olper Microsoft Office Excel 7 21.12.2011 17:34
Копирование диаграмм в другую книгу adiodas Microsoft Office Excel 0 21.03.2011 20:58
Копирование диапазона в другую книгу в цикле Drummer_SV Microsoft Office Excel 2 22.12.2010 11:27
Копирование листа в другую книгу макросом xamillion Microsoft Office Excel 9 11.10.2008 08:59