Просмотр сообщений
|
Страниц: [1] 2 3 ... 33
|
2
|
Основные форумы / Вопросы по Excel и VBA / Отследить копирование листа внутри книги
|
: 11.03.2023, 17:38:50
|
И снова здравствуйте, уважаемые знатоки! При разработке простенькой программки возник вопрос: пользователь может скопировать лист для собственных нужд. Ну, например, повторяющаяся из месяца в месяц таблица. Возможно ли отследить событие копирования листа или, как вариант переименование листа? Это необходимо для изменения надписи в таблице. Решение с кнопкой "Скопировать лист" - отпадает по причине пользователя 
|
|
|
3
|
Основные форумы / Вопросы по Excel и VBA / Re:Проблема с модулем класса
|
: 17.02.2023, 09:50:12
|
Спасибо всем, проблема, похоже, решена. Мне ведь, собственно, нужны были только 2 комбобокса... Вот сам модуль класса: Option Explicit
' Событие клик на форме UF_PRO Public WithEvents Ch_Controls As MSForms.ComboBox
Private Sub Ch_Controls_Click()
' Вызов программы CTRLCLK с параметром имя контрола If PS_UFN = "UF_PRO" Then CtrlClk Ch_Controls.Name
End Sub И вызов: Option Explicit
Private Sub UserForm_Initialize()
Dim N_CntC As Integer Dim C_Ctrl As Control
N_CntC = 1
For Each C_Ctrl In Controls ' Перебор контролов в форме UF_PRO If Left(C_Ctrl.Name, 3) = "CmB" Then Set PAO_Ctrl(N_CntC).Ch_Controls = Me.Controls(C_Ctrl.Name) N_CntC = N_CntC + 1 End If Next
End Sub И объявление массивов: Public PAO_Lbls(1 To 34) As New CLSM_Labels ' Массив LABEL`ов Public PAO_Ctrl(1 To 2) As New CLSM_Controls ' Массив CONTROL`ов
Ещё раз спасибо за участие. И, попутно, личный вопрос к Дмитрию Щербакову: "Как Вы думаете, что повлечёт за собой импортозамещение в области ПО? Наша контора собирается переходить на Astra Linux и Р7 Офис. Я с ним немного ознакомился и, честно говоря, в полном недоумении. Там макросами, можно сказать, и не пахнет. Какое-то жалкое подобие левой руки убожество на JavaScript, с минимальными функциональными возможностями. Примерно в пределах 2 + 2 =... А ведь на компах крутится десяток моих макросов, практически все с пользовательскими формами. Ума не приложу, что делать...
|
|
|
5
|
Основные форумы / Вопросы по Excel и VBA / Проблема с модулем класса
|
: 16.02.2023, 12:33:30
|
Здравствуйте, уважаемые знатоки VBA. Давненько не захаживал на форум, но вот случилась такая оказия: написал модуль класса (2 штуки), один работает на "УРА", а вот со вторым проблема. Вот первый: Option Explicit
' Событие клик на форме UF_VYBM Public WithEvents Ch_Labels As MSForms.Label
Private Sub Ch_Labels_Click()
' Вызов программы SVODO с параметрами номер метки If PS_UFN = "UF_VybM" Then SvodO Val(Right(Ch_Labels.Name, 2))
End Sub
Вот его вызов: Option Explicit
Private Sub UserForm_Initialize()
Dim C_Lbl As Control
For Each C_Lbl In Controls ' Перебор контролов в форме UF_VYBM If C_Lbl.TabIndex > 0 And C_Lbl.TabIndex < 35 Then Set PAO_Lbls(C_Lbl.TabIndex).Ch_Labels = Me.Controls(C_Lbl.Name) Next
End Sub
В этом случае работаю с Label`s А вот второй, который не желает работать: Option Explicit
' Событие клик на форме UF_PRO Public WithEvents Ch_Controls As MSForms.Control
Private Sub Ch_Controls_Exit(ByVal Cancel As MSForms.ReturnBoolean)
' Вызов программы CTRLCLK с параметром имя контрола If PS_UFN = "UF_PRO" Then CtrlClk Ch_Controls.Name
End Sub
И, соответственно, его вызов: Option Explicit
Private Sub UserForm_Initialize()
Dim C_Ctrl As Control
For Each C_Ctrl In Controls ' Перебор контролов в форме UF_PRO Set PAO_Ctrl(C_Ctrl.TabIndex).Ch_Controls = Me.Controls(C_Ctrl.Name) Next
End Sub
В этом случае пытаюсь работать со всеми контролами. Объявлены оба массива как PUBLIC, в отдельном модуле: Public PAO_Lbls(1 To 34) As New CLSM_Labels ' Массив LABEL`ов Public PAO_Ctrl(1 To 40) As New CLSM_Controls ' Массив CONTROL`ов
Где накосячил - никак не пойму. Очень прошу ткнуть меня в нужном направлении, дабы понять кто, где, кого... 
|
|
|
8
|
Основные форумы / Вопросы по Excel и VBA / Re:Управление градиентом графика
|
: 25.03.2019, 14:22:49
|
Да суть-то не в данных, а в том, как задать положение точки перехода цвета в градиенте. Ведь наверняка кто-то сталкивался с подобной задачей... Файл слишком велик, поэтому выложу только диаграмму с данными. Вот, на листе Тнв 3 графика. На первом Точка 1 - 0%, Точка 2 - 100% (исходное состояние при построении графика). На втором Точка 1 - 50%, Точка 2 - 100% (ПОКРАСНЕНИЕ). На первом Точка 1 - 0%, Точка 2 - 50% (ПОСИНЕНИЕ). Визуально видно (надеюсь) как изменяется градиент в сторону "ПОКРАСНЕНИЯ" или "ПОСИНЕНИЯ" в зависимости от положения точки. Я хотел бы добиться такого сдвига средствами VBA, если это, конечно, возможно.
|
|
|
11
|
Основные форумы / Вопросы по Excel и VBA / Re:Управление градиентом графика
|
: 25.03.2019, 08:11:51
|
Так, упростим задачу, уберём 3-й цвет, оставим только два, но суть остаётся неизменной, нужно изменить положение точки градиента (?). См. вложения. Так как имеются известные ограничения на объём вложения придётся прикреплять в отдельных сообщениях. Заранее спасибо всем откликнувшимся.
|
|
|
12
|
Основные форумы / Вопросы по Excel и VBA / Re:Управление градиентом графика
|
: 24.03.2019, 18:25:15
|
Что-то подобное мне встречалось, но есть "маленькое" отличие: приведённый пример для 2-х цветного градиента, а у меня, эта зараза 3-х цветная... И вот 2-й цвет нужно сдвигать то в одну, то в другую сторону, а 1-й и 3-й как раз таки фиксированные. ".TwoColorGradient" - стандартное решение для двухцветного градиента, есть ещё ".OneColorGradient" для одноцветного, но для 3-х и более цветов ничего не нашёл.
|
|
|
13
|
Основные форумы / Вопросы по Excel и VBA / Управление градиентом графика
|
: 24.03.2019, 13:41:45
|
Уважаемые форумчане! Каюсь, грешен, давно не был на форуме. Вопросы не возникали к знатокам, что-то сам додумаю, что-то подсмотрю в Тырнете... Но вот столкнулся с проблемой, которую не могу разрешить: управление цветовым градиентом на графике через VBA. График рисуется отменно, градиент вручную - без проблем. Попытался записать макрос, но дальше выбора линии ничего не пишет. Ну, то есть, выбираю "Формат ряда данных" и уже ничего в макросе на эту тему не вижу. Может кто сталкивался с этой проблемой? Меня в частности интересует как программно изменять проценты положения точки (на фрагменте во вложении выделен красной рамкой) и возможно ли это вообще? Заранее спасибо всем откликнувшимся. PS. Вопрос не то чтобы принципиальный, но было бы неплохо решить его...
|
|
|
|
|