powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Динамическое суммирование
9 сообщений из 9, страница 1 из 1
Динамическое суммирование
    #35010633
hum_i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день! Не подскажите как сделать динамическое суммирование в Excel?
Dim i As Integer
i = 5
While dr.Read
ws.Cells(i, 2) = dr("name_r")
ws.Cells(i, 3) = dr("SUMMM")--Суммирование столбца???
ws.Cells(i, 4) = dr("SUMMB_WNDS")
ws.Cells(i, 5) = dr("SUMMB")
i = i + 1
End While
dr.Close()
...
Рейтинг: 0 / 0
Динамическое суммирование
    #35011978
SBL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hum_iДобрый день! Не подскажите как сделать динамическое суммирование в Excel?
Dim i As Integer
i = 5
While dr.Read
ws.Cells(i, 2) = dr("name_r")
ws.Cells(i, 3) = dr("SUMMM")--Суммирование столбца???
ws.Cells(i, 4) = dr("SUMMB_WNDS")
ws.Cells(i, 5) = dr("SUMMB")
i = i + 1
End While
dr.Close()

какого столбца? sum(A:A)?
...
Рейтинг: 0 / 0
Динамическое суммирование
    #35013581
hum_i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот этого столбца к примеру. Так как это 3-й столбец поэтому summ(C?:C?)

ws.Cells(i, 3) = dr("SUMMM")--Суммирование столбца
...
Рейтинг: 0 / 0
Динамическое суммирование
    #35016420
holymen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Присоединяюсь к вопросу ..
как сделать динамическое суммирование по всем листам книги .. либо при добавление нового листа в книгу.
суммировать необходимо ячейки, цвет которых
.ColorIndex = 35 (бледно зеоленый)
пока удается только находить эти ячейки ..
подскажите за какое событие цепляться ...
...
Рейтинг: 0 / 0
Динамическое суммирование
    #35016442
holymen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот можно отловить добовление листа в книгу .. писать нуна в модуле "WorkBook"
Private Sub Workbook_NewSheet(ByVal Sh As Object)
MsgBox ("Бугога")

End Sub
...
Рейтинг: 0 / 0
Динамическое суммирование
    #35016443
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что значит за какое? Смотря после какого события вам нужен расчёт
...
Рейтинг: 0 / 0
Динамическое суммирование
    #35016503
holymen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да.. извеняюсь за некорректно заданный вопрос ..
сам не решил после какого события мне это нужно .. решил делать пока так, написать функцию ктоторая будет делать суммирование по всем листам , потом её уже вызывать в нужный мне момент..

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Function shCreateFormul(sName As Variant) As String
Dim sWorkBook As Workbook
Dim sWorkSheet  As Worksheet
Dim sRange As Range
Dim ws As Worksheet

'пробуем организовать цикл по листам
For Each iWorkbook In Workbooks
If iWorkbook.Name = ThisWorkbook.Name Then
    For Each ws In Worksheets
    MsgBox (ws.Name)
    Next ws
End If
Next
End Function

а вот задача для суммирования
Есть первый "лист" на котором должны собиратся итоги (сумма) со всех листов в книге . структура листов одинаковая .
вот если на пальцах то так..
Лист1.А1:А1= Лист1.А1:А1+Лист2.А1:А1+Лист3.А1:А1+ ЛистN.А1:А1
и так далее ..
атличительная черта ячек которые подлежать к суммированию.. это их цвет .ColorIndex = 35

вот пока такие наброски, все ячейки в книге .ColorIndex которых = 35
можно найти с помощью этого кода

Код: plaintext
1.
2.
3.
  With Application.FindFormat.Interior
        .ColorIndex =  35 
        .Pattern = xlSolid
End With

организацию цикла по листам написал выше..
вот думаю пока как в листах организовать цикл по ячейкам .. зеленого цвета ... и написания формулы суммирования ..

пасибо за любые советы))
...
Рейтинг: 0 / 0
Динамическое суммирование
    #35016713
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Option Explicit

Sub FindFormatColletion()
 Dim firstAddress As String, c As Range
    
   ' очистить и задать формат поиска
    With Application.FindFormat
        .Clear
        .Interior.ColorIndex =  35 
    End With

   ' перебрать ячейки с форматом
    With Worksheets( 1 ).Cells
     Set c = .Find(What:="", SearchFormat:=True)
      If Not c Is Nothing Then
         firstAddress = c.Address
         Do
             Debug.Print c.Address ' вместо этого запуск любого действия, которое тебе нужно
             
             Set c = .Find(What:="", After:=c, SearchFormat:=True)
         Loop While Not c Is Nothing And c.Address <> firstAddress
      End If
    End With

End Sub
...
Рейтинг: 0 / 0
Динамическое суммирование
    #35017808
holymen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Deggasad , спасибо.. это именно то что нужно... завтра выложу что получилось)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Динамическое суммирование
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]