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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2011, 12:09   #1
ratibor
Пользователь
 
Регистрация: 01.12.2011
Сообщений: 42
По умолчанию Добавление слагаемого в формулу при изменении количества суммируемых файлов

Господа, помогите, пожалуйста.

Есть формулы вида:
"=[1.xlsm]Лист1'!F32+[2.xlsm]Лист1'!F32+[3.xlsm]Лист1'!F32"

При добавлении нового файла необходимо добавить в формулу данные, чтобы было:
"=[1.xlsm]Лист1'!F32+[2.xlsm]Лист1'!F32+[3.xlsm]Лист1'!F32+[4.xlsm]Лист1'!F32".

Так как сводный файл не идентичен суммируемым, то путь: выделения ячеек и использования Ctrl+Enter не подходит. Необходимо, чтобы именно добавлялось новое слагаемое в формулу с той же ячейки, но нового файла. Таблицы большие. Поэтому менять "ручками" слишком трудоемко.
Подскажите пример кода макроса с помощью которого можно произвести подобную замену в большой таблице.
ratibor вне форума Ответить с цитированием
Старый 27.12.2011, 11:25   #2
ratibor
Пользователь
 
Регистрация: 01.12.2011
Сообщений: 42
По умолчанию

есть идеи?
ratibor вне форума Ответить с цитированием
Старый 27.12.2011, 12:05   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

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

Последний раз редактировалось IgorGO; 27.12.2011 в 12:39.
IgorGO вне форума Ответить с цитированием
Старый 27.12.2011, 12:50   #4
ratibor
Пользователь
 
Регистрация: 01.12.2011
Сообщений: 42
По умолчанию

IgorGO ситуация следующая: есть несколько сводных файлов, которые собирают данные с файлов с одинаковой структурой, но эти файлы могут добавляться со временем и именуются номерами 1,2,3 и т.д.
Так вот мне интересно, возможно макросом сделать так, чтобы на листе находились ячейки с формулами "=[1.xlsm]Лист1'!F32+[2.xlsm]Лист1'!F32+[3.xlsm]Лист1'!F32" и при запросе со скольких файлов просуммировать, в формулу бы добавлялись слагаемые. Например если 5 файлов, то соответственно: "=[1.xlsm]Лист1'!F32+[2.xlsm]Лист1'!F32+[3.xlsm]Лист1'!F32+[4.xlsm]Лист1'!F32+[5.xlsm]Лист1'!F32". Своды разные, поэтому у каждого свои диапазоны. Ну а заменять по вызову макроса и указанию сколько файлов используется для консолидации. Ну т.е. поменять необходимо именно формулу.
ratibor вне форума Ответить с цитированием
Старый 27.12.2011, 14:31   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

приблизительно так:
Код:
Sub AddNTime()
  Dim s As String, n As Long, i As Long, cell As Range
  n = Val(InputBox("Укажите число", "Сколько файлов"))
  For Each cell In ActiveSheet.UsedRange
    s = cell.Formula
    If s Like "*Лист1'!F32+*" Then
      For i = Val(Split((Split(s, "[")(UBound(Split(s, "[")))), ".")(0)) + 1 To n
        s = s & "+[" & i & ".xlsm]Лист1'!F32"
      Next
      cell.Formula = s
    End If
  Next
End Sub
но затея довольно странная.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 27.12.2011, 16:30   #6
ratibor
Пользователь
 
Регистрация: 01.12.2011
Сообщений: 42
По умолчанию

IgorGO спасибо, но это только к одной формуле, а если меняется столбец и строка Н-р D46?

Т.е. в своде все уже "провязано" формулами, 6 000 строк 48 столбцов.
Я бы конечно создал сводный файл равный по структуре файлам с которых данные суммируются, но форматы заданы "сверху" и не подлежат измению, т.е. "работайте с тем, что есть". Вот и приходится извращаться.

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

моя фраза
Цитата:
но затея довольно странная.
говорит о том, что сделал я нечто не особо понимая для чего, зато согласно Вашей постановки задачи.
Вы решили в партизанов поиграть? мне не интересно по крупицам добывать из Вас сведения, а что, а как...
думаю по этой же причине, никто Вам больше не ответил. что и как должно происходить на листе - никому не понятно. создается впечатление, что и Вам тоже.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 27.12.2011, 17:21   #8
ratibor
Пользователь
 
Регистрация: 01.12.2011
Сообщений: 42
По умолчанию

IgorGO вот один из сводов. Сейчас он "провязан" с 15 файлами.
Вложения
Тип файла: zip Конс_ВГО Баланс.zip (84.4 Кб, 9 просмотров)
ratibor вне форума Ответить с цитированием
Старый 27.12.2011, 18:33   #9
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Вы победили. я сдаюсь.
мы разговариваем на разных языках.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автозапуск макроса при изменении фигуры Balalai Microsoft Office Excel 14 11.09.2010 16:59
Включение макроса при изменении текста. gling Microsoft Office Excel 3 20.07.2010 20:11
Событие при изменении дерева RIO Общие вопросы Delphi 17 17.05.2010 02:35
innerHTML при изменении st1512 HTML и CSS 0 07.09.2009 10:04
Работа программы при изменении Rom1k06 Microsoft Office Excel 8 18.01.2009 19:05