powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / сложение по условию
14 сообщений из 14, страница 1 из 1
сложение по условию
    #35480511
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
народ, доброго всем времени суток.
вот такая проблема -
входные данные : (кусок таблицы)
Наименование работ Стоимость
Работы 1го предпр
1.1 10
1.2 20
1.3 29
Работы 2го предпр
1.4 25
1.5 45
Работы нашего предпр
1.6 70
1.7 90
Работы 4го предпр
100
вопрос как мне посчитать стоимоть затрат на работу своего предприятия
вернее - как это сделать лучше?
...
Рейтинг: 0 / 0
сложение по условию
    #35480533
birk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Был бы конкретный пример, было бы легче
...
Рейтинг: 0 / 0
сложение по условию
    #35480555
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот пример
нужно вычислить стоимость работ "Нашего предприятия"
как вычленить этап и месяц я знаю
вопрос в том как лучше и правильнее написать условия для сложения стоимости работы
были идеи:
типа сохранить строку "Работы нашего предприятия"
и в цикле по этапам сравнивать
но как тогда складывать ведь в наименованиях работ нет названия предприятия
подскажите

заранее благодарен
...
Рейтинг: 0 / 0
сложение по условию
    #35480616
birk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно в цикле складывать то что ниже "Работы нашего предприятия" до конца.
Почему обычной формулой не воспользоваться?
...
Рейтинг: 0 / 0
сложение по условию
    #35480627
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проблема то в том что там может быть не до конца,
может быть работы других предпритий, или другие этапы
а не воспользовался по тому как это не вся программа а часть большей программы
вот.
главная цель - работа с календарными планами, а это только подцель.
...
Рейтинг: 0 / 0
сложение по условию
    #35480640
birk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nomad87проблема то в том что там может быть не до конца,
может быть работы других предпритий, или другие этапы
а не воспользовался по тому как это не вся программа а часть большей программы
вот.
главная цель - работа с календарными планами, а это только подцель.
Бежать циклов, если ячейка равна "Работы нашего предприятия", то начинаю считать, пока в ячейка не будет встречаться слово "работы". Исходя из вашего примера
Или пока столбец Е не пустой, много вариантов
...
Рейтинг: 0 / 0
сложение по условию
    #35480842
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
т.е. как вариант можно сделать так? :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
For h =  1  To Workbooks(nameIn).Sheets.count
If Workbooks(nameIn).Sheets(h).name <> "Шаблон" Then
n1 = Workbooks(nameIn).Sheets(h).Range("B500").End(xlUp).Row
 For s =  1  To n1
   text = Workbooks(nameIn).Sheets(h).Range("В" & s)
  fnd = InStr( 1 , text, "работы нашего предприятия")
if fnd > 0 
   then bol = true
do while Workbooks(nameIn).Sheets(h).Range("E" & s).Value <>""
   Sum = sum + Workbooks(nameIn).Sheets(h).Range("E" & s).Value 
loop
bol = false
end if 
next 
end if
next
...
Рейтинг: 0 / 0
сложение по условию
    #35480849
birk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если работает, значит так :)
...
Рейтинг: 0 / 0
сложение по условию
    #35480865
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
0:-) на самом деле не хочет почему то работать ... :((
пишет ошибку
Application-defined or object-defined error

и показывает на строчку :
text = Workbooks(nameIn).Sheets(h).Range("A" & s + 1)
...
Рейтинг: 0 / 0
сложение по условию
    #35480870
birk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s чему равна?
...
Рейтинг: 0 / 0
сложение по условию
    #35480887
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
s он правильно сосчитал там оно 17
я нашел в чем ошибка (В ) у меня была написала по русски ... )
после того как поменял и поставил sum as long
программа заработала но зависла на вычислении sum хотя цифры совсем небольшие ... непоняяятно :(
...
Рейтинг: 0 / 0
сложение по условию
    #35480954
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
после отвисания пишет что ему не хватает типа long ...
эт 100% неправильно ... не пойму где идет зацикливание :((
...
Рейтинг: 0 / 0
сложение по условию
    #35481033
Фотография ДмиДми
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
25.
26.
27.
28.
29.
30.
31.
Sub Nomad87()
    Const nameIn = "пример.xls"
    Const name2skip = "Шаблон"
    Const findWhere As Long =  2 
    Const findWhat = "*работ*нашего*предпр*"
    Const totalCol As Long =  7 
    Const likeWhat = "*#.#*"
    
    Dim h As Long, sum As Double, r As Range

    sum =  0 
    With Workbooks(nameIn).Worksheets
        For h =  1  To .Count
            With .Item(h)
                If .Name <> name2skip Then
                    Set r = .Columns(findWhere).Find(What:=findWhat _
                        , LookIn:=xlFormulas _
                        , MatchCase:=False, SearchFormat:=False)
                    If Not r Is Nothing Then
                        Set r = r.Offset( 1 )
                        Do While r Like likeWhat
                            sum = sum + .Cells(r.Row, totalCol)
                            Set r = r.Offset( 1 )
                        Loop
                    End If
                End If
            End With
        Next
    End With
    MsgBox sum
End Sub
...
Рейтинг: 0 / 0
сложение по условию
    #35482243
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пасиб огромное ДмиДми ) часто меня выручаешь :)
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / сложение по условию
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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