Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Изменение цвета кнопки - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Изменение цвета кнопки (Макросы/Sub)
Изменение цвета кнопки
Oh_Nick Дата: Среда, 03.08.2022, 10:37 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 265
Репутация: 0 ±
Замечаний: 20% ±

Excel 2019
Всем доброго времени суток.

Снизу действие меняет цвет кнопки на зеленый, а как сделать, чтобы кнопка при повторном нажатии убирала зеленый? Т.е должен получится своего рода переключатель с зеленого на обычный:

[vba]
Код
Private Sub CommandButton2_Click()

CommandButton2.BackColor = 65407

End Sub
[/vba]
 
Ответить
СообщениеВсем доброго времени суток.

Снизу действие меняет цвет кнопки на зеленый, а как сделать, чтобы кнопка при повторном нажатии убирала зеленый? Т.е должен получится своего рода переключатель с зеленого на обычный:

[vba]
Код
Private Sub CommandButton2_Click()

CommandButton2.BackColor = 65407

End Sub
[/vba]

Автор - Oh_Nick
Дата добавления - 03.08.2022 в 10:37
Nic70y Дата: Среда, 03.08.2022, 10:52 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 7878
Репутация: 1894 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
Private Sub CommandButton2_Click()
    If CommandButton2.BackColor = 65407 Then
        CommandButton2.BackColor = -2147483633
    Else
        CommandButton2.BackColor = 65407
    End If
End Sub
[/vba]


ЮMoney 41001841029809
 
Ответить
Сообщение[vba]
Код
Private Sub CommandButton2_Click()
    If CommandButton2.BackColor = 65407 Then
        CommandButton2.BackColor = -2147483633
    Else
        CommandButton2.BackColor = 65407
    End If
End Sub
[/vba]

Автор - Nic70y
Дата добавления - 03.08.2022 в 10:52
Oh_Nick Дата: Среда, 03.08.2022, 11:05 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 265
Репутация: 0 ±
Замечаний: 20% ±

Excel 2019
Nic70y, спасибо!
 
Ответить
СообщениеNic70y, спасибо!

Автор - Oh_Nick
Дата добавления - 03.08.2022 в 11:05
Oh_Nick Дата: Среда, 03.08.2022, 15:14 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 265
Репутация: 0 ±
Замечаний: 20% ±

Excel 2019
Еще вопрос:

А как сделать, чтобы например:

Нажимаем на кнопку, она зеленая и ячейка становится активна (например А1), потом нажимаем кнопку, она красная и ячейка неактивна?
 
Ответить
СообщениеЕще вопрос:

А как сделать, чтобы например:

Нажимаем на кнопку, она зеленая и ячейка становится активна (например А1), потом нажимаем кнопку, она красная и ячейка неактивна?

Автор - Oh_Nick
Дата добавления - 03.08.2022 в 15:14
Nic70y Дата: Среда, 03.08.2022, 16:09 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 7878
Репутация: 1894 ±
Замечаний: 0% ±

Excel 2010
ячейка неактивна?
а что долно быть активно?
активна:[vba]
Код
Range("a1").select
[/vba]


ЮMoney 41001841029809
 
Ответить
Сообщение
ячейка неактивна?
а что долно быть активно?
активна:[vba]
Код
Range("a1").select
[/vba]

Автор - Nic70y
Дата добавления - 03.08.2022 в 16:09
Oh_Nick Дата: Среда, 03.08.2022, 16:16 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 265
Репутация: 0 ±
Замечаний: 20% ±

Excel 2019
Nic70y,

Все активно кроме этой ячейки, например. Ячейка H3 неактивна (нельзя в нее ничего писать) когда кнопка красная, нажимаем кнопку она становится зеленой и ячейку можно заполнять.
К сообщению приложен файл: Book1.xlsx(17.0 Kb)
 
Ответить
СообщениеNic70y,

Все активно кроме этой ячейки, например. Ячейка H3 неактивна (нельзя в нее ничего писать) когда кнопка красная, нажимаем кнопку она становится зеленой и ячейку можно заполнять.

Автор - Oh_Nick
Дата добавления - 03.08.2022 в 16:16
Nic70y Дата: Среда, 03.08.2022, 16:50 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 7878
Репутация: 1894 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
Private Sub CommandButton2_Click()
    If CommandButton2.BackColor = 255 Then
        CommandButton2.BackColor = 65407
    Else
        CommandButton2.BackColor = 255
        Range("a1").Select
    End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    u = Selection.Address
    v = CommandButton2.BackColor
    w = InStr(u & ":", "$H$3:")
    If w > 0 And v = 255 Then Range("a1").Select
End Sub
[/vba]
К сообщению приложен файл: 19.xlsm(22.8 Kb)


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Среда, 03.08.2022, 16:56
 
Ответить
Сообщение[vba]
Код
Private Sub CommandButton2_Click()
    If CommandButton2.BackColor = 255 Then
        CommandButton2.BackColor = 65407
    Else
        CommandButton2.BackColor = 255
        Range("a1").Select
    End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    u = Selection.Address
    v = CommandButton2.BackColor
    w = InStr(u & ":", "$H$3:")
    If w > 0 And v = 255 Then Range("a1").Select
End Sub
[/vba]

Автор - Nic70y
Дата добавления - 03.08.2022 в 16:50
Oh_Nick Дата: Среда, 03.08.2022, 16:58 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 265
Репутация: 0 ±
Замечаний: 20% ±

Excel 2019
Nic70y, спасибо, супер!
 
Ответить
СообщениеNic70y, спасибо, супер!

Автор - Oh_Nick
Дата добавления - 03.08.2022 в 16:58
Oh_Nick Дата: Среда, 03.08.2022, 17:04 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 265
Репутация: 0 ±
Замечаний: 20% ±

Excel 2019
Nic70y, еще маленький вопрос:

Я правильно понимаю, что если мне нужно например несколько ячеек такими делать, то мне достаточно написать вот таким образом какие , или нет?

[vba]
Код
w = InStr(u & ":", "$H$3:", "$K$7:",....)
[/vba]
 
Ответить
СообщениеNic70y, еще маленький вопрос:

Я правильно понимаю, что если мне нужно например несколько ячеек такими делать, то мне достаточно написать вот таким образом какие , или нет?

[vba]
Код
w = InStr(u & ":", "$H$3:", "$K$7:",....)
[/vba]

Автор - Oh_Nick
Дата добавления - 03.08.2022 в 17:04
RAN Дата: Среда, 03.08.2022, 17:27 | Сообщение № 10
Группа: Друзья
Ранг: Экселист
Сообщений: 5640
Репутация: 1145 ±
Замечаний: 0% ±

2010
или нет?

Конечно нет. Нужно еще перемочь свою лень, и прочитать справку по функции InStr().


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
или нет?

Конечно нет. Нужно еще перемочь свою лень, и прочитать справку по функции InStr().

Автор - RAN
Дата добавления - 03.08.2022 в 17:27
Nic70y Дата: Четверг, 04.08.2022, 07:58 | Сообщение № 11
Группа: Друзья
Ранг: Экселист
Сообщений: 7878
Репутация: 1894 ±
Замечаний: 0% ±

Excel 2010
Oh_Nick, не в ту степь...
проще снять защиту с ячеек, с тех которые должны быть "неактивны" не снимать.
красный - защитить лист,
зеленый - снять защиту,
это:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    u = Selection.Address
    v = CommandButton2.BackColor
    w = InStr(u & ":", "$H$3:")
    If w > 0 And v = 255 Then Range("a1").Select
End Sub
выбросить.
Я правильно понимаю
всегда можно попробовать - вывалится ошибка - поймете правильно или нет


ЮMoney 41001841029809
 
Ответить
СообщениеOh_Nick, не в ту степь...
проще снять защиту с ячеек, с тех которые должны быть "неактивны" не снимать.
красный - защитить лист,
зеленый - снять защиту,
это:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    u = Selection.Address
    v = CommandButton2.BackColor
    w = InStr(u & ":", "$H$3:")
    If w > 0 And v = 255 Then Range("a1").Select
End Sub
выбросить.
Я правильно понимаю
всегда можно попробовать - вывалится ошибка - поймете правильно или нет

Автор - Nic70y
Дата добавления - 04.08.2022 в 07:58
Oh_Nick Дата: Четверг, 04.08.2022, 13:02 | Сообщение № 12
Группа: Проверенные
Ранг: Обитатель
Сообщений: 265
Репутация: 0 ±
Замечаний: 20% ±

Excel 2019
Nic70y,

[vba]
Код
Private Sub CommandButton2_Click()
    If CommandButton2.BackColor = 65407 Then
        CommandButton2.BackColor = 255
    Else
        CommandButton2.BackColor = 65407
        Range("a1").Select
    End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    u = Selection.Address
    v = CommandButton2.BackColor
    w = InStr(u & ":", "$H$3:")
    If w > 0 And v = 255 Then Range("a1").Select
End Sub
Private Sub CommandButton13_Click()
    If CommandButton13.BackColor = 65407 Then
        CommandButton13.BackColor = 255
    Else
        CommandButton13.BackColor = 65407
        Range("a1").Select
    End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    u = Selection.Address
    v = CommandButton13.BackColor
    w = InStr(u & ":", "$S$7:")
    If w > 0 And v = 255 Then Range("a1").Select
End Sub
[/vba]

Выдает ошибку Compile error: Ambiguous name detected: Worksheet_SelectionChange, якобы повтор функции. Как быть?
 
Ответить
СообщениеNic70y,

[vba]
Код
Private Sub CommandButton2_Click()
    If CommandButton2.BackColor = 65407 Then
        CommandButton2.BackColor = 255
    Else
        CommandButton2.BackColor = 65407
        Range("a1").Select
    End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    u = Selection.Address
    v = CommandButton2.BackColor
    w = InStr(u & ":", "$H$3:")
    If w > 0 And v = 255 Then Range("a1").Select
End Sub
Private Sub CommandButton13_Click()
    If CommandButton13.BackColor = 65407 Then
        CommandButton13.BackColor = 255
    Else
        CommandButton13.BackColor = 65407
        Range("a1").Select
    End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    u = Selection.Address
    v = CommandButton13.BackColor
    w = InStr(u & ":", "$S$7:")
    If w > 0 And v = 255 Then Range("a1").Select
End Sub
[/vba]

Выдает ошибку Compile error: Ambiguous name detected: Worksheet_SelectionChange, якобы повтор функции. Как быть?

Автор - Oh_Nick
Дата добавления - 04.08.2022 в 13:02
Nic70y Дата: Четверг, 04.08.2022, 13:07 | Сообщение № 13
Группа: Друзья
Ранг: Экселист
Сообщений: 7878
Репутация: 1894 ±
Замечаний: 0% ±

Excel 2010
Как быть?
прочитать сообщение выше.
якобы повтор функции
ну да 2 Private Sub Worksheet_SelectionChange(ByVal Target As Range) в одном модуле не может быть,
да при желании
    w = InStr(u & ":", "$H$3:")
    If w > 0 And v = 255 Then Range("a1").Select
можно обойти (если догадаться как)
с защитой листа будет эффективнее


ЮMoney 41001841029809
 
Ответить
Сообщение
Как быть?
прочитать сообщение выше.
якобы повтор функции
ну да 2 Private Sub Worksheet_SelectionChange(ByVal Target As Range) в одном модуле не может быть,
да при желании
    w = InStr(u & ":", "$H$3:")
    If w > 0 And v = 255 Then Range("a1").Select
можно обойти (если догадаться как)
с защитой листа будет эффективнее

Автор - Nic70y
Дата добавления - 04.08.2022 в 13:07
Oh_Nick Дата: Четверг, 04.08.2022, 13:26 | Сообщение № 14
Группа: Проверенные
Ранг: Обитатель
Сообщений: 265
Репутация: 0 ±
Замечаний: 20% ±

Excel 2019
Nic70y,

Проблема в том, что мы не можем защищать лист, т.к остальные ячейки вообще к этому не имеют отношения, а их например нужно заполнять. защищая лист мы не можем вообще ничего заполнять нигде.
 
Ответить
СообщениеNic70y,

Проблема в том, что мы не можем защищать лист, т.к остальные ячейки вообще к этому не имеют отношения, а их например нужно заполнять. защищая лист мы не можем вообще ничего заполнять нигде.

Автор - Oh_Nick
Дата добавления - 04.08.2022 в 13:26
Nic70y Дата: Четверг, 04.08.2022, 13:28 | Сообщение № 15
Группа: Друзья
Ранг: Экселист
Сообщений: 7878
Репутация: 1894 ±
Замечаний: 0% ±

Excel 2010
защищая лист мы не можем вообще ничего заполнять нигде
кто вам такое сказал?
проще снять защиту с ячеек, с тех которые должны быть "неактивны" не снимать.


ЮMoney 41001841029809
 
Ответить
Сообщение
защищая лист мы не можем вообще ничего заполнять нигде
кто вам такое сказал?
проще снять защиту с ячеек, с тех которые должны быть "неактивны" не снимать.

Автор - Nic70y
Дата добавления - 04.08.2022 в 13:28
Oh_Nick Дата: Четверг, 04.08.2022, 15:32 | Сообщение № 16
Группа: Проверенные
Ранг: Обитатель
Сообщений: 265
Репутация: 0 ±
Замечаний: 20% ±

Excel 2019
Nic70y, ладно, попробую разобраться. Спасибо !
 
Ответить
СообщениеNic70y, ладно, попробую разобраться. Спасибо !

Автор - Oh_Nick
Дата добавления - 04.08.2022 в 15:32
Nic70y Дата: Четверг, 04.08.2022, 15:58 | Сообщение № 17
Группа: Друзья
Ранг: Экселист
Сообщений: 7878
Репутация: 1894 ±
Замечаний: 0% ±

Excel 2010
попробую разобраться
да что тут разбираться

К сообщению приложен файл: 4350348.gif(11.9 Kb) · 6134772.gif(12.8 Kb)


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Четверг, 04.08.2022, 15:59
 
Ответить
Сообщение
попробую разобраться
да что тут разбираться


Автор - Nic70y
Дата добавления - 04.08.2022 в 15:58
Oh_Nick Дата: Пятница, 05.08.2022, 08:20 | Сообщение № 18
Группа: Проверенные
Ранг: Обитатель
Сообщений: 265
Репутация: 0 ±
Замечаний: 20% ±

Excel 2019
Nic70y, а, вы таким способом) думал как-то иначе, спасибо)
 
Ответить
СообщениеNic70y, а, вы таким способом) думал как-то иначе, спасибо)

Автор - Oh_Nick
Дата добавления - 05.08.2022 в 08:20
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Изменение цвета кнопки (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2022 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!