Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> суммирование повторяющихся значений, l,VBA 
:(
    Опции темы
Staruha
Дата 25.11.2004, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 2
Всего: 27



На первый лист мастер цеха записывает Фамилию рабочего и код выполненной им операции.
Автоматически проставляетчя затраченное время.
На втором листе Табель (Список работающих и в названии столбцов -числа месяца). При заполнении первого листа автоматически проставляется "8" в табеле.Хотелось бы что бы вместо "8" проставлялась сумма выполненной работы рабочим за день. Так скажем суммировать повторяющиеся записи.
Private Sub CommandButton1_Click()
Код

Dim k As Integer
Dim d As Integer
Dim c As Integer
Dim r As Integer
Dim v As Integer

d = Лист1.UsedRange.Rows.Count 'заполняющийся список
For rwIndex = 2 To d

c = Лист2.UsedRange.Rows.Count 'Список работников в табеле
For rwIn = 2 To c
If Лист1.Range("A" & rwIndex).Value = Лист2.Range("A" & rwIn).Value Then'Если фамилия совпадает

v = Лист2.UsedRange.Columns.Count 'Названия столбцов -дата
For r = 1 To v

k = k + 1
If Range("B" & rwIndex).Value = Лист2.Cells(1, k).Value Then' то по дате в столбце"B"лист1
Лист2.Cells(rwIn, k).Value = 8 'Ставим восьмерку в совпадающем по дате столбце на Лист2
End If

Next r
End If
k = 0
Next rwIn
Next rwIndex

End Sub

smile



--------------------
Возмездие настигнет
PM MAIL   Вверх
cardinal
Дата 25.11.2004, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата
Автоматически проставляетчя затраченное время.

Куда проставляется, столбик какой?

А тут я вообще не понял зачем нужна переменная k.
Код

For r = 1 To v

k = k + 1
If Range("B" & rwIndex).Value = Лист2.Cells(1, k).Value Then' то по дате в столбце"B"лист1
Лист2.Cells(rwIn, k).Value = 8 'Ставим восьмерку в совпадающем по дате столбце на Лист2
End If

Next r

Помоему если написать так
Код

For r = 1 To v

If Range("B" & rwIndex).Value = Лист2.Cells(1, r).Value Then' то по дате в столбце"B"лист1
Лист2.Cells(rwIn, k).Value = 8 'Ставим восьмерку в совпадающем по дате столбце на Лист2
End If

Next r

то ничего не изменится... Или я опять недоспал? smile


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Staruha
Дата 25.11.2004, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 2
Всего: 27



Цитата
А тут я вообще не понял зачем нужна переменная k
здесь ты прав. smile
Но меня обрадовало то ,что меня поняли smile
Цитата
Куда проставляется, столбик какой?


Ну скажем Столбец А - фамилия
Столбец В-код операции
С - затраченное время на операцию
D - дата
Ну вот ,если Фамилия и дата совпадают ,надо суммировать.
Меня вобще-то просили просто цветом закрасить ,ноя думаю сумма была бы лучше .Сразу видно кто сколько заработал за день.



--------------------
Возмездие настигнет
PM MAIL   Вверх
cardinal
Дата 26.11.2004, 00:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



А так не пойдет?
Код

Dim d As Integer
Dim c As Integer
Dim r As Integer
Dim v As Integer

d = Лист1.UsedRange.Rows.Count 'заполняющийся список
For rwIndex = 2 To d

c = Лист2.UsedRange.Rows.Count 'Список работников в табеле
For rwIn = 2 To c
If Лист1.Range("A" & rwIndex).Value = Лист2.Range("A" & rwIn).Value Then'Если фамилия совпадает

v = Лист2.UsedRange.Columns.Count 'Названия столбцов -дата
For r = 1 To v

If Range("B" & rwIndex).Value = Лист2.Cells(1, к).Value Then' то по дате в столбце"B"лист1
'Ставим восьмерку в совпадающем по дате столбце на Лист2
Лист2.Cells(rwIn, k).Value = Лист2.Cells(rwIn, k).Value + Лист1.Range("C" & rwIndex).Value
End If

Next r
End If

Next rwIn
Next rwIndex

End Sub

Добавлено @ 00:51
Или что-нибудь похожее... smile


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Staruha
Дата 26.11.2004, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 2
Всего: 27



Все получилоь.Только k на r надо исправить,если кому интересно!Классная выборка получилась без всяких запросов.
Эх смалики не вставляются.Ну тогда пойду спою,а может даже и станцую.
С П А С И Б О !
Там в офисе есть тема (5у),теперь я знаю ответ,но сначало у себя попробую.


--------------------
Возмездие настигнет
PM MAIL   Вверх
cardinal
Дата 26.11.2004, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата
Только k на r надо исправить,если кому интересно!

Уже было поздно и я не заметил как я нажал на "r", а прописал русское "к" smile Вот прикол... А все потому, что сплю по 5-6 часов в последние дни smile


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0746 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.