Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / сложение по условию / 14 сообщений из 14, страница 1 из 1
11.08.2008, 08:30
    #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
11.08.2008, 08:55
    #35480533
birk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сложение по условию
Был бы конкретный пример, было бы легче
...
Рейтинг: 0 / 0
11.08.2008, 09:09
    #35480555
Nomad87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сложение по условию
вот пример
нужно вычислить стоимость работ "Нашего предприятия"
как вычленить этап и месяц я знаю
вопрос в том как лучше и правильнее написать условия для сложения стоимости работы
были идеи:
типа сохранить строку "Работы нашего предприятия"
и в цикле по этапам сравнивать
но как тогда складывать ведь в наименованиях работ нет названия предприятия
подскажите

заранее благодарен
...
Рейтинг: 0 / 0
11.08.2008, 09:45
    #35480616
birk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сложение по условию
Нужно в цикле складывать то что ниже "Работы нашего предприятия" до конца.
Почему обычной формулой не воспользоваться?
...
Рейтинг: 0 / 0
11.08.2008, 09:50
    #35480627
Nomad87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сложение по условию
проблема то в том что там может быть не до конца,
может быть работы других предпритий, или другие этапы
а не воспользовался по тому как это не вся программа а часть большей программы
вот.
главная цель - работа с календарными планами, а это только подцель.
...
Рейтинг: 0 / 0
11.08.2008, 10:00
    #35480640
birk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сложение по условию
Nomad87проблема то в том что там может быть не до конца,
может быть работы других предпритий, или другие этапы
а не воспользовался по тому как это не вся программа а часть большей программы
вот.
главная цель - работа с календарными планами, а это только подцель.
Бежать циклов, если ячейка равна "Работы нашего предприятия", то начинаю считать, пока в ячейка не будет встречаться слово "работы". Исходя из вашего примера
Или пока столбец Е не пустой, много вариантов
...
Рейтинг: 0 / 0
11.08.2008, 11:29
    #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
11.08.2008, 11:34
    #35480849
birk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сложение по условию
Если работает, значит так :)
...
Рейтинг: 0 / 0
11.08.2008, 11:39
    #35480865
Nomad87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сложение по условию
0:-) на самом деле не хочет почему то работать ... :((
пишет ошибку
Application-defined or object-defined error

и показывает на строчку :
text = Workbooks(nameIn).Sheets(h).Range("A" & s + 1)
...
Рейтинг: 0 / 0
11.08.2008, 11:43
    #35480870
birk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сложение по условию
s чему равна?
...
Рейтинг: 0 / 0
11.08.2008, 11:46
    #35480887
Nomad87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сложение по условию
s он правильно сосчитал там оно 17
я нашел в чем ошибка (В ) у меня была написала по русски ... )
после того как поменял и поставил sum as long
программа заработала но зависла на вычислении sum хотя цифры совсем небольшие ... непоняяятно :(
...
Рейтинг: 0 / 0
11.08.2008, 12:11
    #35480954
Nomad87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сложение по условию
после отвисания пишет что ему не хватает типа long ...
эт 100% неправильно ... не пойму где идет зацикливание :((
...
Рейтинг: 0 / 0
11.08.2008, 12:43
    #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
12.08.2008, 06:42
    #35482243
Nomad87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сложение по условию
пасиб огромное ДмиДми ) часто меня выручаешь :)
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / сложение по условию / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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