Страницы: 1
RSS
Можно ли как то выделить кнопку с макросом после его применения?
 
Добрый день!
Товарищи форумчане, помогите пожалуйста!

Дано: таблица и несколько кнопок записанных макросов по форматированию + кнопка по сбросу таблицы к начальному форматированию ("в начало").
Теперь вопрос, можно ли сделать так, чтобы при нажатии на кнопку с макросом эта самая кнопка изменяла вид ( ну типа загоралась,что ли) ? И при повторном нажатии на эту же самую кнопку с активным макросом, сбрасывала бы форматирование таблицы к начальному форматированию? Знаю, что есть кнопка "в начало" описанная выше, но так надо:( не спрашивайте зачем:).

Пример приложить не могу, да и не за чем, т.к присутствуют персональные данные.
 
Цитата
т.к присутствуют персональные данные.
Замените на фрукты
 
Пример написан на коленке, но суть не меняется от этого. Допустим мы нажимае на кнопку "в пути" и происходит сортировка, можно ли сделать так, чтобы после нажатия на кнопку ее внешний вид изменился? и после повторного нажатия на кнопку "в пути" происходил сброс фильтра (иными словами ,срабатывала кнопка "в начало")?
 
lim_po_po, может это!?https://www.extendoffice.com/ru/documents/excel/1717-excel-change-color-of-button.html
Не бойтесь совершенства. Вам его не достичь.
 
Проще менять текст на кнопке в зависимости от действия, которое требуется выполнить.
Владимир
 
Подскажите пожалуйста как текст можно поменять,возможно это тоже поможет.
 
На Вашем примере - для кнопки "В начало"
Код
' Макрос для обработки щелчка по кнопке 1
Sub макрос222()
  Dim v As Object
  Dim aCaptions
  aCaptions = Array("В начало", "В конец")
  Set v = ActiveSheet.Shapes("Button 1").DrawingObject  ' Button 1 - имя кнопки
  
  If v.Caption = aCaptions(0) Then
     MsgBox "Нажата: В начало"  ' вместо данной строки выполняем необходимые действия для текста "В начало"
     v.Caption = aCaptions(1)
  Else
     MsgBox "Нажата: В конец"  ' вместо данной строки выполняем необходимые действия для текста "В конец"
     v.Caption = aCaptions(0)
  End If
End Sub
Владимир
 
Код
With ActiveSheet.Buttons(1)
        Select Case .Characters.Text
        Case "Вкл": .Characters.Text = "Выкл"
        Case Else: .Characters.Text = "Вкл"
        End Select
    End With
 
Код
Sub qq()
    a = Application.Caller
    With ActiveSheet
        Set dr = .DrawingObjects(a)
        x = ActiveSheet.AutoFilter.Filters(2).On
        If .AutoFilterMode Then
            If .AutoFilter.Filters(2).On Then
                .AutoFilter.Range.AutoFilter Field:=2
                dr.Text = "В пути"
            Else
                .AutoFilter.Range.AutoFilter Field:=2, Criteria1:="В пути"
                dr.Text = "Сброс"
            End If
        End If
    End With
End Sub
 
Ребята,всем спасибо за помощь! Особенно господину RAN)
 
Оff. Опять хищник вместе с парнокопытным отняли добычу. ;)  
Владимир
Страницы: 1
Наверх