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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2009, 15:52   #1
hozpraktik
 
Регистрация: 19.11.2009
Сообщений: 6
По умолчанию Задача на копирование ячеек из разных листов на один.

Более детально проблема выглядит так:
Как можно копировать в один и тот же столбец на фиксированном листе данные из одного и того же диапазона ячеек с других листов?
Листы генерируются макросом по очереди, автоматически им присвается имя от "Январь" до "Декабрь". Т.е. в любой момент времени существует только один "календарный" лист и с него нужно одним нажатием в нужный момент перекинуть значение диапазона в другой лист. Через некоторое время генерируется новый каледарный лист и цикл повторяется. Хотелось бы запускать один макрос, а не 12 в течение года.
"Отработанные" листы не удаляются, а прячутся в книге, т.е. сослаться на уже существующие листы можно всегда.
hozpraktik вне форума Ответить с цитированием
Старый 04.12.2009, 15:56   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Более детально проблема выглядит так:
Куда более детальнее ваша проблема начнёт выглядеть сразу после того, как Вы прикрепите к сообщению пример файла с макросом.

Ну и не забудьте на примере показать, что, откуда и куда надо копировать.
EducatedFool вне форума Ответить с цитированием
Старый 04.12.2009, 16:30   #3
hozpraktik
 
Регистрация: 19.11.2009
Сообщений: 6
По умолчанию Вот фрагмет проблемы

Я вложил макет, надеюсь, там всё понятно.
Вложения
Тип файла: rar Книга1.rar (19.8 Кб, 68 просмотров)
hozpraktik вне форума Ответить с цитированием
Старый 04.12.2009, 16:41   #4
hozpraktik
 
Регистрация: 19.11.2009
Сообщений: 6
По умолчанию

Код:
Sub Вставка_цен_в_бланк()
'
' Вставка_цен_в_бланк Макрос
' Макрос записан 07.08.2009 (Hozpraktik.)
'

'
'    Sheets("БК (1)").Select
    Range("E11:E101").Select
    Selection.FormulaR1C1 = "=Январь!RC[1]"
' Нет готового решения

    MsgBox ("Готово!")
End Sub
Т.е. для листа Январь одноразовй макрос есть, а нужно, чтобы макрос снимал информацию с хронолически последнего листа.
hozpraktik вне форума Ответить с цитированием
Старый 04.12.2009, 18:52   #5
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Как один из вариантов, можно решать Вашу задачу так - см.вложение.
Вложения
Тип файла: zip Книга2.zip (31.1 Кб, 74 просмотров)
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 07.12.2009, 00:34   #6
hozpraktik
 
Регистрация: 19.11.2009
Сообщений: 6
По умолчанию Спасибо, но...

Спасибо! На макете работает, на практике ещё не пользовался, Есть только одно но: в предлагаемом решении оператор должен вручную выбирать месяц из списка. Т.к. файл в целом служит задачам планирования, то месяцы в файле не всегда связаны с реальным временем. Чтобы оператор не задумывался о том, какой из 12 возможных вариантов выбора предпочесть, хотелось бы иметь кнопку (на макете она в виде рисунка с символом "$"), при нажатии на которую диапазон копировался бы автоматически, безальтернативно, не оставляя ни единого шанса человеческому фактору.
Алгоритм простой: как бы не назывался предыдущий лист - тупо копировать из него. Серая кнопка служит всего лишь для распечатки бланка с проставленными ценами и переноса их в другую программу, увы, несовместимую с EXCEL никаким образом. Написать нужный расчётный модуль в ТОЙ программе и в сытое время у программеров руки не доходили, а теперь от их команды и вовсе один человек остался. Вот и приходится с предпенсионными мозгами толкаться среди студентов.
hozpraktik вне форума Ответить с цитированием
Старый 07.12.2009, 10:33   #7
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
Спасибо! На макете работает, на практике ещё не пользовался, Есть только одно но: в предлагаемом решении оператор должен вручную выбирать месяц из списка.
Чувствовал, что в задании не все описано)))
Цитата:
Алгоритм простой: как бы не назывался предыдущий лист - тупо копировать из него.
Во вложении предусмотрено 2 варианта работы макроса - от текущего месяца и от предыдущего листа.
Выбирайте.
Вложения
Тип файла: zip Книга3.zip (30.7 Кб, 81 просмотров)
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 07.12.2009, 21:37   #8
hozpraktik
 
Регистрация: 19.11.2009
Сообщений: 6
По умолчанию СПАСИБО!!!

Огромное спасибо! Я как раз и хотел второй вариант.
Перекинул макрос в рабочую книгу, раз пять промоделировал годовую работу файла - работает как часы.
hozpraktik вне форума Ответить с цитированием
Старый 28.05.2010, 10:00   #9
d_imarik
Новичок
Джуниор
 
Регистрация: 27.05.2010
Сообщений: 1
Подмигивание скрипт

немного переделал скрипт.
Копирует данные из диапазона ячеек с листа именем вчерашнего дня в лист именем сегодняшнего(формат имени листа дд.мм.гг)

Sub остаток_на_утро() 'от предыдущенго дня
Application.ScreenUpdating = False
On Error GoTo ErrHandler
yesterday = Format(Now - 1, "dd.mm.yy")
Today = Format(Now, "dd.mm.yy")
Worksheets(yesterday).[H4:H39].Copy 'длина колонки
Worksheets(Today).[B4].PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
[B4].Select
MsgBox "остатки внесены", , "ввод остатков"
Exit Sub
Application.ScreenUpdating = True
ErrHandler:
MsgBox " Неправильный формат даты ", , "Ошибка пользователя !!!"
End Sub

Последний раз редактировалось d_imarik; 28.05.2010 в 10:33.
d_imarik вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на выборочное копирование ячеек в уже открытую другую книгу noobnoob Microsoft Office Excel 8 23.11.2009 06:13
несколько разных строк из разных файлов сформировать в один Иван123456 Microsoft Office Excel 3 30.07.2009 17:05
Копировать данные из разных ячеек по нескольким листам в один лист Dorvir Microsoft Office Excel 2 11.06.2008 10:10
Вставка значений из разных листов AntiZero Microsoft Office Excel 2 16.11.2007 18:27