Новости:

Интересные и полезные статьи по работе с Excel и VBA
можно найти в разделе ХИТРОСТИ

Главное меню

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.

Просмотр сообщений

Сообщения - Дмитрий Щербаков(The_Prist)

#1
Цитата: Igor22 от 11.04.2025, 10:29:27я может неправильно выразился
Вам виднее. Но от того, что Вы расписали то, что хотите, понятнее не становится. Ведь в коде нет никакого поиска - приведенный код просто в зависимости от того, какая в данный момент выделена ячейка красит эту ячейку в зеленый. Где и что надо при этом очистить совершенно непонятно. Не говоря уже о том, где там окно поиска, что именно и в какой базе ищется.
Если речь про стандартное окно поиска - то по сути надо просто переписывать все и делать свою собственную форму, в которой будет TextBox для ввода значений и на основании этого значения будет уже кодом что-то искаться, краситься и т.д. А это невозможно без файла и понимания что и где искать.
#2
Название темы должно быть максимально информативным, таким, чтобы уже из названия темы другим пользователям была приблизительно понятна Ваша проблема п.п. 4.2. и 4.14. Правил форума
А еще есть такой пункт:
Цитировать4.14. Запрещены не информативные названия тем, например: «Памагите!», «У меня проблема!», «Крик души!» и т. п. Также запрещено в теме сообщения писать личные пожелания, например: «Написать макрос. Срочно!!!». Если участники форума знают ответ на Ваш вопрос, то они ответят независимо от того «срочно» вам это надо или нет. Название темы должно отражать суть проблемы: Зачем темам давать осмысленное название?
Придумайте информативное нормальное название и предложите в новом сообщении здесь же в теме или в личную почту мне или модератору.
И советую подумать: а все ли здесь видят, что за строки поиска у Вас где-то там не затираются? Я вот не вижу, чтобы вообще хоть что-то искалось.
#3
Цитата: Сергей 1963 от 08.04.2025, 16:47:15что-то здесь не так
согласен. Вы не вдумались в смысл предложенного и сделали какие-то свои выводы. А суть решения проста: после того, как макрос отработал после выделения ячейки А1 - она уже выделена. И повторное нажатие на ячейку А1 не приведет к вызову события SelectionChange. Следовательно, логично предположить, что для того, чтобы все сработало - надо после работы макроса выделить кодом ДРУГУЮ ячейку(в примере это А2). А отключение отслеживания событий перед выделением я добавил, т.к. не знаю, что у Вас вообще на SelectionChange записано. И правильнее это событие не вызывать, раз мы сами другую ячейку выделяем.
Получится следующее: нажали ячейку А1 -сработал макрос и выделил ячейку А2. Теперь можно выделить опять А1 без доп.активаций других ячеек вручную и код отработает снова.
#4
Перед строкой:
Unload UserFormUpdateактивируйте другую ячейку, например А2:
Application.EnableEvents = False 'отключаем отслеживание событий
Range("A2").Select
Application.EnableEvents = True 'возвращаем отслеживание событий
#5
Без примера кода вообще говорить особо не о чем.
browser.navigate pageaddr - может зависать, например, если страница содержит скрипты и для их дальнейшего выполнения необходимо дать на это разрешение во всплывающем окне(которое, конечно же, не видно при запуске из VBA). Это можно проверить, вбив адрес страницы в IE(или Edge).
#6
Насколько я понял - никакого цикла нет. Речь о стандартном пересчете. И по сути - здесь не особо-то чего придумаешь. Т.к. как только ввели значение в ячейку - сразу возникает события пересчета(Calculate). И только после него сработает событие изменения ячейки(Change). И даже если выводить какое-то окно - оно будет выводиться уже после пересчета при любом раскладе.
Так что варианты только изменять и пересчитывать данные через макросы. Например, делать форму, в которой задается значение для ввода в ячейку, нажимается кнопка. Первым делом выводиться надпись "Идет пересчет", затем в целевой ячейке изменяется значение.
#7
У Вас используется именованный диапазон "Материалы" в ПОИСКПОЗ. А этот диапазон ссылается на "=Материалы!$A$7:$A$33". Перейдите на вкладку Формулы -Диспетчер имен. Выделите имя Материалы и измените диапазон на нужный.
Подробнее про именованные диапазоны: Именованные диапазоны
#8
Ну здесь как бы...Даже макросов не надо - можно просто выделить строку или диапазон -Правая кнопка мыши -Вставить. Если выделена не строка целиком, то появится запрос куда вставить и там надо выбрать "Со сдвигом вниз". А если строка полностью - то она автоматом будет вставлена над той строкой, которая выделена.
Ну а если уж так нужен макрос - это все можно записать макрорекордером.
#9
Тогда сказать нечего - здесь имеет смысл поддержку ОЗОНа этих самых API тревожить.
Возможно так же имеет смысл хотя бы проверять, что там в result попало. Судя по описанию - можно проверить при помощи contentType. Но это не точно - проверить нет возможности, т.к. у меня лично нет доступа к этому сервису.
#10
Сложно советовать, не зная практически ничего о том, что Вы там получаете. Уверены, что архив именно ZIP? Может быть там иной формат(7Z, gzip и т.п.).
#11
Добавил все необходимое в Вашу таблицу.
#12
Цитата: Naka9 от 21.03.2025, 15:23:40А можно доступ к таблице?
зачем? Вы же к своей не открываете - скачивайте себе копию, как я Вашу таблицу себе качал :)
Увидите формулы и т.д.
#13
При таких структурах таблиц можно только сочувствовать. Даже выдумывать формулы не хочется, честно. Почему нельзя сделать доп.столбцы с датами начала и окончания квартала каждого года? Зачем усложнять себе жизнь, создавая таблицы, с которыми невозможно вообще работать нормальными функциями?
Если добавить два столбца с датами начала и окончания квартала - то проблем с суммированием вообще не будет:
https://docs.google.com/spreadsheets/d/1af9lGMWM9U82v5REZt6LZxKJvCkYKh_KjyzNaHGNRAA/edit?gid=63361078#gid=63361078

P.S. Возьмите что ли за правило выкладывать примеры файлов, на которые можно не только смотреть :)
#14
Как вариант:
=Filter(TOCOL(ArrayFormula(split(A2:A23;",")));TOCOL(ArrayFormula(split(A2:A23;",")))<>"")вводите в ячейку В2 - формула сама заполнит остальные ячейки.
Яндекс.Метрика Рейтинг@Mail.ru