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

Страницы: 1
Макрос для быстрого ввода процентов
 
Здравствуйте

Есть макрос который позволяет быстрее вводить даты и время - без написания разделительных символов между числами, т.е., пишем:
080918 (или 80918) > макрос преобразует это число в дату > 08.09.2018
или
800 (или 0800) > макрос преобразует это число в время > 08:00

Это экономит много времени и сил, но можно ли сделать такое же для процентов? (десятичных знаков после точки будет всегда 2) т.е. пишем:
1246 > макрос преобразует это число в проценты > 12.46%
или
-700 > -7.00%
12306 > 123.06%
598700 > 5987.00%

Макрос состоит из 2 блоков, первый отвечает за даты, второй за время, в каждом блоке указывается диапазон для работы макроса в нужных столбцах, т.е. нужен третий блок только для процентов (в указаном диапазоне ячеек будут вводится только проценты и макрос может быть уверен что введенное число нужно преобразовать в процент).

Код макроса:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim vVal
Dim StrVal As String
Dim dDate As Date
 
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A1:A999")) Is Nothing Then
        With Target
        StrVal = Format(.Text, "000000")
        If IsNumeric(StrVal) And Len(StrVal) = 6 Then
            Application.EnableEvents = False
            dDate = DateValue(Left(StrVal, 2) & "/" & Mid(StrVal, 3, 2) & "/" & Right(StrVal, 2))
            .NumberFormat = "dd/mm/yyyy"
            .Value = CDate(DateSerial(Year(dDate), Month(dDate), Day(dDate)))
           End If
        End With
    End If
     
    If Not Intersect(Target, Range("B1:B999")) Is Nothing Then
        With Target
            vVal = Format(.Value, "0000")
            If IsNumeric(vVal) And Len(vVal) = 4 Then
                Application.EnableEvents = False
                .Value = Left(vVal, 2) & ":" & Right(vVal, 2)
                .NumberFormat = "[hh]:mm"
            End If
        End With
     End If
     Application.EnableEvents = True
End Sub
Изменено: alexasavel - 08.09.2018 16:11:49
Зеркалирование столбца на другой лист
 
Здравствуйте, подскажите как правильно "зазеркалить" первые 2 столбца с Лист1 на другие листы?
Если сделать это формулой =Лист!A1 и протянуть ее, то не происходит соединения с последующими строками листа, при сортировке этих столбцов на Лист1, данные на Лист2 относительно первых 2 столбцов перемешиваются...
Изменено: alexasavel - 07.06.2017 19:43:57
Научить Excel понимать диапазон в одной ячейке
 
Здравствуйте, подскажите может ли Excel при построении графиков или вычислениях формулами понимать диапазон чисел в одной ячейке? например:
220-200
370-300
1345-900

и так-же понимать значение ИЛИ двух чисел в одной ячейке, например:
1000/500
180/20
т.е. 1000 или 500, 180 или 20
и использовать оба этих числа в графиках и вычислениях формулами, как-будто это 2 разных числа в отдельных ячейках?
Может нужно использовать какой-то специальный разделитель для этого, 3й день ищу не могу найти...
Страницы: 1
Наверх