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

Страницы: 1 2 3 4 5 След.
Изменение всех Label на форме, написать вложенный цикл
 
Апострофф, Черт, как Вы это делаете? Браво!
Изменение всех Label на форме, написать вложенный цикл
 
Цитата
Юрий М написал:
Если правильно понял (в чём сомневаюсь):
похоже работает, но промахивается на один шаг
Изменение всех Label на форме, написать вложенный цикл
 
Ух сколько вариантов, надо все пробовать, спасибо!
Изменение всех Label на форме, написать вложенный цикл
 
Как с помощью цикла записать это?
Код
'If Hour(Now) = 0 Then Med_Chart.lblTimeLine.Left = 270
'If Hour(Now) = 1 Then Med_Chart.lblTimeLine.Left = 288
'If Hour(Now) = 2 Then Med_Chart.lblTimeLine.Left = 306
'If Hour(Now) = 3 Then Med_Chart.lblTimeLine.Left = 324
'If Hour(Now) = 4 Then Med_Chart.lblTimeLine.Left = 342
'If Hour(Now) = 5 Then Med_Chart.lblTimeLine.Left = 360
'If Hour(Now) = 6 Then Med_Chart.lblTimeLine.Left = 378
'If Hour(Now) = 7 Then Med_Chart.lblTimeLine.Left = 396
'If Hour(Now) = 8 Then Med_Chart.lblTimeLine.Left = 414
'If Hour(Now) = 9 Then Med_Chart.lblTimeLine.Left = 0
'If Hour(Now) = 10 Then Med_Chart.lblTimeLine.Left = 18
'If Hour(Now) = 11 Then Med_Chart.lblTimeLine.Left = 36
'If Hour(Now) = 12 Then Med_Chart.lblTimeLine.Left = 54
'If Hour(Now) = 13 Then Med_Chart.lblTimeLine.Left = 72
'If Hour(Now) = 14 Then Med_Chart.lblTimeLine.Left = 90
'If Hour(Now) = 15 Then Med_Chart.lblTimeLine.Left = 108
'If Hour(Now) = 16 Then Med_Chart.lblTimeLine.Left = 126
'If Hour(Now) = 17 Then Med_Chart.lblTimeLine.Left = 144
'If Hour(Now) = 18 Then Med_Chart.lblTimeLine.Left = 162
'If Hour(Now) = 19 Then Med_Chart.lblTimeLine.Left = 180
'If Hour(Now) = 20 Then Med_Chart.lblTimeLine.Left = 198
'If Hour(Now) = 21 Then Med_Chart.lblTimeLine.Left = 216
'If Hour(Now) = 22 Then Med_Chart.lblTimeLine.Left = 234
'If Hour(Now) = 23 Then Med_Chart.lblTimeLine.Left = 252
Изменение всех Label на форме, написать вложенный цикл
 
Nordheim, Хорошо, а что с циклами-то не так?
Изменение всех Label на форме, написать вложенный цикл
 
Цитата
Nordheim написал:
Если известно какой лейбл равен часу, то в чем проблема сделать еще один с теми же параметрами что и искомый, и поставить прозрачность.
Ну это тоже альтерантивный вариант кстати. Может и так попробовать.  
Изменение всех Label на форме, написать вложенный цикл
 
сообщение #4
Изменение всех Label на форме, написать вложенный цикл
 
Цитата
Nordheim написал: нужно подсветить тот лейбл который уже определен?
вчера вы помогли выделить цветом леибл, соответствующий текущему часу. Сегодня хочу вокург этого лейбла сделать красную рамку. Перекрашивать рамку самого лейбла не вариант, потому что лейблы друг друга на один пиксель перекрывают.

вот так
Изменение всех Label на форме, написать вложенный цикл
 
Цитата
Юрий М написал:
В таком случае Вы увидите результат, который получился после 24-ой итерации. Зачем?
не совсем, отработает только то, что соответствует заданному условию, а это может быть только одно из 24
Изменение всех Label на форме, написать вложенный цикл
 
Короче так. В первом посте видна последовательность лейблов. Там с 9 до 23 и с 0 до 8. Поэтому первый цикл должен двигать рамку с 0 до 8, второй с 9 до 23. Первый цикл запускается, если условие Hour(Now) соответствует от 0 до 8. Второй цикл вложенный, первый проходит 15 итераций для продвижения с 9 часов до 23, второй вложенный цикл для значения передаваемого в расчет сдвига.  
Изменение всех Label на форме, написать вложенный цикл
 
Еще  в продолжение этой темы. Решил сделать вокруг выделенных лейблов рамку. Рамку тоже прозрачным лейблом с красными краями.
для премещения рамки вариант с просто изменением параметра .left
Код
If Hour(Now) = 0 Then Me.lblTimeLine.Left = 270
......................... и так 24 раза
работает  все как надо
но хочу изящнее сделать и сократить код. И вот тут ничего не получается. В чем может быть ошибка?
Код
If Hour(Now) >= 0 And Hour(Now) <= 8 Then
    For j = 0 To 8
    Me.lblTimeLine.Left = 270
        If Hour(Now) = j Then Me.lblTimeLine.Left = Me.lblTimeLine.Left + 18 * j
        Next j
Else
    For y = 0 To 15
    Me.lblTimeLine.Left = 0
        For x = 9 To 23
        If Hour(Now) = x Then Me.lblTimeLine.Left = Me.lblTimeLine.Left + 18 * y
        Next x
    Next y
End If
Изменено: Doctorbol - 05.12.2018 20:23:49
Изменение всех Label на форме, написать вложенный цикл
 
там не все лейблы одного цвета
Изменение всех Label на форме, написать вложенный цикл
 
Цитата
Nordheim написал:
В сообщении №15 показано как проще сделать.
Апострофф,

Спасибо огромное, заработало!
Изменение всех Label на форме, написать вложенный цикл
 
Может как-то проще можно было бы сделать?
Изменение всех Label на форме, написать вложенный цикл
 
Nordheim,по моему замыслу, цикл должен прогонять лейблы и по их имени присваивать в переменную lblHour соответствующее значение, затем сравнивать переменную lblHour с СurrentHour и если совпадает, то перекрашивать леибл.
Изменение всех Label на форме, написать вложенный цикл
 
Цитата
Nordheim написал:
Это имена лейблов или значения? Если имя то смысл в цикле вообще?
Смысл вот в чем. Делаю функцию с универсальным циклом в котором проходим по всем значениям от 0 до 23, а значение индекса (A,B,C и т.д.) передается из имени конкретного лейбла. Первый цикл берет лейбл с формы, второй прогоняет его по 24 часам.
Изменение всех Label на форме, написать вложенный цикл
 
Вот форма
Изменение всех Label на форме, написать вложенный цикл
 
только сейчас понял, что видимо сравнение с передачей в маску "*i" итератора работать не будет. А как тогда можно сделать?
Изменение всех Label на форме, написать вложенный цикл
 
Цитата
Nordheim написал:
не боитесь с таким количеством лейблов , что будет немного притормаживать
Ну попробовать же интересно))) Но к конкретной задаче это не относится)
Изменение всех Label на форме, написать вложенный цикл
 
В текущем виде ошибка *438 (lblname = Nothing)
Изменение всех Label на форме, написать вложенный цикл
 
Доброго времени суток.

Ситуация следующая. На форме расположены 24 лейбла, по замыслу каждый соответствует временному промежутку в 1 час.

Необходимо сравнивать текущее системное время и подсвечивать соответствующий лейбл.
Написал функцию, в которой возвращаем системное время в часах, и сравниваем ее с названием лейбла. Нужна именно функция, потому что в конечном счете будет таблица из 552 лейблов.(23х24, где ряды это часы, а строки A-W как в Excel ) Поэтому два вложенных цикла, один проходит по всем лейблам, второй по каждому из 24. (например А0-А23)
Код
Private Sub HourReload()
CurrentHour = Hour(Now)
Dim lblHour As Integer
Dim lblname As Control

For Each lblname In ChartFrame 'название рамки объединяющей все лейблы
 If TypeOf lblname Is Label Then
        For i = 0 To 23
        If lblname Like "*i" Then lblHour = i
        Next i
 End If
Next lblname


If lblHour <> CurrentHour Then
   lbl.BackColor = &H80000004
Else
   lbl.BackColor = &HC0E0FF
End If
End Sub  
Часовой таймлайн, условное форматирование.
 
Хотел сделать условным форматированием, чтобы прошедшее рабочее время закрашивалось. Для этого создал еще одну временную шкалу с 0:00 и к ней формулу: =B$3+9/24<HOUR(NOW())/24. До полуночи работает как надо, после полуночи все сбрасывается, потому что системное время переходит на новые сутки.  
Изменено: Doctorbol - 18.05.2015 00:38:15
2 контекстных меню на одной странице
 
Sanja, спасибо.
2 контекстных меню на одной странице
 
Разбираю этот тутор: https://msdn.microsoft.com/ru-ru/library/office/gg987030(v=office.14).aspx
хочу сделать 2 типа контекстных меню для одной страницы, привязанные к именным областям и привязать все это на клик правой кнопки мыши. В чем ошибки?
Код
Sub CreateDisplayPopUpMenu()
    ' Delete the popup menu if it exist.
    Call DeletePopUpMenu

    ' Create the correct menu based on the active worksheet.
    Dim rng As Range, rng2 As Range
    Set rng = ActiveSheet.Range("Area")
    Set rng2 = ActiveSheet.Range("Area2")
    Select Case Range.Name
    Case "area": Call Custom_PopUpMenu_1
    Case "area2": Call Custom_PopUpMenu_2
    Case Else: MsgBox "Sorry no Popup Menu"
    End Select

    ' Show the popup menu.
    On Error Resume Next
    Application.CommandBars(Mname).ShowPopup
    On Error GoTo 0
End Sub

Часовой таймлайн, условное форматирование.
 
А как нужно изменить формулу в условном форматировании, чтобы все прошедшее время отмечалось? Если
= AA$10<HOUR(Now())/24, то промежуток времени от 0 часов до 8 утра тоже подсвечивается. Рабочая смена 24 часа с 9-00 до 9-00.
Подсветка синтаксиса
 
Все_просто, спасибо огромное.
Подсветка синтаксиса
 
Возможно есть какой-то add-in или сторонний редактор для VBA, где эта функция реализована. Например здесь на сайте отлично сделано, что есть нумерация строк  подсветка синтаксиса. так же не хватает функции сворачивания части кода.
Для удобства работы с кодом хотелось бы иметь такое в Excel. Это возможно?
Часовой таймлайн, условное форматирование.
 
Все, пока все формулы руками не вписал, ничего не получалось. Еще раз всем спасибо.
Изменено: Doctorbol - 01.05.2015 19:21:32
Часовой таймлайн, условное форматирование.
 
Ivan.kh,
не работает.
Часовой таймлайн, условное форматирование.
 
Блин, весь день бьюсь. Не получается у меня с этой формулой ничего...
Где ошибка, подскажите
Страницы: 1 2 3 4 5 След.
Наверх