Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Расчет цены по типу работ
 
Добрый день.

Нужно чтобы в столбце "Цена" была формула: если в столбце "тип работ" выбрать "диван (угловой)", то нужно найти соответствие в столбце "Наименование работ", если совпадают, то вставить "Стоимость".
Присвоение уникального номера по комбинации цифр
 
 Добрый день!

Есть столбик с цифрами (столбик С). Цифры создают комбинации которые идут так: 1-2-3, 1-2, 1-3.

Требуется макрос который будет каждой комбинации присваивать уникальный номер. То есть если идет комбинация 1-2-3, то ей например присваивается номер 000001. Если 1-2, то например 000002, 1-3 то например 000004 и т.д. Главное чтобы для каждой комбинации присваивался 1 уникальный номер.

В идеале: макрос создает рядом с столбиком С пустой столбик, и в него записывает уникальные номера.

П.С. Иногда в между цифрами попадаются пустые ячейки. Например 1-2-3-1-2-пустая ячейка-1-пустая ячейка-3.

Комбинация должна начинаться строго с цифры 1, если идет 1-2-3-2-3, то последние 2 и 3 должны игнорироваться, присвоение номера должно произойти для первых 1-2-3.
Расчет времени при совпадении двух параметров, Нужно расчитать время,
 
Добрый день.

Требуется макрос, который будет проверять столбик L (ACT_USER), на совпадение с со списком нужных имен (список имен приложен). Если есть совпадение, то следующим действием нужно проверить столбик N (ACT_TITLE) в той же строчке со списком дейсвий (так же приложен). Если ИМЯ и ДЕЙСТВИЕ совпадают со списками, то нужно в столбике J (ACT_TIME) провести расчет: время этой же строчки, отнять время предыдущей строчки.

Получается так: В столбике L встречается имя YEKATERINA.STEFANOVA (3 строка), в столбике N 3й строки попадается "Скопировано в буфер", то нужно J3 - J2 (столбик ACT_TIME) для расчета количества времени. Результат расчета записать в соответствующие строки в столбик O.
Изменено: Толстяк3 - 28.12.2017 12:11:25
Разделение времени на "День" / "Ночь"
 
Добрый день. Есть таблица с датами и временем. Нужен макрос который в соседнем столбце отобразит день это был или ночь, при условии, что день (с 9-00 до 18-00), ночь (с 18-00 до 9-00).
Определение превышения по времени, Ошибка в макросе.
 
Добрый день. Есть 5 макросов которые работают друг за другом:
1й макрос, убирает с колонки "М" ячейки не содержащие "4G". 2й макрос убирает с колонки "К" ячейки не содержащие объекты "ERBS". 3й создает колонку "DownTime" и высчитывает в нем разницу между "Start_Date" и "Finish_date", получает число. 4й по колонке "М" определяет приоритет. 5й макрос должен определять превышение по времени и приоритету, то есть если приоритет "4" и время в колонке "DownTime" превышает 1440 то в колонке "R" появляется цифра "1". Если не превышает 1440 то появляется "0".

Проблема в 5м макросе. При прогонке макроса, крашится в строке:
"If Cells(i, 14).Value = 4 Then If (1441 - Cells(i, 17).Value) > 0 Then Cells(i, 18).Value = 0 Else Cells(i, 18).Value = 1"

Вопрос: Где ошибка?

Код прилагаю:
Код
Sub Delnot4G()                                ' удаление строк, в которых нет 4G - рабочая
Application.ScreenUpdating = False
Dim lLastCol As Long, i&
lLastRow = Cells(Rows.Count, 1).End(xlUp).Row  ' определяем номер последней строки
With Worksheets("1")                 ' лист должен называться "1"
   For i = lLastRow to 2 Step -1      ' обработка в обратном порядке, т.е. с конца таблицы
     If Not (Cells(i, 13) like "*4G*") Then Rows(i).Delete  ' если в столбце M (13) значение не равно 4G, то удалить строку
   Next i
End With
End Sub


Sub TTRR_2_DelToERBS()
' удаление в столбце "K" всего текста до позиции "ERBS"
Application.ScreenUpdating = False

Dim s As String, lLastCol As Long, MyPos, i&, b
lLastRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = lLastRow To 2 Step -1
        MyPos = InStr(1, Cells(i, 11), "ERBS", vbTextCompare)
        b = MyPos - 1
        s = Cells(i, 11).Value
        s = Right(s, (Len(s) - b))
        Cells(i, 11).Value = s
        Next i

' удаление в столбце "M" всего текста до позиции "4G:"
For i = lLastRow To 2 Step -1
        MyPos = InStr(1, Cells(i, 13), "4G:", vbTextCompare)
        b = MyPos - 1
        s = Cells(i, 13).Value
        s = Right(s, (Len(s) - b))
        Cells(i, 13).Value = s
' определение региона 51 - Актау, 61 - Атырау
   If Cells(i, 11) like "ERBS_5*" Then Cells(i,3).Value = "Aktau(M)"
         if Cells(i, 11) like "ERBS_61*" Then Cells(i,3).Value = "Atyrau"
        Next i
End Sub

Sub TTRR_3_countMIN()
Application.ScreenUpdating = False
' подсчет downtime как разница между finish_date и start_date (в минутах)
Columns(16).EntireColumn.Insert 'вставка столбца перед столбцом Р
Dim s As String, lLastCol As Long, MyPos, i&, b
lLastRow = Cells(Rows.Count, 1).End(xlUp).Row
Range("P2").Select
For i = lLastRow To 2 Step -1
        Cells(i, 16).Value = "=(RC[-1]-RC[-2])*24*60"
        Next i
        Columns("P:P").Select
    Selection.NumberFormat = "0"
    Range("P1").Select
    ActiveCell.FormulaR1C1 = "Downtime" ' присвоение имени столбцу
End Sub

Sub TTRR_4_Prioritet()
' присвоение приоритетов ТТ
    Application.ScreenUpdating = False
    Columns(14).EntireColumn.Insert    'вставка столбца перед столбцом N
    Dim lLastRow As Long, i&, t&, arr
    lLastRow = Cells(Rows.Count, 1).End(xlUp).Row
    For i = lLastRow To 2 Step -1
        If InStr(1, Cells(i, 13), ":", vbTextCompare) Then
            arr = Split(Cells(i, 13), ":", 2)
            t = Split(arr(1), ",")(0)
            Select Case True
                Case t = 1: Cells(i, 14).Value = 4
                Case t > 1 And t < 5: Cells(i, 14).Value = 3
                Case t > 4 And t < 20: Cells(i, 14).Value = 2
                Case t > 19: Cells(i, 14).Value = 1
            End Select
        End If
    Next i
    Range("N1").FormulaR1C1 = "Priority"    ' переименование столбца "N"
End Sub

Sub TTRR_5_opredPrevisheniya()
' определение ТТ с превышением (признак 1) нормативного времени решения
Application.ScreenUpdating = False
Columns(18).EntireColumn.Insert 'вставка столбца перед столбцом R
Dim s As String, lLastCol As Long, MyPos, i&, b
lLastRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = lLastRow To 2 Step -1
        If Cells(i, 14).Value = 4 Then If (1441 - Cells(i, 17).Value) > 0 Then Cells(i, 18).Value = 0 Else Cells(i, 18).Value = 1
        If Cells(i, 14).Value = 3 Then If (481 - Cells(i, 17).Value) > 0 Then Cells(i, 18).Value = 0 Else Cells(i, 18).Value = 1
        If Cells(i, 14).Value = 2 Then If (361 - Cells(i, 17).Value) > 0 Then Cells(i, 18).Value = 0 Else Cells(i, 18).Value = 1
        If Cells(i, 14).Value = 1 Then If (241 - Cells(i, 17).Value) > 0 Then Cells(i, 18).Value = 0 Else Cells(i, 18).Value = 1
        Next i
         Range("R1").Select
    ActiveCell.FormulaR1C1 = "Out_of_Norm" ' переименование столбца "R"
End Sub

Sub TTRR_Ultimate()
    Call TTRR_1_DelNot4G
    Call TTRR_2_DelToERBS
    Call TTRR_3_countMIN
    Call TTRR_4_Prioritet
    Call TTRR_5_opredPrevisheniya
    End Sub
Макрос по расстановке приоритета.
 
Добрый день. Есть макроса который должен в файле расставлять приоритет следующим образом:
1. Создает колонку N.
2. В колонке M, проверяет какая цифра стоит после знака ":". Если "1", то ставит в колонку N "4" приоритет. Если >1 но <5 то "3". Если >4 но <20 то "2". Если >19 то "1".

Проблема: Крашится в этом месте: If s = 1 Then Cells(i, 14).Value = "4".
Вопрос: Где ошибка в коде?

Сам код:
Код
Sub priority() ' WORK
' присвоение приоритетов ТТ
Application.ScreenUpdating = False
Columns(14).EntireColumn.Insert 'вставка столбца перед столбцом N
Dim s As String, lLastCol As Long, MyPos, i&, b
lLastRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = lLastRow To 2 Step -1
        MyPos = InStr(1, Cells(i, 13), ":", vbTextCompare)
        b = MyPos
        s = Cells(i, 13).Value
        s = Right(s, (Len(s) - b))
        If s = 1 Then Cells(i, 14).Value = "4"
        If s > 1 And s < 5 Then Cells(i, 14).Value = "3"
        If s > 4 And s < 20 Then Cells(i, 14).Value = "2"
        If s > 19 Then Cells(i, 14).Value = "1"
        Next i
        Range("N1").Select
    ActiveCell.FormulaR1C1 = "Priority" ' переименование столбца "N" 
End Sub






Файл прилагаю.
Изменено: Толстяк3 - 29.08.2017 08:23:55
Копирование дубликатов по листам, Макрос который переносит дубликаты на другой лист
 
Добрый день. Нужен макрос, который дубликаты по столбу CASE_ID скопирует на другой лист следующим образом: Двойные на первый лист, тройные на второй, четверные на третий и т.д. Должно получится как в примере
Страницы: 1
Наверх