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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 26.01.2009, 22:54   #1
Romuald
Форумчанин
 
Регистрация: 12.11.2007
Сообщений: 209
По умолчанию Макрос суммы колонки

Добрый день!
Мне нужно в конце таблицы, отступив пять строчек поставить сумму некоторых колонок
Подскажите, пожалуйста макрос , который сможет найти последнюю не пустую ячейку колонки А , добавит пять пустых строк и в колонках C,D,E,F,G,H поставит сумму каждой колонки
Заранее благодарю
Romuald вне форума
Старый 26.01.2009, 23:17   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

конструкция
Код:
cells(2,1).end(xldown).row
вернет вам последний ряд с непустым значением в колонке А. Ячейка А2 должна быть не пустой. Первая пустая ячейка в колонке А остановит поиск.
Цитата:
добавит пять пустых строк и в колонках C,D,E,F,G,H
вот с этим сложнее нельзя добавить 5 пустых строк для перечисленных колонок. пустые строки добавятся на всю ширину таблицы. Если вы хотите возможные значения из C,D,E,F,G,H перенести на 5 строк ниже, то так и сделайте, скопируйте их и перенесите на 5 строк ниже. Сделайте это вручную, поручите рекордеру записать ваши действия и будет вам счастье.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума
Старый 27.01.2009, 03:44   #3
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Попробуйте такой вариант:
Код:
Sub test()
    НомерПервойСтрокиТаблицы = 2
    Dim Cell As Range: Set Cell = [a65000].End(xlUp) ' ищем последнюю ячейку
    Cell.Offset(1).Resize(5).EntireRow.Insert: Set Cell = Cell.Offset(1, 2) ' вставляем строки
    Cell.FormulaR1C1Local = "=СУММ(R" & НомерПервойСтрокиТаблицы & "C:R[-1]C)" ' пишем формулу
    Cell.Interior.Color = vbGreen: Cell.AutoFill Cell.Resize(, 6) ' растягиваем формулу на 6 ячеек
End Sub
Цитата:
Сообщение от IgorGO Посмотреть сообщение
нельзя добавить 5 пустых строк для перечисленных колонок. пустые строки добавятся на всю ширину таблицы.
А если попробовать вставлять не строки, а ячейки?

Выделяем часть ячеек внутри таблицы, жмём Вставка - Ячейки - Со сдвигом вниз - и, получается, что мы добавили несколько пустых строк для перечисленных столбцов.
На VBA это будет примерно так: Range("C19:G23").Insert Shift:=xlDown
EducatedFool вне форума
Старый 27.01.2009, 05:23   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

А зачем вставлять формулы в ячейки? Зачем вставлять пустые строки, если все строки ниже таблицы пустые? достаточно отступить 5 строк. Зачем ограничивать 65536 строк? (на дворе 2009г.) Можно так:
Код:
Sub SumInCol()
    Dim r As Long, c As Long
    r = Cells(Rows.Count, "A").End(xlUp).Row + 5
    For c = 3 To 7
        Cells(r, c) = Application.Sum(Range(Cells(1, c), Cells(r - 5, c)))
    Next
End Sub
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 27.01.2009 в 05:27.
SAS888 вне форума
Старый 27.01.2009, 11:13   #5
Romuald
Форумчанин
 
Регистрация: 12.11.2007
Сообщений: 209
По умолчанию

SAS888!! Спасибо!
Я добавляю в колонку А новые коды , данные в другие колонки, соответственно строки добавляются
Как добавить в Ваш код , чтобы чтобы предыдущие суммы стирались
Такая же беда в макросе " Formuli Aktiv_Passiv . Я изменяю данные в других колонках, но если данные в G или H есть , они не меняются и каждый раз приходится стирать вручную колонки G и H
Посмотрите, пожалуйста
Вложения
Тип файла: rar Primer.rar (13.9 Кб, 21 просмотров)
Romuald вне форума
Старый 27.01.2009, 12:11   #6
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Во-первых, если нужно, чтобы при изменении значений в столбцах "C:H" автоматически подсчитывались суммы, то лучше, действительно, в ячейках оставить формулы. Во-вторых, для автоматического сдвига ячеек с суммами при добавлении значений в столбец "A", необходимо использовать событие изменения значений в столбце "A". Посмотрите вложение. Данные в столбец "A" допустимо вводить только по одному (копировать/вставить диапазон нельзя).
Вложения
Тип файла: rar Primer_2.rar (12.5 Кб, 89 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 27.01.2009, 15:39   #7
Romuald
Форумчанин
 
Регистрация: 12.11.2007
Сообщений: 209
По умолчанию

SAS888!
Спасибо!!!
Romuald вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DBGrid ширина колонки Pinya БД в Delphi 7 07.08.2008 09:22
Вывод звука на колонки KapeLLaN Общие вопросы C/C++ 3 18.02.2008 13:03
Сравнить колонки Romuald Microsoft Office Excel 11 22.01.2008 09:28
добавление новой колонки в ADOTable abakumov БД в Delphi 2 19.02.2007 15:04