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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2012, 23:45   #1
kovda
Новичок
Джуниор
 
Регистрация: 10.11.2012
Сообщений: 2
По умолчанию Как найти лист в другой книге макросом

Всем привет.

вопрос в следующем:
есть книга 1 - свод анализ
есть книга 2 - отчет продаж за месяц. Каждый лист назван датой:01.11.12, 02.11.12, 03.11.12, и тд

Данные в книгу 2 я настроила, они подгружаются каждый день
Свод анализ делаю раз в неделю
тоесть в книге 2 имею много листов и из них мне нужны данные в книгу 1 только за определенную неделю

данные врукаплю (ВПР) по двум столбцам

Хочу сделать так, чтобы при запуске макроса подгружались данные за прошедшую неделю.
решение вижу вот какое: задать ЛИСТУ, соответствующему первому дню отчетной недели, переменную(например W), второй ЛИСТ тогда получается W+1, третий W+2 и т.д. и тогда при создании отчета мне нужно будет только задать данные первому ЛИСТУ, а не всем и формулы подгрузятся автоматически на всю неделю, отталкиваясь от первого.
1. как правильно задать переменную?
Dim W
W = "04.11.12" как понять что это лист?
2. как найти лист "04.11.12" в книге 2 используя макрос?
3. возможно ли в формулу подставить переменную, а не конкретный лист?

ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-11],'[BOOK.xls]W'!C1:C13,13,0)"
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-11],'[BOOK.xls]W+1'!C1:C13,13,0)"
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-11],'[BOOK.xls]W+2'!C1:C13,13,0)"

если это поможет, в книге 2 листы идут по порядку и лист1 = первому числу месяца, лист2 = второму и т.д.
отчетная неделя всегда начинается с воскресенья и по субботу.

я только начала изучать макросы, простите меня если спрашиваю истины)

Последний раз редактировалось kovda; 10.11.2012 в 23:51.
kovda вне форума Ответить с цитированием
Старый 11.11.2012, 00:57   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Попробуйте примерно так:
Код:
Sub tt()
Dim w$
w = CDate([a1]) + 1

ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-11],'[BOOK.xls]" & w & "'!C1:C13,13,0)"
End Sub
В A1 вбиваете начальную дату.
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 11.11.2012 в 00:59.
Hugo121 вне форума Ответить с цитированием
Старый 11.11.2012, 14:24   #3
kovda
Новичок
Джуниор
 
Регистрация: 10.11.2012
Сообщений: 2
По умолчанию

Вы мой герой)))))

ура-ура-ура)
СПАСИБИЩЕ огромное)
kovda вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как переименовать лист макросом? Pavarotti Microsoft Office Excel 9 24.02.2011 07:50
Вывод данных на другой лист в рабочей книге Palomnik1096 Microsoft Office Excel 9 18.12.2010 04:42
Как найти число больше 0 из строчки и вставить относительно этого столбца остальные данные в другой лист e_v_b Microsoft Office Excel 4 20.09.2010 06:31
найти и скопировать на другой лист нужные ячейки abcde Microsoft Office Excel 4 23.02.2010 07:46
по ткущему дню найти столбец, по месяцу - лист в другой книге trochn Microsoft Office Excel 5 30.09.2009 19:28