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

Страницы: 1 2 След.
Всплывающая подсказка при наведении курсора на картинку
 
Предпочитаемый текущий вариант.
Макрос для импорта данных из трёх книг + несколько функций во время импорта, и несколько функций после импорта.
 
Hugo, большое вам спасибо!
Макрос для импорта данных из трёх книг + несколько функций во время импорта, и несколько функций после импорта.
 
Уважаемые форумчане, добрый день!

Есть три файла, которые лежат в разных местах:
Making.xlsb Goods.xlsb и Данные1С.xlsx
В файле Шаблон.xlsb требуется докрутить имеющийся макрос, который копировал бы данные из выше перечисленных файлов.
Очень важно, чтобы сбор данных из этих файлов работал по такому же принципу как это сделано в прилагаемом файле Шаблон.xlsb

Первым делом из файла Making.xlsx, затем из файла Goods.xlsx, затем из Данные1С.xlsx
Количество строк может меняться во всех файлах.
Если какого-то файла нет в указанном месте, то молча пропускаем его и тянемем данные из следующего.
Если нет всех трёх файлов, тогда выдаём сообщение "данные для импорта отсутствуют"

Данные для импорта начинаются так:

для Making.xlsb по всей видимости нужно прописывать так:
.Range(.Cells(18, 3), .Cells(.Cells(.Rows.Count, 3).End(xlUp).Row, .Cells(18, .Columns.Count).End(xlToLeft).Column)).Value

Для Goods.xlsb так:
.Range(.Cells(8, 4), .Cells(.Cells(.Rows.Count, 4).End(xlUp).Row, .Cells(8, .Columns.Count).End(xlToLeft).Column)).Value

для Данные1С.xlsx в текущем макросе уже прописано так:
.Range(.Cells(13, 2), .Cells(.Cells(.Rows.Count, 2).End(xlUp).Row, .Cells(13, .Columns.Count).End(xlToLeft).Column)).Value

Мне, как человеку не знающему VBA нужно, чтобы было интуитивно понятно каким образом я мог бы в перспективе добавить файлы и прописать координаты для импорта.
Все существующие функции обязательно нужно оставить. И нужно чтобы они работали с данными из всех файлов.

Нужно добавить функцию, которая работала бы примерно так же как и функция с листом Price
А именно: сравнить код с кодом на листе Name и во всех совпадающих строках изменить Артикул, Торговую марку и Наименование согласно данных на листе Name

Нужно усовершенствовать существующую функцию: "получить Торговую марку"
Существующая функция получает в столбце Наименование результат, и этот результат она должна сравнить с существованием полученного слова на листе Brand в столбце Бренды 1С
Если есть абсолютное совпадение (обязательно абсолютное совпадение, т.к. есть бренд "ARGO" и есть бренд "CARGO", т.е. я имею ввиду что макрос должен найти точное совпадение),
тогда пишем результат, если совпадения нет, тогда результат берём из столбца Дополнительное описание (Бренд)

Во время импорта нужно чтобы все данные в столбец артикул записывались в текстовом формате.
Можно конечно выделить весь столбец и формат текста сделать текстовым, но я уверен, что понимающий сможет сделать текстовыми только те ячейки, в которые будут тянуться артикулы.
Хочу обратить внимание на то, что в файлах, из которых импортируются данные, в столбце Артикул есть ячейки с числовым форматом, и для таких ячеек очень нужен макрос, который правильно конвертировал бы число в текст.
В файле Данные1С.xlsx приведено только несколько примеров в строках 19, 20 и 21
т.е. нули содержатся в начале артикула, а импортируются данные к сожалению без нулей.
В общем нужен желательно универсальный макрос, который позволил бы правильно конвертировать такие числа в текст.

Также во время импорта нужна функция, которая ищет в столбце Базовая единица измерения (ЕИ), следующие значения:
"м" и "п.м.", и меняет их на "пог.м.",
а "компл" меняет на "к-т"


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

Нужна функция, которая проверяет столбцы: Торговая марка, Артикул, Остаток и RUB без НДС, на наличие пустых ячеек и значения 0.
Если такие ячейки будут найдены, то нужно выдать диалог с сообщением "Пустая ячейка" и выделить первую найденную ячейку, и по нажатию на кнопку выделить следующую ячейку с ошибкой,
и т.о. пролистать все такие ячейки, или нажать на кнопку Отмена и остановить показ ячеек с ошибкой.

Также нужна ещё одна проверочная функция, которая ищет в столбце Артикул, скобки "(" ")" "[" "]", кавычки "'" "'", символ собаки "@" и запятые "," и если найдена такая ячейка в которой содержатся скобки, кавычки, собаки или запятые,
то нужно выдать диалог с сообщением "недопустимые символы" и выделить первую найденную ячейку, и по нажатию на кнопку выделить следующую ячейку с ошибкой,
и т.о. пролистать все такие ячейки, или нажать на кнопку Отмена и остановить показ ячеек с ошибкой.

Так же нужна функция, которая проверяла бы столбцы: Торговая марка и Наименование, на наличие слова "Stellox", и удалила бы все строки, в которых найдено это слово.

Бюджет на всё это дело 3000 рублей РФ
Изменено: AndreiSMT - 20.02.2025 08:10:18
Макрос для сохранения стиля таблицы при преобоазовании формул в значения, Макрос для сохранения стиля таблицы при преобоазовании формул в значения и удаления пустых строк таблицы
 
МатросНаЗебре, большое вам человеческое спасибо!
Макрос для сохранения стиля таблицы при преобоазовании формул в значения, Макрос для сохранения стиля таблицы при преобоазовании формул в значения и удаления пустых строк таблицы
 
Уважамые форумчане, подскажите пожалуйста, как сделать так, что бы стиль таблицы не удалялся, когда макрос преобразует формулы в значения строкой:
Код
ActiveWorkbook.ActiveSheet.UsedRange.Value = ActiveWorkbook.ActiveSheet.UsedRange.Value
Получить значение при совпадении трёх других значений этой же строки
 
Sanja, благодарю
Получить значение при совпадении трёх других значений этой же строки
 
Sanja, так мне не составит труда поставить последнюю версию Office.
Подскажите формулу пожалуйста.
Получить значение при совпадении трёх других значений этой же строки
 
Sanja, вы тут самый активный, подскажите пожалуйста, какую формулу для решения этой задачи использовали бы именно вы?
Получить значение при совпадении трёх других значений этой же строки
 
Sanja,
Требуется получить значение при совпадении трёх других значений этой же строки
Получить значение при совпадении трёх других значений этой же строки
 
Sanja,
Функция ИНДЕКС в паре с функцией ПОИСКПОЗ не повзоляет получить нужный результат.
Нужна другая формула.
Получить значение при совпадении трёх других значений этой же строки
 
БМВ, Счастливчик, с русскими именами функций сработало! Спасибо большое!
Странно. Неужели моей версии excel нужны именно русские имена функций?
Получить значение при совпадении трёх других значений этой же строки
 
БМВ, поменял все запятые на точку с запятой:
Код
=IFERROR(1/(1/SUMIFS(Price!D:D;Price!A:A;A2;Price!B:B;B2;Price!C:C;C2));F2)
но формула всё равно не работает  :cry:  
Получить значение при совпадении трёх других значений этой же строки
 
Sanim, использую office 2019
Да, всё верно вы говорите, я это всё понимаю что результат идёт по первой колонке, и данные в этой колонке я специально для примера вывел все одинаковые, т.к. произошел у нас казус, что не та цена подставилась, вот по этому и обращаюсь к знатокам.
Изменено: AndreiSMT - 30.01.2025 08:48:05
Получить значение при совпадении трёх других значений этой же строки
 
Уважаемые форумчане!
В прикреплённом файле на листе "1C" в столбце "Цена 2" прописал формулу:
Код
=ЕСЛИ(RC[-6]&RC[-5]&RC[-4]=
ЕСНД(ИНДЕКС(Price!C[-6];ПОИСКПОЗ(RC[-6];Price!C[-6];0);1)&ИНДЕКС(Price!C[-5];ПОИСКПОЗ(RC[-5];Price!C[-5];0);1)&ИНДЕКС(Price!C[-4];ПОИСКПОЗ(RC[-4];Price!C[-4];0);1);"");
ЕСНД(ИНДЕКС(Price!C[-6]:C[-3];ПОИСКПОЗ(RC[-6];Price!C[-6];0);4);"");
RC[-1])
но результат этой формулы не устраивает.
Рядом создал графу "Нужный результат"

Нужно чтобы подставлялась цифра из листа "Price" и именно из той строки в которой совпадают значения трёх ячеек.
Ещё важно понимать, что привязываться к номеру строки нельзя, т.к. прайс на самом деле на 5 тысяч позиций и номера строк постоянно меняются.
Надеялся, что 3-я строка из формулы будет работать примерно с таким содержанием:
Код
ЕСНД(ИНДЕКС(Price!C[-6]:C[-3];ПОИСКПОЗ(RC[-6]&RC[-5]&RC[-4];Price!C[-6]&Price!C[-5]&Price!C[-4];0);4);"");
но надежды не оправдались. Помогите пожалуйста с формулой.
Изменено: Sanja - 30.01.2025 13:46:08
Макрос для импорта данных из двух книг и автоматическое сохранение файла
 
Шаблон перезалил в шапке.
Большое спасибо господину online
Макрос для импорта данных из двух книг и автоматическое сохранение файла
 
Уважаемые форумчане, добрый день!
Есть два файла, которые лежат в разных местах:
D:\Docs\Making.xlsx и D:\Goods.xlsx
В файле Шаблон.xlsm требуется макрос, который копировал бы все данные из всех столбцов.
Первым делом все данные из файла Making.xlsx, затем все данные из файла Goods.xlsx
Количество строк может меняться в обоих файлах.
Все данные нужно импортировать с полной копией формата ячеек из которых импортируются данные.
Данные для импорта начинаются с 13-й строки 2-го столбца в обоих файлах (Making.xlsx и Goods.xlsx)
Все данные для импорта так же должны записываться начиная с 13-й строки 2-го столбца в файл Шаблон.xlsm.
Но в макросе не нужно объединять всё в одну строку, а для каждого файла прописать начало импорта данных отдельно и так же для шаблона отдельно прописать 13-ю строку 2-го столбца. Мне, как человеку не знающему VBA нужно, чтобы была хотябы интуитивная возможность изменить данные начала импорта и данные в какую ячейку начинать записывать.
После импорта данных, нужно чтобы произошло автоматическое сохранение в файл D:\Работа\Прайс.xlsx
В файле шаблон сразу добавил кнопку, которой нужно назначить макрос.
При нажатии на кнопку Обновить, сразу нужно очистить все данные, а потом уже начать импорт.
При сохранении, в файле Прайс.xlsx нужно удалить кнопку Обновить.
Скрытый текст

Бюджет 500 рублей РФ
Изменено: AndreiSMT - 19.12.2024 19:46:25
Сравнить данные в двух сторонних книгах и записать значение при совпадении, Помогите пожалуйста
 
Hugo, да, теперь всё отлично!
Большое вам спасибо!
Сравнить данные в двух сторонних книгах и записать значение при совпадении, Помогите пожалуйста
 
Hugo, Sanja, я так понял вы с сарказмом шутите над глупым юзером,  :)
а я понять немогу почему все строки не импортируются.
Помогите пожалуйста. Я вас очень очень прошу  :)
Заменил все ii на I, и переменную ii тоже убрал, но изменений не произошло.
Все строки, у которых нет совпадений всё равно пустые, а я хотел чтобы пустые были только ячейки в графе Код.
Т.е. чтобы вот так было:
Скрытый текст
Я только теперь понял, что не уточнил этот момент сразу. Простите меня пожалуйста  :oops:  
Сравнить данные в двух сторонних книгах и записать значение при совпадении, Помогите пожалуйста
 
Hugo, большое вам спасибо.
Если вас не затруднит посмотрите пожалуйста ещё раз этот макрос. Маленький нюанс.
Нужно чтобы из файла Данные.xlsx импортировались все строки, даже если в файле Прайс.xlsx нет совпадающих строк. Т.е. в коде, который вы написали, нужно где-то добавить условие, если совпадений нет, пусть эта ячейка будет пустой.
В текущем файле Прайс.xlsx не хватает нескольких совпадающих строк, но нужно чтобы из файла Данные.xlsx импортировались все строки.
Изменено: AndreiSMT - 12.12.2024 15:59:00
Сравнить данные в двух сторонних книгах и записать значение при совпадении, Помогите пожалуйста
 
Hugo, спасибо что откликнулись, но дело в том что я в этом совершенно ничего не понимаю.
Макрос, который уже присутствует в Шаблон.xlsm, написал модератор этой ветки, господин Sanja.
К сожалению тест обрывается ошибкой  :(
Скрытый текст
Сравнить данные в двух сторонних книгах и записать значение при совпадении, Помогите пожалуйста
 
Уважаемые дамы и господа!
Помогите пожалуйста.
Дано три файла:
Шаблон.xlsm
Данные.xlsx
Прайс.xlsx
Задача: во время импорта данных, нужно сравнить данные в двух книгах (Данные.xlsx и Прайс.xlsx) и записать значение при совпадении в Шаблон.xlsm
Красным подчеркнуты столбцы, которые нужно сравнивать
Зелёным подчеркнуто то, что совпадает при сравнении
Синим подчеркнуто значение, которое при совпадении нужно записать в Шаблон.xlsm в графу Код
Скрытый текст
Изменено: AndreiSMT - 10.12.2024 19:43:53
Разделение текста на две ячейки при импорте из другой книги, Прошу помощи
 
Sanja, огромное вам спасибо!
Разделение текста на две ячейки при импорте из другой книги, Прошу помощи
 
Sanja, к сожалению в файле данных встречаются несколько раз повторяющиеся запятые с пробелом, и когда такое случается, то не весь текст попадает в импорт.
Подчеркнул красным текст, который не импортировался
Скрытый текст
Изменено: AndreiSMT - 10.12.2024 10:01:55
Разделение текста на две ячейки при импорте из другой книги, Прошу помощи
 
Уважаемые форумчане, помогите пожалуйста подкрутить макрос.
Нужно при импорте разделить текст из одной ячейки на две ячейки.
делителем является только первая запятая с пробелом - ", "
и саму запятую с пробелом нужно исключить при импорте
Скрытый текст
Изменено: AndreiSMT - 10.12.2024 09:04:42
При выборе файла нужен путь в корень диска D, + сохранение файла по определённому пути
 
Добавил строку: ChDrive "D" и всё заработало:
Цитата
Dim I&, iTmp, iPath1C
Dim iCl As Range, iCell As Range
Application.ScreenUpdating = False
On Error Resume Next
ChDrive "D"
ChDir "D:\"
iPath1C = Application.GetOpenFilename("Файлы Excel (*.xlsx*),*.xlsx*", 1, "Выберите файл с данными", , False)
Set wb1C = Workbooks.Open(iPath1C)
Sanja, bigorq, благодарю за помощь. Тему можно закрывать.
Изменено: AndreiSMT - 10.12.2024 08:07:07
При выборе файла нужен путь в корень диска D, + сохранение файла по определённому пути
 
Sanja, вы тут самый активный! Спасибо вам большое!
Но вот при выборе файла диалог всё равно по умолчанию не открывает корень диска D.
Вот так открывается диалог:
Скрытый текст
При выборе файла нужен путь в корень диска D, + сохранение файла по определённому пути
 
Уважаемые форумчане, подскажите пожалуйста способ сделать так, что бы при выборе файла всегда открывался корень диска D.
Скрытый текст
И при нажатии на кнопку Сохранить, файл сохранялся не рядом с Шаблон.xlsm, а по указанному пути, например "E:\Прайс.xlsx"
Скрытый текст
[ Закрыто] Макрос для копирования данных из другой книги, + несколько дополнительных задач при импорте данных
 
Sanja, и уважаемые форумчане, гляньте пожалуйста на мои небольшие изменения в макросе.
Я кое-как нашел в сети способ выбора файла и прописал в макросе. Вроде работает. Но я не смог найти способ сделать так, что бы при выборе файла всегда открывался корень диска D.
И ещё подскажите пожалуйста как сделать так, чтобы при нажатии на кнопку Сохранить, файл сохранялся не рядом с Шаблон.xlsm, а по указанному пути, напрмер "E:\Прайс.xlsx"
[ Закрыто] Макрос для копирования данных из другой книги, + несколько дополнительных задач при импорте данных
 
Хм. А у меня и дома и на работе одна и та же история.
[ Закрыто] Макрос для копирования данных из другой книги, + несколько дополнительных задач при импорте данных
 
Уважаемые форумчане, подскажите пожалуйста, что можно сделать чтобы прикрепленный файл всегда открывался поверх всех окон с диалоговым вопросом об импорте данных.
Запускаю из тотала и из проводника, и всё одинаково... И проводник и тотал всегда остаются поверх. Если убрать из макроса диалог с вопросом об импорте, тогда всё нормально. Но что можно сделать чтобы и диалог с вопросом импорта остался и открывался поверх все окон?
Изменено: AndreiSMT - 07.12.2024 10:42:16
Страницы: 1 2 След.
Наверх