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

Вход

Регистрация

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

 

= Мир MS Excel/Условие для активной ячейки в событии листа. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Условие для активной ячейки в событии листа. (Макросы/Sub)
Условие для активной ячейки в событии листа.
Сергей13 Дата: Четверг, 17.06.2021, 21:45 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Здравствуйте!
Ребята как создать условие в событие листа где ячейка активируется правым кликом в столбце (Столбец13) умной таблице (Таблица1).
[vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    If Если правый клик (или ячейка активна) в Столбце13 Таблицы1 Then
        'Выполнить код
    End If
End Sub
[/vba]
 
Ответить
СообщениеЗдравствуйте!
Ребята как создать условие в событие листа где ячейка активируется правым кликом в столбце (Столбец13) умной таблице (Таблица1).
[vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    If Если правый клик (или ячейка активна) в Столбце13 Таблицы1 Then
        'Выполнить код
    End If
End Sub
[/vba]

Автор - Сергей13
Дата добавления - 17.06.2021 в 21:45
Апострофф Дата: Четверг, 17.06.2021, 22:19 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 445
Репутация: 123 ±
Замечаний: 0% ±

Excel 1997
[vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If Target.Column = 13 Then
            'Выполнить код
'            Cells(1, 13).Select
ENDIF
End Sub
[/vba]
?
 
Ответить
Сообщение[vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If Target.Column = 13 Then
            'Выполнить код
'            Cells(1, 13).Select
ENDIF
End Sub
[/vba]
?

Автор - Апострофф
Дата добавления - 17.06.2021 в 22:19
RAN Дата: Четверг, 17.06.2021, 23:17 | Сообщение № 3
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец13").Range) Is Nothing Then
        Cancel = True
        MsgBox "qq"
    End If
End Sub
[/vba]


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

Сообщение отредактировал RAN - Четверг, 17.06.2021, 23:23
 
Ответить
Сообщение[vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец13").Range) Is Nothing Then
        Cancel = True
        MsgBox "qq"
    End If
End Sub
[/vba]

Автор - RAN
Дата добавления - 17.06.2021 в 23:17
Сергей13 Дата: Суббота, 19.06.2021, 19:43 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Здравствуйте!
RAN, Спасибо!
Входе тестирования возник вопрос. Возможно ли в событии правого клика несколько независимых условий для выполнения разных действий, как показано в примере ниже.

[vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    
    If Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец13").Range) Is Nothing Then
        Cancel = True
        MsgBox "Столбец13"
    End If
    
    If Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец14").Range) Is Nothing Then
        Cancel = True
        MsgBox "Столбец14"
    End If

End Sub
[/vba]
У меня в рабочем коде бывает работает, а бывает выдает ошибку *1004 на второе условие, после ранее выполненного первого условия.

Ошибка *1004 - Метод пересечения глобального объекта не удался
На строку - If Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец14").Range) Is Nothing Then


Сообщение отредактировал Сергей13 - Суббота, 19.06.2021, 20:07
 
Ответить
СообщениеЗдравствуйте!
RAN, Спасибо!
Входе тестирования возник вопрос. Возможно ли в событии правого клика несколько независимых условий для выполнения разных действий, как показано в примере ниже.

[vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    
    If Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец13").Range) Is Nothing Then
        Cancel = True
        MsgBox "Столбец13"
    End If
    
    If Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец14").Range) Is Nothing Then
        Cancel = True
        MsgBox "Столбец14"
    End If

End Sub
[/vba]
У меня в рабочем коде бывает работает, а бывает выдает ошибку *1004 на второе условие, после ранее выполненного первого условия.

Ошибка *1004 - Метод пересечения глобального объекта не удался
На строку - If Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец14").Range) Is Nothing Then

Автор - Сергей13
Дата добавления - 19.06.2021 в 19:43
_Igor_61 Дата: Воскресенье, 20.06.2021, 21:25 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 504
Репутация: 90 ±
Замечаний: 0% ±

Excel 2007
Цитата Сергей13, 19.06.2021 в 19:43, в сообщении № 4 ()
бывает работает, а бывает выдает ошибку
Рабочий код не всегда может справиться с тем, что пользователь заносит на лист. Проверьте написание столбцов в таблице и в коде (и имя таблицы), либо приложите файл с описанной проблемой.
 
Ответить
Сообщение
Цитата Сергей13, 19.06.2021 в 19:43, в сообщении № 4 ()
бывает работает, а бывает выдает ошибку
Рабочий код не всегда может справиться с тем, что пользователь заносит на лист. Проверьте написание столбцов в таблице и в коде (и имя таблицы), либо приложите файл с описанной проблемой.

Автор - _Igor_61
Дата добавления - 20.06.2021 в 21:25
Сергей13 Дата: Воскресенье, 20.06.2021, 23:05 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Здравствуйте!
_Igor_61, как таковых ошибок не обнаружил, возможно упущены некие правила VBA, но применив Exit Sub после выполнение процедуры стало срабатывать корректно.
[vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец13").Range) Is Nothing Then
        Cancel = True
        MsgBox "Столбец13"
    Exit Sub
    End If
    If Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец14").Range) Is Nothing Then
        Cancel = True
        MsgBox "Столбец14"
    Exit Sub
    End If
End Sub
[/vba]
Спасибо всем!


Сообщение отредактировал Сергей13 - Воскресенье, 20.06.2021, 23:06
 
Ответить
СообщениеЗдравствуйте!
_Igor_61, как таковых ошибок не обнаружил, возможно упущены некие правила VBA, но применив Exit Sub после выполнение процедуры стало срабатывать корректно.
[vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец13").Range) Is Nothing Then
        Cancel = True
        MsgBox "Столбец13"
    Exit Sub
    End If
    If Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец14").Range) Is Nothing Then
        Cancel = True
        MsgBox "Столбец14"
    Exit Sub
    End If
End Sub
[/vba]
Спасибо всем!

Автор - Сергей13
Дата добавления - 20.06.2021 в 23:05
Pelena Дата: Воскресенье, 20.06.2021, 23:15 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 19174
Репутация: 4413 ±
Замечаний: ±

Excel 365 & Mac Excel
Можно так попробовать
[vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец13").Range) Is Nothing Then
        Cancel = True
        MsgBox "Столбец13"
    ElseIf Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец14").Range) Is Nothing Then
        Cancel = True
        MsgBox "Столбец14"
    End If
End Sub
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеМожно так попробовать
[vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец13").Range) Is Nothing Then
        Cancel = True
        MsgBox "Столбец13"
    ElseIf Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец14").Range) Is Nothing Then
        Cancel = True
        MsgBox "Столбец14"
    End If
End Sub
[/vba]

Автор - Pelena
Дата добавления - 20.06.2021 в 23:15
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Условие для активной ячейки в событии листа. (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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