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

Вход

Регистрация

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

 

= Мир MS Excel/Условие выполнение кода при открытой или закрытой книге - Мир MS Excel

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

Excel 2016
Здравствуйте.

Есть такая проблема, некий файл Б_Д может быть открыт или закрыт если он открыт то выполнение некого КОДА1 в другом файле выполняется некорректно, потому как в коде другого файла встроена строка свертывания окна данного файла и в момент свертывания окна, код начинает выполнять действие в файле Б_Д в результате происходит сбой.
Пытался на одном из форумов получить помощь, но походу меня не поняли, признав это как троллинг. Помогите создать условие для корректного выполнения кода, условие примерно вижу такое:

При выполнении КОДА1, например в файле N, изначально проверяется открыт ли файл Б_Д если он открыт то дабы избежать конфликта скрывается окно файла Б_Д, после выполнение КОДА1 отображается окно файла Б_Д и становится пассивным по отношению к файлу N.
Если файл Б_Д закрыт то КОД1 в файле N просто выполняется.

Вижу примерно так, где КОД1 вставлен в две позиции, нельзя ли это сделать как-то лаконично чтобы КОД1 не был в двух позициях потому как он очень массивный.

[vba]
Код
Sub Макрос1()Выполнение КОДА1 в неком файле N
    If Если файл Б_Д открыт Then
          Скрыть окно файла Б_Д
          Выполнить КОД1
          Отобразить окно файла Б_Д
          Сделать окно файла Б_Д пассивным по отношение к файлу N
    Else
          Выполнить КОД1
    End If
End Sub
[/vba]


Сообщение отредактировал Сергей13 - Воскресенье, 10.06.2018, 01:23
 
Ответить
СообщениеЗдравствуйте.

Есть такая проблема, некий файл Б_Д может быть открыт или закрыт если он открыт то выполнение некого КОДА1 в другом файле выполняется некорректно, потому как в коде другого файла встроена строка свертывания окна данного файла и в момент свертывания окна, код начинает выполнять действие в файле Б_Д в результате происходит сбой.
Пытался на одном из форумов получить помощь, но походу меня не поняли, признав это как троллинг. Помогите создать условие для корректного выполнения кода, условие примерно вижу такое:

При выполнении КОДА1, например в файле N, изначально проверяется открыт ли файл Б_Д если он открыт то дабы избежать конфликта скрывается окно файла Б_Д, после выполнение КОДА1 отображается окно файла Б_Д и становится пассивным по отношению к файлу N.
Если файл Б_Д закрыт то КОД1 в файле N просто выполняется.

Вижу примерно так, где КОД1 вставлен в две позиции, нельзя ли это сделать как-то лаконично чтобы КОД1 не был в двух позициях потому как он очень массивный.

[vba]
Код
Sub Макрос1()Выполнение КОДА1 в неком файле N
    If Если файл Б_Д открыт Then
          Скрыть окно файла Б_Д
          Выполнить КОД1
          Отобразить окно файла Б_Д
          Сделать окно файла Б_Д пассивным по отношение к файлу N
    Else
          Выполнить КОД1
    End If
End Sub
[/vba]

Автор - Сергей13
Дата добавления - 10.06.2018 в 00:13
gling Дата: Воскресенье, 10.06.2018, 00:58 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2523
Репутация: 678 ±
Замечаний: 0% ±

2010
Здравствуйте. Не понятно,чем Вам не нравится Ваша конструкция? Если правильно понял Вашу проблему, то решение такое. Сам код вставлять не надо, достаточно имени этого кода. Поулчится так[vba]
Код
Sub Макрос1()
    If Если файл Б_Д открыт Then
        Скрыть окно файла Б_Д
            КОД1
        Отобразить окно файла Б_Д
        Сделать окно фала Б_Д пассивным
    Else
            КОД1
    End If
End Sub
[/vba]


ЯД-41001506838083

Сообщение отредактировал gling - Воскресенье, 10.06.2018, 01:04
 
Ответить
СообщениеЗдравствуйте. Не понятно,чем Вам не нравится Ваша конструкция? Если правильно понял Вашу проблему, то решение такое. Сам код вставлять не надо, достаточно имени этого кода. Поулчится так[vba]
Код
Sub Макрос1()
    If Если файл Б_Д открыт Then
        Скрыть окно файла Б_Д
            КОД1
        Отобразить окно файла Б_Д
        Сделать окно фала Б_Д пассивным
    Else
            КОД1
    End If
End Sub
[/vba]

Автор - gling
Дата добавления - 10.06.2018 в 00:58
Сергей13 Дата: Воскресенье, 10.06.2018, 01:02 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

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


Сообщение отредактировал Сергей13 - Воскресенье, 10.06.2018, 01:39
 
Ответить
Сообщениеgling, Просто я хотел встроить условие в существующий код без дополнительных кодов на имя, ну можно тогда на имя.
Да лучше имя, а то что-нибудь в коде запартачу.

Автор - Сергей13
Дата добавления - 10.06.2018 в 01:02
RAN Дата: Воскресенье, 10.06.2018, 09:37 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
В Excel очень мало случаев, когда тредуется активация листа, а при обмене данными с базой практически никогда.
Поэтому ваш код должен выглядеть так
[vba]
Код
Sub Макрос1()
        выполнить правильно написанный КОД1
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеВ Excel очень мало случаев, когда тредуется активация листа, а при обмене данными с базой практически никогда.
Поэтому ваш код должен выглядеть так
[vba]
Код
Sub Макрос1()
        выполнить правильно написанный КОД1
End Sub
[/vba]

Автор - RAN
Дата добавления - 10.06.2018 в 09:37
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Условие выполнение кода при открытой или закрытой книге (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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