Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Преобразование ошибочного текстового формата в число на определенных листах
 
МатросНаЗебре, Спасибо вам большое, великий матрос!
Преобразование ошибочного текстового формата в число на определенных листах
 
Добрый день!
Форумов на эту тему много, но ни в одном не нашел нужного ответа. Если есть - пришлите, пожалуйста.

Суть: Есть главный лист с кнопкой, есть два листа с базами данных.
Нужен макрос, чтобы по нажатии на кнопку в главном листе все числовые ошибки на двух других листах в виде текста менялись на число. Пример во вложении.
Пробовал через запись макроса. Он проходится по всеми диапазону но не меняет текстовый формат на число. Логика такая, что базы будут стираться и вставляться новые с новыми ошибками числа. Потому, этот процесс постоянный.
Очистить от галок чекбоксы на всех листах и перейти на нужный лист.
 
Данила, ответ на вопрос по этой ссылке:
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=163792&a...
Снятие и установка всех флажков чек бокса на листе
 
MikeVol, Все, разобрался. Макрос не срабатывал, т.к. я не задал то же имя фигуре "ButtOnOff", как и у вас в примере. Теперь все работает, спасибо вам огромное!!!

Так же добавлю для тех, кто будет видеть эту тему в будущем. У меня к чек боксам привязаны все данные и если вставить голый код, то обработка занимает 15-20 секунд. Система проходит по каждому боксу отдельно и убирает привязанные данные. Ускорил обработку, добавив следующие функции:
Код
Option Explicit

Sub ВклВыкл()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
Application.DisplayStatusBar = False
Application.DisplayAlerts = False

    Dim Obj As Object, ws As Worksheet
    Static checkBoxesChecked As Boolean

    If Not checkBoxesChecked Then

        For Each Obj In ActiveSheet.DrawingObjects
            If Obj.Name Like "Check Box*" Then Obj.Value = True
        Next

        ActiveSheet.Shapes("ButtOnOff").TextFrame.Characters.Text = "On"
        checkBoxesChecked = True
    Else

        For Each Obj In ActiveSheet.DrawingObjects
            If Obj.Name Like "Check Box*" Then Obj.Value = False
        Next

        ActiveSheet.Shapes("ButtOnOff").TextFrame.Characters.Text = "Off"
        checkBoxesChecked = False
    End If

Application.ScreenUpdating = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
Application.DisplayStatusBar = True
Application.DisplayAlerts = True
End Sub
Теперь обработка занимает долю секунды.
Изменено: Данила - 16.03.2024 22:30:58
Снятие и установка всех флажков чек бокса на листе
 
MikeVol, Здравствуйте! Вы гений, крутой код!
Вставил код в сво основную книгу с листами, но мне почему-то выдает ошибку "компонент с указанным именем не найден" и ссылается на стоку:
ActiveSheet.Shapes("ButtOnOff").TextFrame.Characters.Text = "On".
И еще. Когда выйду из книги и зайду заново, то код срабатывает один раз на активацию флажков, после чего ссылается на ошибку выше.
Изменено: Данила - 16.03.2024 22:15:59
Снятие и установка всех флажков чек бокса на листе
 
Или как дописать этот код, чтобы срабатывание макроса работало на том листе, где нажимается кнопка?
Код
Sub Main()  Dim Obj As Object, ws As Worksheet
  For Each ws In Worksheets
    For Each Obj In ws.DrawingObjects
      If Obj.Name Like "Check Box*" Then Obj.Value = False
    Next
End Sub
Изменено: Данила - 16.03.2024 20:28:22
Очистить от галок чекбоксы на всех листах и перейти на нужный лист.
 
Ігор Гончаренко, Здравствуйте!
Скажите, пожалуйста, как в коде:
Код
Sub Main()  Dim Obj As Object, ws As Worksheet
  For Each ws In Worksheets
    For Each Obj In ws.DrawingObjects
      If Obj.Name Like "Check Box*" Then Obj.Value = False
    Next

  Next
End Sub
прописать, чтобы чек боксы изменялись на том листе, на котором включается макрос?
Есть несколько листов, на каждом свои чек боксы. Чтобы не создавать кучу модулей с обращением к каждому листу - нужно, чтобы макрос активировался на том листе, где он нажимается. Свой пример закрепил к письму.
Изменено: Данила - 16.03.2024 20:01:59
Снятие и установка всех флажков чек бокса на листе
 
Приветствую!
Не нашел на форуме ответа именно на этот вопрос, хотя похожих тем много.

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

Попробовал в тупую через запись макроса - обрабатывает каждый бокс отдельно, занимает кучу времени. На большее знаний не хватило, прошу помочь с вопросом.
Скрин и файл закрепляю к письму.
Изменено: Данила - 16.03.2024 19:13:08
Скрытие столбцов через макрос
 
Пытливый, да, да, да! Спасибо большое!
Скрытие столбцов через макрос
 
Пытливый, не фурычит( закрепил файл к теме, может так поможет. Условие находится в строке 2
Скрытие столбцов через макрос
 
Приветствую!
Подскажите, пожалуйста, может ссылкой на тему, может самим макросом.
Есть код, который скрывает строки по условию расположенному в столбик. Теперь нужно, чтобы он скрывал столбики по условию, расположенному с строке.
Код
Sub СкрытьПустые()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
Application.DisplayStatusBar = False
Application.DisplayAlerts = False
Dim cell As Range

For Each cell In ActiveSheet.UsedRange.Columns(2).Cells
If cell.Value = "Х" Then cell.EntireRow.Hidden = True

Next
Application.ScreenUpdating = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
Application.DisplayStatusBar = True
Application.DisplayAlerts = True
End Sub
Изменено: Данила - 20.02.2024 17:30:58
Как вывести массив данных в строчку, а не в столбец по выбранному значению
 
Ответ нашел. Как обычно, все оказалось легче, чем было)

Изначально формула: =ЕСЛИОШИБКА(ИНДЕКС($Y$8:$Y$7468;НАИМЕНЬШИЙ(ЕСЛИ($AC$8=$R$8:$R$7467;СТРОКА($R$8:$R$7467)-СТРОКА($R$8)+1);СТРОКА(1:1)));"")

Чтобы сделать расчет по столбцам - нужно заменить последнюю формулу вместе "Строка" на "столбец". Ошибка была в том, что я в формулу "Столбец" я выделял поиск с того столбца, где и начинался поиск основного товара, а нужно было с первого (А:А).
Как вывести массив данных в строчку, а не в столбец по выбранному значению
 
Добрейший денечек! Вопрос, наверное, банальный, но нигде не нашел на него ответ. Помогите, пожалуйста, с решением. Пример закрепляю к файлу.

Есть товар, к которому нужно вывести все привязанные к нему суммы. Как это сделать в строчку, а не в столбец через формулу массива.
В файле уже есть готовая, но она в виде столбца.
Выборочный расчет листов в книге
 
Сделаю небольшое резюме по выбранному мною варинату.

Код выше хорош, как костыль.
Он отлично отрабатывает на текущем листе, ограничивая вычислительные мощности выбранными листами, но при переходе на ранее ограниченный лист - нужно активировать вычисление по всей книге. И вот здесь начинается замес с загрузкой, т.к. обновляется вся книга.
Если вам постоянно нужно переходить из листа в лист, то это не ваш метод. Если вы ограничиваетесь долгим нахождением на одном листе, то вариант хорош, т.к. переключения будут редкими и не будете тратить много времени на загрузку.
Выборочный расчет листов в книге
 
Бахтиёр, можете, пожалуйста, показать на примере, как это сделать?
Выборочный расчет листов в книге
 
МатросНаЗебре, здравствуйте! А как сделать, чтобы макрос действовал безусловно? Т.е, не нужно было каждый раз на него нажимать, чтобы он сработал.
Выборочный расчет листов в книге
 
Всем добрый день! Прошу помочь с вопросом.Файл, к сожалению, не могу закрепить из-за размера.
- есть несколько листов. Два из них - базы данных в виде умных таблиц (BR & BY);
- на каждом из этих листов прописаны условия выбора (год, маркетплейс, месяц). Эти условия привязаны к одной единой формуле вычисления в базах данных. Это сделано нарочно, чтобы сократить время вычисления в файле;
Т.е., если я в любом листе уберу год, то пересчет книги будет идти по всем листам. Ожидаемо, это дело виснет на несколько секунд.

Или работу можно описать в виде схемы:
жмяк на условие - формула выдала те значения в базах данных, которые удовл. этому условию - через суммеслимн значения выдаются в таблицу.

Вопрос. Как сделать, чтобы когда я находился, к примеру, на листе PNL, то расчет происходил только в текущем листе и в базах данных (BR & BY) не пересчитывая формулы в SVOD, NM и EX.
Перерыл интернет, ответов не нашел. Помогите, пожалуйста, более умной идеей вычисления или решением. Надеюсь, объяснил понятно. Если нет - спрашивайте.
Отбор уникального списка по условию
 
R091n, К сожалению, 2019. Но на будущее учту такие функции, спасибо!
Отбор уникального списка по условию
 
Павел \Ʌ/, Круто! Спасибо большое за решение!
Отбор уникального списка по условию
 
Всем привет!
Изначальная тема: https://www.planetaexcel.ru/techniques/14/103/#8030
Воспользовался 3-им примером из темы выше. К нему нужно добавить отбор по критерию. Закрепляю файл с примером.

Суть:
- на лист ЕХ должен выводиться список уникальных значений (формула уже прописана из темы выше в ячейках C16:C88) из листа BY (колонка G);
- к этой формуле нужно добавить отбор по условию, которое находится в ячейке C12, а список этих условий на листе BY (колонка E);
Помогите, пожалуйста. Сломал голову, не придумал решение. Если будет нужна доп. инфа - спрашивайте.  
Суммирование данных по динамическому диапазону критериев
 
Павел \Ʌ/, попробовал, тоже отличная и удобная идея, спасибо вам всем большое!

Кто будет исп. этот метод! - когда вы выбираете критерий в "счётесли", то вам нужно выбирать именно диапазон от и до, а не весь столбец. В противном случае, формула не будет работать.
Суммирование данных по динамическому диапазону критериев
 
Алексей Абраменко, очень классная и оригинальная идея! Спасибо! Можно использовать, как альтернативу.
Суммирование данных по динамическому диапазону критериев
 
Максим В., тоже пробовал, но как и в вашем примере - формула выдает 0, если  начать убирать значения. К примеру, выключил 22 год, и по идее, должен суммироваться только 2023, но выдает 0. Аналогично и с клиентами.
Суммирование данных по динамическому диапазону критериев
 
Добрейший вечерочек!
Помогите, пожалуйста, с проблемой, которой не нашел нигде решения - суммирование по динамическим критериям в диапазоне. Файл закрепляю для примера.

Логика следующая:
Вверху есть галочки управления по клиентам и годам. Соответственно, когда галка стоит, то выдает ИСТИНА в колонке Е, а слева (колонка D) выпадает расшифровка этой истины для привязки формулы.

С формулой и проблема. Нужно, чтобы в ячейке G16 отобразилась выручка по выбранным критериям из колонки D.
Т.е. у нас выбраны вайлдберриз и яндекс по 2022 и 2023 году. Опираясь на таблицу ниже выходит, что выручка в ячейке G16 = 69 410, т.к. все условия (ВБ-22г. и ЯМ-23г) удовлетворены и их суммы суммировались.

А как это прописать в формуле - вопрос. Пробовал через "{сумм(суммеслимн())}"; через если в критериях и многими другими способами.
Нашел единственный - прописывать к каждому клиенту ссылку на год, но так выходит 100500 "суммеслимн" от чего прогрузка данных занимает по 5-10 секунду за каждое действие.

Если кто-то с этим сталкивался, то прошу объяснить, как можно грамотно прописать формулу, чтобы она правильно отрабатывала по диапазону критериев и не замедляла процесс работы. Возможно, здесь нужен макрос и если вы сможете его составить для примера - буду безумно благодарен.
Страницы: 1
Наверх