Страницы: 1
RSS
Прошу помощи в создании таблицы для ведения учёта моточасов
 
Всем добрый день!Полистал форум,вроде сюда надо писать по такому вопросу.  
В прикреплённом файле на втором листе имеется таблица. Каждый месяц имеет два столбца, первый - общее количество моточасов авто на текущий день, второй - количество моточасов за текущий день. Оператору каждый день звонят и сообщают общее количество моточасов на текущий день ,которое он забивает в первый столбец, второй заполняется автоматически.  
Оператор так же должен следить за своевременным прохождением ТО.    
Существует 3 разных вида ТО.  
1)500мт ТО двигателя производится после каждые 500мт например 500-1000-1500-2000-2500 и т.д  
2)1000мт ТО трансмиссии производится каждые 1000мт например 1000-2000-3000-4000-5000 и т.д.  
3)2000мт ТО гидравлики производится каждые 2000мт например 2000-4000-6000-8000 и т.д  
Но автомобили не проходят ТО в точно назначенное время по ряду причин, бывают задержки которые копятся и график прохождения ТО смещается. Например ТО 500 было произведено на 2440мт,т.е. следующее такое то будет в 2940мт.    
Что требуется: моя идея в том чтобы в таблице метить пробег на котором было произведено то или иное ТО разными цветами вручную. Как видно на таблице каждому ТО соответствует свой цвет. После того как мы пометили количество моточасов на котором был совершён ТО, требуется чтоб под таблицей в 37 строке в залитых соответствующими цветами ячейках выводился пробег на котором надо будет совершить следующее ТО, т.е. в зелёной ячейке 37 строки выводилось значение 2440+500 в красной 2520+1000 и т.д.    
НО! ТО проводится не один раз в год а регулярно, и во всей таблице будет много закрашенных ячеек которые указывают на пройденные ТО. Необходимо чтобы из всех этих ячеек бралась та ячейка, которой соответствует большее количество моточасов т.е. последнее ТО,это по каждому из 3х цветов.  
После того как это будет работать необходимо чтобы на первой странице в отображались данные о подходящем ТО.  
В столбце «С» необходимо выполнить такой алгоритм: если значение в «В2»на первом листе = значению «А37» на втором листе «авто 1», то ячейка загорается жёлтым  цветом, надо чтобы она начала гореть за 50 моточасов  до указанного срока,и ещё 10 мт красным по окончанию срока.  
В столбце «D» необходимо выполнить такой алгоритм: если значение в «В2»на первом листе = значению «D37» на втором листе «авто 1», то ячейка загорается жёлтым  цветом, надо чтобы она начала гореть за 50 моточасов  до указанного срока,и ещё 10 мт красным по окончанию срока.  
В столбце «Е» необходимо выполнить такой алгоритм: если значение в «В2»на первом листе = значению «G37» на втором листе «авто 1», то ячейка загорается жёлтым  цветом, надо чтобы она начала гореть за 50 моточасов  до указанного срока,и ещё 10 мт красным по окончанию срока.  
И так для всех 10 авто.  
Если конкретнее, то я не знаю как на втором листе в строку 37, вывести значения ячеек отмеченных определёнными цветами.  
Вроде всё понятно объяснил. Не знаю насколько моя идея реальна в воплощении, поэтому если у вас есть более рациональные способы воплощения такой задачи предлагайте.  
Заранее благодарен!
 
Обсуждение здесь:  
 http://www.excel-vba.ru/forum/index.php?topic=966.0
 
Sj45 посмотрел Ваш файл, сходил по ссылке от Сержа. Все что увидел - Вы ни чего не сделали.  
По Вашему примеру даже браться не стоит. Основная ошибка - Вы перепутали отчет начальнику с учетом и контролем данных в Ехс.  
Если есть необходимость, то разделите учет по машинам по листам. А вот данные вносить стоит в формате    
дата...МотоЧасы...ТО  
Где ТО это тип ТО на дату проведения. Чтобы формула была легче - даже если на 1 дату пришлось 3 типа ТО их надо вносить каждую отдельно.  
Пример формулы выложу вечером из дома. Веду учет расходов на машину где для интереса считаю расход на баке от заправки до заправки.
 
Держите пример файла. В нем ищется максимальная дата заправки (бензин) и подставляется в формулу. Если Вы измените свою таблицу - ее легко использовать для Вас.
 
Igor67 Спасибо!
 
Всем спасибо за то что отозвались, задачу выполнили с помощью создания макроса:  
Sub Макрос1()    
    For i = 2 To 11    
 
        Set r = Worksheets(i).Range("B4:AE34")    
        Set to500 = Worksheets(i).Range("A37")    
        Set to1000 = Worksheets(i).Range("D37")    
        Set to2000 = Worksheets(i).Range("G37")    
 
        For n = 1 To r.Rows.Count    
            If r.Cells(n, 1).Interior.ColorIndex = to500.Cells(1, 1).Interior.ColorIndex Then    
                to500.Cells(1, 1).Value = r.Cells(n, 1).Value + 500    
            End If    
            If r.Cells(n, 1).Interior.ColorIndex = to1000.Cells(1, 1).Interior.ColorIndex Then    
                to1000.Cells(1, 1).Value = r.Cells(n, 1).Value + 1000    
            End If    
            If r.Cells(n, 1).Interior.ColorIndex = to2000.Cells(1, 1).Interior.ColorIndex Then    
                to2000.Cells(1, 1).Value = r.Cells(n, 1).Value + 2000    
            End If    
        Next n    
    Next i    
End Sub  
 
может кому пригодится.
Страницы: 1
Читают тему
Наверх