09.07.2024 16:33:03
БМВ, Спасибо огромное! Автор моей формулы пропал с форума ещё в 2016 году.
Проверил, но то же самое, как и я сам обрезал до 8. Рисует такой же ШК, но сканер его не понимает и он отличается от оригинала. Почему - не понимаю, Точно такой же принцип для 13, но для 8 рисует не так.
Изменено: |
|
|
07.07.2024 19:16:25
Добрый вечер. Нашёл такую формулу для генерации кода в ячейку. Замечательно работает. Но если цифр меньше, а бывает и 8 и 12, то сократив формулу, получаем код, который не читается сканером и по виду отличается от исходного. Приложил файл, всего два кода, для EAN-8 ещё и оригинал в виде картинки в ячейке. Где ошибка? Как уменьшить формулу? Если не уменьшать - не работает с EAN-8 вообще, а неумело сокращённая - работает неправильно..
|
|
|
15.06.2023 15:43:14
Сейчас буду пробовать. Вроде бы понятно написал, а может и нет? В примере всё верно! Если в ХОТЯ БЫ в ОДНОЙ паре ячеек (C-D, E-F и т.д.) первая ячейка заполнена, а вторая нет - тогда ячейку этой строки во втором столбце (B2) закрашиваем. Проще так - это контрагенты - в первой - надо заплатить, во второй - хоть что то оплатили, день закрылся, а если кого то забыли, ничего не заплатили - общую сумму оплаченного надо закрасить. |
|||||
|
15.06.2023 13:23:41
Здравствуйте.
Есть таблица. В ней строки. Возьмём одну строку. например 2. В ней в ячейке B2 есть какое то число. Но это не важно. Необходимо не макросом, а условным форматированием окрасить эту ячейку, если: в ячейка С2 не пустая, а ячейка D2 пустая, а также E2 не пустая, а F2 пустая и т.д до AI2 и AJ2 Вообще условным форматированием такое получится или только макросом? Или может так понятнее. Ячейки в строке разбиты на пары. Если первая не пустая, а вторая пустая - ячейку во втором столбце надо окрасить. Во всех других случаях - обе пустые, обе заполнены, первая пустая, а вторая заполнена - окрашивать не надо. |
|
|
05.03.2023 17:21:26
Ігор Гончаренко, Спасибо, всё понятно и просто. Работает. Только в конце надо буквы r и c поменять местами.
|
|
|
04.03.2023 18:07:51
Здравствуйте. С помощью подсказок с этого форума был из кусочков составлен макрос, который вполне работает.. основная функция - поиск гиперссылок и собирание их в один столбец. Ищет в диапазоне. Сначала проверяет строку в столбце 7, потом 8 и т.д. Потом берётся за сл. строку и т.д. Как переделать, чтоб сначала проверял на наличие гиперссылок весь столбец 7, потом 8 и так до конца диапазона? Дело в том, что эти гиперссылки ещё распределены по годам сверху вниз - старые - в начальных столбцах, потом всё новее и новее. Это для меня важно. Тогда и в итоговом столбце 6 они сразу получатся по годам по возрастанию, а сейчас вперемешку. Эта часть макроса:
Изменено: |
|||
|
12.02.2023 21:17:00
Ігор Гончаренко, Только начал читать статью про "VBA Excel. Метод Range.Replace (замена текста в ячейках)" и его синтаксис. А тут бац! Получите. Ещё раз спасибо. Работает.
Поясню зачем. Я VBA не умею, а тут приспичило разбираться в магазине с сигаретами. Коды Дата Матрикс на пачках иногда надо списывать в Честном знаке. Сначала найти, какие надо списать, для этого много всяких действий, а потом сделать файл в эксель в котором в столбце А, только подряд по строкам эти коды. И файл отправляется в честный знак. Так он ругается, когда в ячейках не дата матрикс, а что нибудь ещё, хоть ноль. Типа, неверный формат данных. А на пустую строку конечно не ругается. |
|
|
12.02.2023 20:20:21
Ігор Гончаренко, Задача такая. После копирования (это часть большого макроса) только значений из столбца с формулой (С), в столбец (А) , добавить нечто в макрос, чтобы он далее заменил вот эти одиночные нули на пустую строку. Те самые нули, которые получаются в А1 если А1=В1, а в В1 пусто.
|
|
|
12.02.2023 20:07:07
А что там? да запросто! добавлю к вставке
. Но эта зараза все нули убирает, из текста и чисел, а надо только единственный. Там даже есть ячейки, начинающиеся на 6 нулей, и именно так и надо. Зараза убирает все.
Изменено: |
|||
|
12.02.2023 19:19:50
Ігор Гончаренко, Так и я о том же. Надо не спрятать ноль, а заменить на "".
|
|
|
12.02.2023 18:52:37
Пытливый, Да, знаю это, например формат 0;-0;;@ или здесь начитал штук пять способов НЕ ПОКАЗЫВАТЬ 0. Но ведь ноль там как был так и есть. Просто не видно. При копировании результатов формулы этих ячеек в столбец А ( нужны только значения) замечательно копирует именно только значения и невидимые нули тоже. И что интересно, если в результате формулы из первого поста в "С" получается именно пустая строка, то при копировании только значений, ноль в "А" не появляется. Загвоздка, чтоб потом, когда копирую в А нули, если они есть, заменялись на пустую строку. Т.е чего то надо добавить сюда:
|
|||
|
12.02.2023 17:31:28
Есть формула в столбце С =ЕСЛИ(СЧЁТЕСЛИ($D:$D; $F2)=0; F2; "") находит совпадения в D и F и выдаёт пустую строку, если есть совпадения и копирует содержимое ячейки из F в С, если нет совпадений. Т.е. в результате получится в столбце С те же значения, что и в F, но с пропусками по строкам, если содержимое ячейки в F совпало с любым значение из D. Работает замечательно. Если в D есть данные и в F они есть, то в С пустая ячейка. Это правильно. А если в F данных уже нет и в D тоже нет, то формула выдаёт ноль, а не пустую строку.
Короче: Почему эта формула при совпадении значений выдаёт пустую строку " ", как и написано в ней, а если обе сравниваемые строки пустые, тоже ведь - это совпадение, формула выдаёт ноль? |
|
|
12.02.2023 12:15:53
Пример условный. 100 товаров в куче. Надо оставить в этой корзине по одному образцу. Товары с штрих-кодом. Одинаковый ШК - это дубль товара. Пикаем все товары из корзины. Макрос потом ищет дубли. Нашёл. И что? Опять перебирать товары?
А хорошо бы на лету, без никакого нажатия кнопок. Пикаем ШК, постепенно заполняется столбец А, как только дубль - выделяет красным и может быть даже пищит. Выкидываем в другую корзину дубль товара, удаляем последний ШК и снова продолжаем до сл. дубля. Но это предполагает, что макрос запускается с каждой записью в ячейку. Т.е ищет дубли до последней заполненной строки (этих макросов полно в качестве образца, и тут на форуме тоже), но запускаясь при добавлении. Конечно, можно- добавил ШК - нажал кнопку - макрос сработал - снова ШК и т.д. Но сканер радио, к клавиатуре бегать не будешь каждый раз. надо чтоб с ходу.
Изменено: |
|
|
11.02.2023 22:03:37
Подскачите чайнику.
Range("A2:A1000").Clear очистит всё. Range("A2:A1000").ClearContents очистит данные. А если надо очистить всё, но не совсем? Например Clear сотрёт и границы ячеек. Их надо оставить. А ClearContents границы оставит, но оставит и ненужные цвета заливки, шрифта , а их надо удалить. Как оставить только границы?
Изменено: |
|
|
11.02.2023 21:55:54
New, Спасибо. Но работает также. После того как поправил RngToCopy.Copy на Rng.Copy (в этом месте показывало ошибку), работа макроса только с закрытым файлом, в открытый не входит. Ладно, оказалось на практике, когда запускаешь старый макрос, то ведь он тоже в конце закрывает файл. выходит надо только в первый раз, чтоб не дёргаться, проследить, что файл закрыт. При повторных действиях он так закрыт и остаётся.
|
|
|
11.02.2023 18:25:44
Сейчас так. Но копирует только в закрытый файл. В открытый - вылезает обычное предупреждение. Можно чуть переделать - будет в открытый. А как чтоб не глядя - что открыт, что закрыт - работало, но в конце, как и сейчас, закрывался?
Изменено: |
|||
|
11.02.2023 11:22:29
Продолжение. Что не возиться большим макросом, написал крошечный макрос, который затыкается в том же самом месте, на той же команде Paste. Разобрался почему на одном компе работает на другом нет. Дело в наличии на втором надстройки "Печать ценников". Давно-давно была честно приобретена навечно эта программа. Это надстройка. На гл. окне Excel есть дополнительная вкладка Печать Ценников. Мой макрос открывает вторую книгу, активизирует ячейку А1, но на вставке останавливается. Если делать пошагово, то ведёт себя по другому. При открытии Книги2 вылезает окно VBA с большой программой с многократными упоминаниями в нём "CennikExcel". Ничего не делая, закрою это окно, нажимаю ОК и далее мой макрос работает всегда. Надстройка Печать Ценников остаётся, как есть. Но мой макос работает. Совсем непонятно.
|
|||
|
10.02.2023 15:09:04
evgeniygeo, Спасибо. Дошло. Я заменил 1 на 5 в одном месте, но надо в обеих.
Надо так:
Изменено: |
|||
|
10.02.2023 13:57:46
evgeniygeo, Спасибо огромное. В 67 лет никак не получается научиться VBA. После того, что делает макрос остальную часть сделал формулами, работает.
И функция макроса тоже была формулами, т.к искомые гиперссылки были в одних и тех же ячейках. Но "поставщик" вдруг стал ставить их в другие места и каждый раз приходилось менять адреса. С Вашим макросом развлекался пошагово, сначала в маленьком файле, менял всякие параметры, смотрел. что получается. Потом перенёс в настоящий. Установил диапазон, первую строку поиска, номера столбцов. diapazon = Range("F2:O" & lLastRow) For r = 2 To UBound(diapazon) For c = 6 To 15 Ищет правильно. Но! Всегда отправляет результат, как и было в столбец А. Но надо в Е. Чего только не подстраивал - не понял, как сделать. Помогите. |
|
|
09.02.2023 22:13:40
Реальная задача в принципе та же самая. только таблица побольше. Но т.к я ничего не понимаю, а хочется, то решил потренироваться на маленькой. Приложил файл с нужным результатом работы нужного макроса в столбце А. Но сначала в этом столбце пусто.
По порядку: хотел сначала найти "яблоки". Потом научиться найти гиперссылки. Потом копировать найденные ячейки с гиперссылками (только значения) в столбец А. Чтоб в итоге получилось, как в приложенном файле. И застрял сразу. Вот маленький макрос. Он ищет яблоки только в столбце "А". А надо в B2:D11. Потом там же вместо яблок буду искать гиперссылки. И т.д.
|
|||
|
09.02.2023 11:28:36
Пробовал по разному. При пошаговой проверке вылезает то самое окно VBA, а окно это из надстройки CennikExcel. Причём закрываю окно - и мой макрос работает как надо. Ладно, это не критично, после этого хоть весь день сиди в экселе - всё работает.
Есть попутный вопрос из этой таблицы. Постараюсь сам поучится и написать макрос по поиску ячеек с нужным содержимым нужной области, чтоб они копировались в один столбец подряд. Только вот как определить в макросе, что нужная мне ячейка в таблице - это ссылка? Т.е из всей области нужно выбрать только ссылки (синий подчеркнутой текст). Какой признак у ссылки? как его записать в макрос? Или ещё один признак - этот текст всегда начинается на ноль и имеет подряд 21 знак. Что проще - искать как ссылку или по нулю и длине?
Изменено: |
|
|