Необходима ваша помощь в подстановке условия в столбцы значений максимум (розовый) и минимум (голубой), при которой, обновление макимальных или минимальных значений в исходном столбце (желтый) должны автоматически копироваться в розовый (положительный) или голубой (отрицательный) столбцы, но при этом базовые значения в столбцах не должны меняться, пока не будет превышен лимит. Файл со столбцами прилагаю С уважением.
Здравствуйте уважаемые эксперты.
Необходима ваша помощь в подстановке условия в столбцы значений максимум (розовый) и минимум (голубой), при которой, обновление макимальных или минимальных значений в исходном столбце (желтый) должны автоматически копироваться в розовый (положительный) или голубой (отрицательный) столбцы, но при этом базовые значения в столбцах не должны меняться, пока не будет превышен лимит. Файл со столбцами прилагаю С уважением.ars1734
Добрый день. Для понимания задачи полезно будет на отдельном листе показать комментариями процесс изменения данных (как происходит обновление), что означают выделенные цветом ячейки в столбце "I", а также пояснения по "базовым значениям" и что значит "превышен лимит".
Добрый день. Для понимания задачи полезно будет на отдельном листе показать комментариями процесс изменения данных (как происходит обновление), что означают выделенные цветом ячейки в столбце "I", а также пояснения по "базовым значениям" и что значит "превышен лимит".NikitaDvorets
Превышение лимита, это значит что в желтом столбце появилось значение, превышающее указанные лимиты в розовом и голубом столбцах. Такое превышение и заливается красной заливкой. Знаки могут быть разные. При работе с массивом данных, приходится вручную копировать новые максимальные или минимальные значения из желтого, в розовый и голубой столбцы. Возможно ли скопировать новые максимумы и минимумы автоматически или вручную на весь массив быстро? Файл прилагаю
Добрый вечер.
Превышение лимита, это значит что в желтом столбце появилось значение, превышающее указанные лимиты в розовом и голубом столбцах. Такое превышение и заливается красной заливкой. Знаки могут быть разные. При работе с массивом данных, приходится вручную копировать новые максимальные или минимальные значения из желтого, в розовый и голубой столбцы. Возможно ли скопировать новые максимумы и минимумы автоматически или вручную на весь массив быстро? Файл прилагаюars1734
Добрый день. Формулами это не сделать, потребуется несложный макрос. Например такой. Макрос запускается кнопкой. Можно сделать автоматический запуск при изменении значений в столбце N, только требуется уточнить, как изменяются значения в этом столбце - вручную, или формулами. [vba]
Код
Sub Limits() Dim Cl As Range For Each Cl In Range("N5:" & Range("N5").End(xlDown).Address) If Cl > Cl.Offset(, 1) Then Cl.Offset(, 1) = Cl If Cl < Cl.Offset(, 2) Then Cl.Offset(, 2) = Cl Next End Sub
[/vba]
Добрый день. Формулами это не сделать, потребуется несложный макрос. Например такой. Макрос запускается кнопкой. Можно сделать автоматический запуск при изменении значений в столбце N, только требуется уточнить, как изменяются значения в этом столбце - вручную, или формулами. [vba]
Код
Sub Limits() Dim Cl As Range For Each Cl In Range("N5:" & Range("N5").End(xlDown).Address) If Cl > Cl.Offset(, 1) Then Cl.Offset(, 1) = Cl If Cl < Cl.Offset(, 2) Then Cl.Offset(, 2) = Cl Next End Sub
Благодарю за ответ, не смог разобраться. Приложил файл с двумя разделами таблицы в тех же ячейках, возможно ли сделать макрос, чтобы заработали две кнопки ВКЛ в ячейках O13 и Z13 для автокопирования новых лимитов в указанные столбцы до строки 178 Файл прилагаю С уважением
Благодарю за ответ, не смог разобраться. Приложил файл с двумя разделами таблицы в тех же ячейках, возможно ли сделать макрос, чтобы заработали две кнопки ВКЛ в ячейках O13 и Z13 для автокопирования новых лимитов в указанные столбцы до строки 178 Файл прилагаю С уважениемars1734
Макрос тот же самый, только дополнил его возможностью использовать для нескольких диапазонов. Чтобы проще было разобраться добавил комментарии в макрос.
Макрос тот же самый, только дополнил его возможностью использовать для нескольких диапазонов. Чтобы проще было разобраться добавил комментарии в макрос.i691198
Большое Вам спасибо! Удалось запустить. Единственное, что не смог понять, как скопировать код в нужный файл, чтобы появились кнопки ВКЛ. Как я понял, код указан там же, где и комментарий. Т.е. нужно скопировать текст целиком? Как это правильно сделать? Большая просьба, написать еще раз текстовый код макроса для O17 и Z17
С уважением!
Большое Вам спасибо! Удалось запустить. Единственное, что не смог понять, как скопировать код в нужный файл, чтобы появились кнопки ВКЛ. Как я понял, код указан там же, где и комментарий. Т.е. нужно скопировать текст целиком? Как это правильно сделать? Большая просьба, написать еще раз текстовый код макроса для O17 и Z17
Судя по вашим вопросам с макросами вы не знакомы, поэтому постараюсь поподробней объяснить как это сделать. Нужно открыть мой файл с макросом и ваш нужный файл. Затем нажать Alt+F11, или на вкладке Разработчик - Visual Basic. Появится окно VBA. с кодом макроса, слева в окне Project в папке Modules файла с макросом находится Module 1, зажмите его ЛКМ и перетащите на свой файл. Макрос скопирован, теперь обязательно нужно сохранить ваш файл в формате с поддержкой макросов. Что касается кнопок, то они создаются отдельно. В данном случае в качестве кнопок используются автофигуры прямоугольники - вкладка Вставка -> Фигуры. Можно выбирать любую фигуру, разместить ее в любом месте и настроить любой формат. Теперь кликаем ПКМ по кнопке и выбираем пункт Назначить макрос. В строке Имя макроса вводим текст 'Limits "W12"' . Вместо W12 пишем адрес верхней ячейки с исходными данными, в примере это ячейки O17 и Z17. (В начале и в конце текста апострофы, после названия макроса пробел и адрес ячейки в кавычках). Таких кнопок может быть сколько угодно.
Судя по вашим вопросам с макросами вы не знакомы, поэтому постараюсь поподробней объяснить как это сделать. Нужно открыть мой файл с макросом и ваш нужный файл. Затем нажать Alt+F11, или на вкладке Разработчик - Visual Basic. Появится окно VBA. с кодом макроса, слева в окне Project в папке Modules файла с макросом находится Module 1, зажмите его ЛКМ и перетащите на свой файл. Макрос скопирован, теперь обязательно нужно сохранить ваш файл в формате с поддержкой макросов. Что касается кнопок, то они создаются отдельно. В данном случае в качестве кнопок используются автофигуры прямоугольники - вкладка Вставка -> Фигуры. Можно выбирать любую фигуру, разместить ее в любом месте и настроить любой формат. Теперь кликаем ПКМ по кнопке и выбираем пункт Назначить макрос. В строке Имя макроса вводим текст 'Limits "W12"' . Вместо W12 пишем адрес верхней ячейки с исходными данными, в примере это ячейки O17 и Z17. (В начале и в конце текста апострофы, после названия макроса пробел и адрес ячейки в кавычках). Таких кнопок может быть сколько угодно.i691198
Сообщение отредактировал i691198 - Воскресенье, 04.05.2025, 11:58
Благодарю за подробную инструкцию! Скопировал кнопки с макросами из вашего файла Limit, правда далеко не с первой попытки (появлялась белая ячейка) Теперь при открытии рабочего файла и нажатии кнопки ВКЛ., файл Limit автоматически открывается сам. Можно ли отвязать рабочий файл от файла Limit с исходником кнопок ВКЛ?
С уважением
Благодарю за подробную инструкцию! Скопировал кнопки с макросами из вашего файла Limit, правда далеко не с первой попытки (появлялась белая ячейка) Теперь при открытии рабочего файла и нажатии кнопки ВКЛ., файл Limit автоматически открывается сам. Можно ли отвязать рабочий файл от файла Limit с исходником кнопок ВКЛ?
Кнопки не нужно было копировать, после того как вы скопировали модуль, исходный файл с макросом нужно закрыть, а кнопки сделать самостоятельно. Иначе макрос будет вызываться из исходного файла.
Кнопки не нужно было копировать, после того как вы скопировали модуль, исходный файл с макросом нужно закрыть, а кнопки сделать самостоятельно. Иначе макрос будет вызываться из исходного файла.i691198
Добрый день. Написал команду назначить макрос, так же как в спойлере, но выскакивает сообщение "Ошибка в формуле" Попробовал сделать с открытым файлом, откуда была скопирована кнопка, ввел данную строку, но все равно при нажатии кнопки открывается исходный файл с макросом. Еще внизу выбрал данную книгу, все равно исходник открывает при активации кнопки.
И еще вопрос: Можно ли на одну кнопку назначить два столбца "О17" и "Z17"? Как правильно написать строку в назначении макроса?
С уважением
Добрый день. Написал команду назначить макрос, так же как в спойлере, но выскакивает сообщение "Ошибка в формуле" Попробовал сделать с открытым файлом, откуда была скопирована кнопка, ввел данную строку, но все равно при нажатии кнопки открывается исходный файл с макросом. Еще внизу выбрал данную книгу, все равно исходник открывает при активации кнопки.
И еще вопрос: Можно ли на одну кнопку назначить два столбца "О17" и "Z17"? Как правильно написать строку в назначении макроса?
ars1734, А вы точно скопировали модуль с макросом в свою книгу? Проверьте, закройте все файлы кроме вашего и нажмите ALT+F11. Должно быть примерно так, как на картинке. И еще один момент - формат файла должен быть xlsm, xlsb или xls.
ars1734, А вы точно скопировали модуль с макросом в свою книгу? Проверьте, закройте все файлы кроме вашего и нажмите ALT+F11. Должно быть примерно так, как на картинке. И еще один момент - формат файла должен быть xlsm, xlsb или xls.i691198
Абсолютно верно. В файл уже загружен макрос. Строка такая же как и у вас, но скопированная кнопка автоматически открывает исходный файл с этой кнопкой. Макрос при открытом файле работает, это не критично, гораздо критичнее разобраться, как из двух кнопок "О17" и "Z17" сделать одну на два массива. Для этого нужно назначить макрос в одной из кнопок на ячейки "О17" и "Z17 а другую кнопку удалить. Но я никак не могу верно прописать две исходных ячейки в макросе. Выдает ошибку. Подскажите пожалуйста как правильно прописать адреса двух ячеек "О17" и "Z17 ято бы все делать одной кнопкой?
С уважением
Абсолютно верно. В файл уже загружен макрос. Строка такая же как и у вас, но скопированная кнопка автоматически открывает исходный файл с этой кнопкой. Макрос при открытом файле работает, это не критично, гораздо критичнее разобраться, как из двух кнопок "О17" и "Z17" сделать одну на два массива. Для этого нужно назначить макрос в одной из кнопок на ячейки "О17" и "Z17 а другую кнопку удалить. Но я никак не могу верно прописать две исходных ячейки в макросе. Выдает ошибку. Подскажите пожалуйста как правильно прописать адреса двух ячеек "О17" и "Z17 ято бы все делать одной кнопкой?
Этот макрос не рассчитан на работу с несколькими диапазонами, нужен другой [vba]
Код
Sub Lim(Adr As String) Dim Ar, Cl As Range, i% Ar = Split(Adr) For i = 0 To UBound(Ar) For Each Cl In Range(Ar(i) & ":" & Range(Ar(i)).End(xlDown).Address) If Cl.Offset(, 1) < Cl Then Cl.Offset(, 1) = Cl If Cl.Offset(, 2) > Cl Then Cl.Offset(, 2) = Cl Next Next End Sub
[/vba] Скопируйте его в общий модуль. Вызов на кнопке должен быть такой 'Lim "O17 Z17"' В кавычках можно перечислить сколько угодно начальных ячеек диапазонов через пробелы. Теперь что касается вызова макроса из другого файла, это следствие копирования кнопок с командами из другого файла. Это нужно поправить. Должен быть открыт только ваш файл, кликаете ПКМ на кнопке, например левой, в строке Имя макроса должно быть имя вашего файла с восклицательным знаком, именно вашего и команда вызова макроса 'Limits "O17"'. Если это не так, удалите имя файла и оставьте только команду, подтвердите Ok. Должно помочь.
Этот макрос не рассчитан на работу с несколькими диапазонами, нужен другой [vba]
Код
Sub Lim(Adr As String) Dim Ar, Cl As Range, i% Ar = Split(Adr) For i = 0 To UBound(Ar) For Each Cl In Range(Ar(i) & ":" & Range(Ar(i)).End(xlDown).Address) If Cl.Offset(, 1) < Cl Then Cl.Offset(, 1) = Cl If Cl.Offset(, 2) > Cl Then Cl.Offset(, 2) = Cl Next Next End Sub
[/vba] Скопируйте его в общий модуль. Вызов на кнопке должен быть такой 'Lim "O17 Z17"' В кавычках можно перечислить сколько угодно начальных ячеек диапазонов через пробелы. Теперь что касается вызова макроса из другого файла, это следствие копирования кнопок с командами из другого файла. Это нужно поправить. Должен быть открыт только ваш файл, кликаете ПКМ на кнопке, например левой, в строке Имя макроса должно быть имя вашего файла с восклицательным знаком, именно вашего и команда вызова макроса 'Limits "O17"'. Если это не так, удалите имя файла и оставьте только команду, подтвердите Ok. Должно помочь.i691198
Доброе утро. Скопировал данный текст в модуль 1 Перед этим удалил предыдущий текст. Задал имя макроса и команду 'Limits "O17"' Все как вы написали, выдает либо ошибку, либо макрос отсутствует. Не получается. Если не затруднит, напишите пожалуйста команду для двух массивов О17 и Z17 на кнопке О14 в приложеном файле. Если не получится запустить автономно, то скопирую кнопку с этого файла, лишь бы работало.
С уважением
Доброе утро. Скопировал данный текст в модуль 1 Перед этим удалил предыдущий текст. Задал имя макроса и команду 'Limits "O17"' Все как вы написали, выдает либо ошибку, либо макрос отсутствует. Не получается. Если не затруднит, напишите пожалуйста команду для двух массивов О17 и Z17 на кнопке О14 в приложеном файле. Если не получится запустить автономно, то скопирую кнопку с этого файла, лишь бы работало.
ars1734, Вы меня удивляете, как можно так невнимательно читать сообщения. Я вроде бы подробно описал что нужно сделать - скопировать макрос с именем Lim в модуль и назначить кнопке команду 'Lim "O17 Z17"' , ( я ее даже жирным выделил), макрос с именем Limits удалять совсем не обязательно. А у вас получилось, что макрос Limits вы удалили и пытаетесь вызвать его командой 'Limits "O17"',соответственно получаете ошибку. Сейчас открыть ваш файл нет возможности, только вечером, так что еще раз повнимательней прочитайте мой предыдущий пост (его первую часть до слова "Теперь") и сами пробуйте исправить. Вторая часть поста относится к вопросу об "автономности" работы предыдущего макроса, ее можно пропустить.
ars1734, Вы меня удивляете, как можно так невнимательно читать сообщения. Я вроде бы подробно описал что нужно сделать - скопировать макрос с именем Lim в модуль и назначить кнопке команду 'Lim "O17 Z17"' , ( я ее даже жирным выделил), макрос с именем Limits удалять совсем не обязательно. А у вас получилось, что макрос Limits вы удалили и пытаетесь вызвать его командой 'Limits "O17"',соответственно получаете ошибку. Сейчас открыть ваш файл нет возможности, только вечером, так что еще раз повнимательней прочитайте мой предыдущий пост (его первую часть до слова "Теперь") и сами пробуйте исправить. Вторая часть поста относится к вопросу об "автономности" работы предыдущего макроса, ее можно пропустить.i691198