Страницы: 1
RSS
Вызов двух кнопок разных форм/макросов через третью кнопку
 
Есть 2 разных макроса: Макрос 1 и Макрос 2. К этим макросам подвязаны Форма 1 и Форма 2 (каждая к своему макросу). В Формах есть Кнопка 1 и Кнопка 2 (соответственно). Вопрос: хочу в Форму 1 добавить Кнопку 3, которая будет выполнять последовательно операции Кнопки 1 и Кнопки 2 - как прописать синтаксис?
 
Ну это жесть вообще...Синтаксис прописать в соответствии с требованиями к языку :) Уж извините, не сдержался.
Вы умеете вызывать один макрос из другого? Тут вроде не сложно: Call ИмяМакроса. Что мешает записать две таких строки с этими макросами на третью кнопку? Вплоть до того, что из формы можно вызывать так же процедуры других кнопок:
Код
Call CommandButton1_Click
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Спасибо за ответ, но не работает, к сожалению...Возможно надо будет добавлять команды Public для макросов с кнопками и т.д....Была бы жесть, если бы все были программистами и задавали такие вопросы, но я обычный пользователь...пока учимся азам...
 
Цитата
Евгений И. написал:
не работает, к сожалению
а у меня работает.
Цитата
Евгений И. написал:
Возможно надо будет добавлять команды Public
возможно. А может и нет. А может и еще что-то.
Без примера форм и макросов никто Вам ничего четко решающего Вашу проблему не подскажет.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
написал:
Без примера форм и макросов никто Вам ничего четко решающего Вашу проблему не подскажет.

Привожу Вам сам код (кода из Outlook, но он близок экселю)...внизу кода прописал место, где нужно добавить вызов второй кнопки...Если по данному фрагменту получится подсказать, как прописать, было бы здорово
Код
Sub main_code(replace_text, attach_path)
    Set dic_mail = CreateObject("VBScript.RegExp")
    dic_mail.Pattern = "(From:)(.*?)(\<)(.*?)(\>)"
    
    Dim NewMail As mailItem, oInspector As Inspector
    Set oInspector = Application.ActiveInspector
    If oInspector Is Nothing Then
        MsgBox "Нет открытого письма!"
    Else
        Set NewMail = oInspector.CurrentItem
        If NewMail.Sent Then
            MsgBox "Это сообщение нельзя откорректировать!"
        Else
            old_subj = NewMail.Subject
            'проверяем, есть ли в письме строка вида From:...[mailto:...]
            Set objMatches = dic_mail.Execute(NewMail.Body)
            If objMatches.Count = 0 Then
                MsgBox "В текущем письме не удается найти фразу" & vbCrLf & "From:...[mailto:...] !"
            Else
                
                cur_mail = Trim(objMatches.Item(0).submatches(3))
                'прописываем e-mail получателя
                NewMail.To = cur_mail
                'прописываем тему письма
                NewMail.Subject = "Ответ на Ваше письмо или запрос данных"
                'удаляем подпись
                Call del_sign(NewMail)
                'в начало письма вставляем таблицу
                NewMail.HTMLBody = uf_html.tb_html & vbCrLf & NewMail.HTMLBody
                'заменяем ###### в таблице на нужный текст
                NewMail.HTMLBody = Replace(NewMail.HTMLBody, "######", replace_text)
                'если переменная attach_path содержит какой-либо путь - то добавляем вложения
                If IsEmpty(attach_path) = False And attach_path <> "" Then NewMail.Attachments.Add attach_path
            End If
        End If
    End If
End Sub
Private Sub CommandButton85_Click()
    replace_text = "Прежние условия работы вернутся сразу, как только можно будет считать, что условно на 100 рублей сейчас и на 100 рублей через месяц можно будет купить одинаковое число товара." & _
    " Кто сейчас может работать по отсрочке – те компании, которые заложили эти риски в стоимость товара, например повысили цены на 50-70-100% и спустили сейчас на 10-15-20%, то есть риски повышения УЖЕ заложены в стоимости товара и Вы переплачиваете в любом случае. Занимаются “дергатней”. В отличие от этих компаний, мы максимально стабильны и предсказуемы, у нас было только 1 повышение цен на 24%, что является исключительно мягким сценарием, а до этого цены у нас менялись аж 2 года назад в апреле 2020 года на 10%. Как только стабилизация в экономике наступит, безусловно все прежние условия вернутся (мы их даже из карточек клиентов пока не меняем, в счетах прописывается отсрочка)"
    'attach_path = "C:\Users\Ryzen5\Desktop\price-list.xls"
    Call main_code(replace_text, attach_path)
    Unload Me
End Sub

Private Sub CommandButton86_Click()

    replace_text = "Запрос на формирование акта сверки получил " & _
        "и перенаправил его в бухгалтерию, спасибо, ждите ответ (это может " & _
            "занять определенное время, но ответим обязательно)."
    'attach_path = "C:\Dropbox\work\.arkhipov26@yandex.ru\21\m_Сохранить_прайс.bas"
    Call main_code(replace_text, attach_path)
    Unload Me
    Call duplicate
        
     
    'ЗДЕСЬ НУЖНО ДОПИСАТЬ ВЫЗОВ КНОПКИ CommandButton85_Click()
    
End Sub
 
Цитата
написал:
   'ЗДЕСЬ НУЖНО ДОПИСАТЬ ВЫЗОВ КНОПКИ CommandButton85_Click()
что мешает? вызывайте
Код
CommandButton85_Click
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Евгений И. написал:
ЗДЕСЬ НУЖНО ДОПИСАТЬ ВЫЗОВ КНОПКИ CommandButton85_Click()
Цитата
Евгений И. написал:
Если по данному фрагменту получится подсказать, как прописать, было бы здорово
Подсказал еще в первом своем сообщении:
Цитата
Дмитрий(The_Prist) Щербаков написал:
из формы можно вызывать так же процедуры других кнопок:
Call CommandButton1_Click
Вы уверены, что все приведенные коды расположены в одном модуле и тем более модуле формы? Или Вы отрезки разных процедур в одну кучу нам свалили? Потому что других причин, почему бы это не работало я не вижу.
Изменено: Дмитрий(The_Prist) Щербаков - 21.04.2022 14:18:49
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
все это гадания (и с таким примером кода в том числе)
вполне может быть вызов написан как CommandButton85_Click()
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Евгений И. написал:
Привожу Вам сам код (кода из Outlook
Цитата
Евгений И. написал:
'ЗДЕСЬ НУЖНО ДОПИСАТЬ ВЫЗОВ КНОПКИ CommandButton85_Click()
которая находится в Excel.  :D
Страницы: 1
Наверх