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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2011, 13:04   #1
Kalifaks
 
Регистрация: 06.03.2011
Сообщений: 5
Вопрос Суммирование ячейки во всех листах

Здравствуйте!
Имеется лист "результат" и неограниченное количество "расчетных" листов в книге. В каждом "расчетном" листе будет значение в ячейке A1.
Подскажите, пожалуйста, как с помощью VBA найти сумму ячеек A1 во всех "расчетных" листах и вывести ее на лист "результат" (ячейка A1).
Kalifaks вне форума Ответить с цитированием
Старый 06.03.2011, 13:38   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

А зачем VBA?
Чем простейшая формула не устраивает?



Подробнее - здесь: http://www.e-xecutive.ru/blog/excel/3024.php
EducatedFool вне форума Ответить с цитированием
Старый 06.03.2011, 13:46   #3
Smerchin
Пользователь
 
Регистрация: 19.01.2011
Сообщений: 22
По умолчанию

Ух ты, шикарное решение!!))
Форум супер!))
Smerchin вне форума Ответить с цитированием
Старый 06.03.2011, 15:52   #4
Kalifaks
 
Регистрация: 06.03.2011
Сообщений: 5
По умолчанию

EducatedFool, проблема в том, что количество листов не определено, сколько пользователь понадобится столько и сделает, может быть даже один оставит.
Макрос должен просто пробежаться по всем листам, начиная со второго, и засуммировать ячейки. Можно ли так сделать?
В VBA редко работаю, а с командами worksheet'а вообще не встречался до этого.
Kalifaks вне форума Ответить с цитированием
Старый 06.03.2011, 20:28   #5
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Вот не знаю, какой тип переменной суммы задать...
Код:
Sub tt()
Dim x, i As Long
For i = 2 To Sheets.Count
x = x + Sheets(i).[a1]
Next
Sheets(1).[a1] = x
End Sub
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 06.03.2011, 21:35   #6
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Игорь, мож лучше составить строку по примеру EducatedFool, второй-последний лист по имени? Хоть обновляться будут. И повесить на Workbook_SheetChange. Как думаешь?
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 06.03.2011, 22:15   #7
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Это мысль. Хотя можно и тот код повесить.
Я повесил на активацию листа - так что чтоб первый раз, и после добавления листов посчитало - листы нужно перещёлкнуть.
А потом их можно как угодно (только первый не трогайте) тасовать.
Вложения
Тип файла: rar AutoSum.rar (8.7 Кб, 61 просмотров)
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 06.03.2011 в 22:18.
Hugo121 вне форума Ответить с цитированием
Старый 06.03.2011, 22:48   #8
Kalifaks
 
Регистрация: 06.03.2011
Сообщений: 5
По умолчанию

Спасибо всем за участие! =)
Hugo121, так и знал что все окажется так просто. Теперь хоть немножко стал разбираться в worksheet'ах.
Kalifaks вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обратиться к одному и тому же диапазону на всех листах книги Nata75 Microsoft Office Excel 3 08.11.2010 08:57
Суммирование значений в ячейках на разных листах с помощю кода jerko Microsoft Office Excel 14 07.10.2010 09:15
Как связать ячейки на разных листах? BobBarker Microsoft Office Excel 9 13.03.2010 01:33
Выполнение макроса во всех листах Bu$ter Microsoft Office Excel 18 14.11.2008 14:34
Одна "шапка" на всех листах Noor Microsoft Office Excel 2 30.07.2007 15:39