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

Вход

Регистрация

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

 

= Мир MS Excel/Запускать два события в модуле листа - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Запускать два события в модуле листа (Макросы/Sub)
Запускать два события в модуле листа
ant6729 Дата: Пятница, 28.04.2017, 05:21 | Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
Добрый день, возможно ли запустить два и более событий на листе?
Не знаю, как поменять названия Sub ов на разные, возможно ли это?

Или приложенные коды можно объединить в один? Но как?

Какие могут быть решения, подскажите, пожалуйста.
Пример с кодами внутри в первом листе.
К сообщению приложен файл: yyyyyyel.xlsx (9.4 Kb)
 
Ответить
СообщениеДобрый день, возможно ли запустить два и более событий на листе?
Не знаю, как поменять названия Sub ов на разные, возможно ли это?

Или приложенные коды можно объединить в один? Но как?

Какие могут быть решения, подскажите, пожалуйста.
Пример с кодами внутри в первом листе.

Автор - ant6729
Дата добавления - 28.04.2017 в 05:21
китин Дата: Пятница, 28.04.2017, 07:17 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
нет у вас в файле никаких кодов. в xlsx. макросы не живут


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщениенет у вас в файле никаких кодов. в xlsx. макросы не живут

Автор - китин
Дата добавления - 28.04.2017 в 07:17
ant6729 Дата: Пятница, 28.04.2017, 08:17 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
Извините[vba]
Код

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    If Target <> Cells(1, 1) Then Exit Sub
    With Target
        Select Case .Value
        Case "3": .Value = "1"
        Case "1": .Value = "2"
        Case "2": .Value = "3"
        Case Else: .Value = "1"
        End Select
    End With
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If IsEmpty(Target) Then Exit Sub
    If Target.Column <> 5 Then Exit Sub
    Cancel = True
    Sheets("Pro").Cells(1, 5).Value = Target.Value
    Sheets("Pro").Cells(1, 5) = Split(Sheets("Pro").Cells(1, 5).Value, ",")(0)
End Sub
[/vba]
 
Ответить
СообщениеИзвините[vba]
Код

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    If Target <> Cells(1, 1) Then Exit Sub
    With Target
        Select Case .Value
        Case "3": .Value = "1"
        Case "1": .Value = "2"
        Case "2": .Value = "3"
        Case Else: .Value = "1"
        End Select
    End With
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If IsEmpty(Target) Then Exit Sub
    If Target.Column <> 5 Then Exit Sub
    Cancel = True
    Sheets("Pro").Cells(1, 5).Value = Target.Value
    Sheets("Pro").Cells(1, 5) = Split(Sheets("Pro").Cells(1, 5).Value, ",")(0)
End Sub
[/vba]

Автор - ant6729
Дата добавления - 28.04.2017 в 08:17
Pelena Дата: Пятница, 28.04.2017, 08:25 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 19162
Репутация: 4412 ±
Замечаний: ±

Excel 365 & Mac Excel
Как-то так (в файле не проверяла)
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If Target = Cells(1, 1) Then
With Target
Select Case .Value
Case "3": .Value = "1"
Case "1": .Value = "2"
Case "2": .Value = "3"
Case Else: .Value = "1"
End Select
End With
Else
If IsEmpty(Target) Then Exit Sub
If Target.Column <> 5 Then Exit Sub
Sheets("Pro").Cells(1, 5).Value = Target.Value
Sheets("Pro").Cells(1, 5) = Split(Sheets("Pro").Cells(1, 5).Value, ",")(0)
End If
End Sub
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеКак-то так (в файле не проверяла)
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If Target = Cells(1, 1) Then
With Target
Select Case .Value
Case "3": .Value = "1"
Case "1": .Value = "2"
Case "2": .Value = "3"
Case Else: .Value = "1"
End Select
End With
Else
If IsEmpty(Target) Then Exit Sub
If Target.Column <> 5 Then Exit Sub
Sheets("Pro").Cells(1, 5).Value = Target.Value
Sheets("Pro").Cells(1, 5) = Split(Sheets("Pro").Cells(1, 5).Value, ",")(0)
End If
End Sub
[/vba]

Автор - Pelena
Дата добавления - 28.04.2017 в 08:25
ant6729 Дата: Пятница, 28.04.2017, 09:08 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
Спасибо, Pelena

А если добавить третий?

[vba]
Код
If Target.Column <> 8 Then Exit Sub
u = Target.Row
i = Sheets("ListD").Cells(Rows.Count, "B").End(xlUp).Row + 1
Sheets("ListD").Cells(i, 1).Resize(, 10).Value = Sheets("Pro").Cells(u, 1).Resize(, 10).Value
[/vba]
 
Ответить
СообщениеСпасибо, Pelena

А если добавить третий?

[vba]
Код
If Target.Column <> 8 Then Exit Sub
u = Target.Row
i = Sheets("ListD").Cells(Rows.Count, "B").End(xlUp).Row + 1
Sheets("ListD").Cells(i, 1).Resize(, 10).Value = Sheets("Pro").Cells(u, 1).Resize(, 10).Value
[/vba]

Автор - ant6729
Дата добавления - 28.04.2017 в 09:08
Pelena Дата: Пятница, 28.04.2017, 09:16 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 19162
Репутация: 4412 ±
Замечаний: ±

Excel 365 & Mac Excel
Ну, по аналогии же
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If Target = Cells(1, 1) Then
With Target
Select Case .Value
Case "3": .Value = "1"
Case "1": .Value = "2"
Case "2": .Value = "3"
Case Else: .Value = "1"
End Select
End With
Else
If Target.Column = 8 Then
u = Target.Row
i = Sheets("ListD").Cells(Rows.Count, "B").End(xlUp).Row + 1
Sheets("ListD").Cells(i, 1).Resize(, 10).Value = Sheets("Pro").Cells(u, 1).Resize(, 10).Value
Else
If IsEmpty(Target) Then Exit Sub
If Target.Column <> 5 Then Exit Sub
Sheets("Pro").Cells(1, 5).Value = Target.Value
Sheets("Pro").Cells(1, 5) = Split(Sheets("Pro").Cells(1, 5).Value, ",")(0)
End If
End If
End Sub
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеНу, по аналогии же
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If Target = Cells(1, 1) Then
With Target
Select Case .Value
Case "3": .Value = "1"
Case "1": .Value = "2"
Case "2": .Value = "3"
Case Else: .Value = "1"
End Select
End With
Else
If Target.Column = 8 Then
u = Target.Row
i = Sheets("ListD").Cells(Rows.Count, "B").End(xlUp).Row + 1
Sheets("ListD").Cells(i, 1).Resize(, 10).Value = Sheets("Pro").Cells(u, 1).Resize(, 10).Value
Else
If IsEmpty(Target) Then Exit Sub
If Target.Column <> 5 Then Exit Sub
Sheets("Pro").Cells(1, 5).Value = Target.Value
Sheets("Pro").Cells(1, 5) = Split(Sheets("Pro").Cells(1, 5).Value, ",")(0)
End If
End If
End Sub
[/vba]

Автор - Pelena
Дата добавления - 28.04.2017 в 09:16
RAN Дата: Пятница, 28.04.2017, 10:14 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Ну, по аналогии же

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


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

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

Автор - RAN
Дата добавления - 28.04.2017 в 10:14
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Запускать два события в модуле листа (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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