Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Динамическое суммирование / 9 сообщений из 9, страница 1 из 1
14.12.2007, 14:38:45
    #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
15.12.2007, 02:51:44
    #35011978
SBL
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
17.12.2007, 07:26:20
    #35013581
hum_i
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое суммирование
Вот этого столбца к примеру. Так как это 3-й столбец поэтому summ(C?:C?)

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

End Sub
...
Рейтинг: 0 / 0
18.12.2007, 08:11:32
    #35016443
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое суммирование
Что значит за какое? Смотря после какого события вам нужен расчёт
...
Рейтинг: 0 / 0
18.12.2007, 08:59:49
    #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
18.12.2007, 10:22:55
    #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
18.12.2007, 14:56:55
    #35017808
holymen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое суммирование
Deggasad , спасибо.. это именно то что нужно... завтра выложу что получилось)
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Динамическое суммирование / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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