Страницы: 1
RSS
[ Закрыто ] Макрос для копирования данных из другой книги, + несколько дополнительных задач при импорте данных
 
Уважаемые форумчане, прошу помощи.
Есть два файла: Данные1С.xlsx и Шаблон.xlsm
На основе файла Шаблон.xlsm, после выполнения всех задач макроса, нужно создать ещё задачу: сохранить файл Прайс.xlsx и удалить из этого файла ненужные листы.
Но для начала помогите пожалуйста решить первостепенную задачу:
В файле шаблон нужен макрос, который из файла Данные1С.xlsx скопирует данные и вставит в файл Шаблон.xlsm на лист SMT...
Скрытый текст
И ещё большая просьба, при загрузке файла Шаблон.xlsm, не нужно запускать диалог выбора файла excel из которого нужно делать импорт, а просто спросить: "Импортировать данные из файла?" с кнопками Да или Нет.
Файлы всегда лежат в корне D диска: D:\Данные1С.xlsx и D:\Шаблон.xlsm
Данные, которые нужно импортировать, всегда будут начинаться с 13-й строки в файле Данные1С.xlsx
Некоторые из импортируемых ячеек иногда могут быть пустыми, кроме ячеек графы Код. Т.е. если в графе код начались пустые ячейки то ниже данных уже не будет.
Изменено: AndreiSMT - 22.11.2024 10:21:28
 
Вот такой вариант
Скрытый текст

Вот тут непонятно
Цитата
при загрузке файла Шаблон.xlsm, не нужно запускать диалог выбора файла
Вам нужно запускать макрос при открытии файла Шаблон?
Изменено: Sanja - 23.11.2024 13:01:47
Согласие есть продукт при полном непротивлении сторон
 
Цитата
AndreiSMT написал:
сохранить файл Прайс.xlsx и удалить из этого файла ненужные листы.
Это тоже реализовано, но т.к. пояснения крайне скудны, сделал как понял
Согласие есть продукт при полном непротивлении сторон
 
Цитата
написал:
Вам нужно запускать макрос при открытии файла Шаблон?
Благодарю вас за помощь. Вы единственный, кто вызвался помочь.
Мало кто берётся помогать, когда видит большой объём работы.
Всё верно! Хотелось что бы в шаблоне были не кнопки, а при загрузке шаблона выскакивало окошко с вопросом: "Загрузить данные из стороннего файла"? Если нажать на кнопку Да, то шаблон должен запустить макрос, вытащить данные и сохранить файл, а если нажать Нет, то ничего не делать.
Файл Прайс.xlsx должен сохраниться не с листом Price (как это реализовано сейчас), а наоборот с листом SMT, а лист Price нужно удалить.
Кнопки, которые вы уже сделали не удаляйте пока, пусть останутся. Но в сохраняемом файле Прайс.xlsx эти кнопки тоже нужно убрать.
Изменено: AndreiSMT - 25.11.2024 08:26:59
 
Готово
Согласие есть продукт при полном непротивлении сторон
 
Всё замечательно!
Осталось вот что:
1. В графе остаток нужно округлить все цифры вниз до целого значения. Например если остаток равен 4,999 то нужно чтобы получилось 4
2. В графе RUB без НДС нужно к кадждой ячейке применить следующую формулу: значение * 30 / 6 округлить вверх до целых * 6 (т.е. именно такую формулу тут нужно применить. Ещё раз: значение ячейки * 30 / 6 округлить вверх  до целых и умножить на 6).
3. Нужно макросу объяснить что бы он искал совпадения, которые представлены на листе Price в файле Шаблон.xlsm.
Искать нужно именно вот эти строки под цифрой 1:
Скрытый текст
И там где есть совпадения (под цифрой 2) нужно поставить цифру из графв RUB без НДС (под цифрой 3), вместо той которая импортируется из файла Данные1С.xlsx. Впрочем где искать совпадения, в файле Данные1С.xlsx или файле Шаблон.xlsm на листе SMT - без разницы. Лучше всего конечно самый быстрый способ.
 
Смотрю аппетит приходит во время еды)
Вы сами-то попробуйте хоть что-нибудь сделать, а то все больше на ТЗ становится похоже. В этой ветке ПОМОГАЮТ, а не делают все под ключ
Согласие есть продукт при полном непротивлении сторон
 
Sanja, я смог сделать это (но не всё) только с помощью формул excel, а в макросах я совершенно не разбираюсь. Но, ничего страшного. В любом случае от всей души благодаю за помощь.
 
п.3 нужно выполнять после п.2.? Т.е. найденное значение на листе 'Price' нужно пересчитывать по формуле п.2. или переносить как есть?
Поиск нужно вести по трем значениям(Код+Партия+Поставщик)? Или достаточно по Коду?
Изменено: Sanja - 25.11.2024 12:50:24
Согласие есть продукт при полном непротивлении сторон
 
Sanja, я и не сомневался что вы всё равно доведёте всё до конца.
1. Да, пункт 3 выполнять нужно после пункта 2. Цифру ненужно пересчитывать по формуле, а переносить как есть.
2. Да, поиск нужно вести именно по трём значениям.
 
Цитата
AndreiSMT написал:
Sanja , я и не сомневался...
Я вот теперь сомневаюсь...Потому что
Цитата
AndreiSMT написал:
Впрочем где искать совпадения, в файле Данные1С.xlsx или файле Шаблон.xlsm на листе SMT - без разницы.
как раз есть разница.
В данные на листе 'SMT', выбранные из файла 'Данные1С.xlsx' НЕ попадают данные, нужные для сравнения. В частности там нет столбцов Партия и Поставщик. Поэтому сравнение нужно производить ДО того, как данные попадут на лист 'SMT', а для этого нужно основательно переписать готовый макрос. Ну или ограничиться только совпадением Кода
Изменено: Sanja - 25.11.2024 13:14:04
Согласие есть продукт при полном непротивлении сторон
 
К сожалению если искать совпадения по коду, то оно на все такие строки проставит одну и туже цену. Тут нужно именно по всем трём значениям:(Код+Партия+Поставщик).

В личку загляните пожалуйста.
Изменено: AndreiSMT - 25.11.2024 13:30:26
 
Протестируйте
Согласие есть продукт при полном непротивлении сторон
 
Я как-то не обратил внимания сразу. Тут оказывается перепутаны столбцы. точнее данные тянутся не в те столбцы. Нужно вот так:
Скрытый текст
И единица измерения не подтягивается.
Изменено: AndreiSMT - 25.11.2024 16:08:26
 
?
Согласие есть продукт при полном непротивлении сторон
 
Товарищ Sanja, последняя просьба...
Вот такой формулой я получаю точное имя Торговой марки:
Скрытый текст
Скрытый текст
Прошу сделать тоже самое, только макросом.
Реультат должен попадать в графу Торговая марка
 
Ваша формула не работает для такого значения
А/камера (вент. ГК-260) СЕР ГРУЗ
Точнее, она возвращает результат отличный от того, что на картинке. В чем подвох?
Согласие есть продукт при полном непротивлении сторон
 
Если в строке наименования нет пробела со слэшем, тогда тянется значение из графы Дополнительное описание.
В приведённой вами строке как видим нет пробела со слэшем (слэш есть, но перед ним нет пробела): А/камера (вент. ГК-260) СЕР ГРУЗ, по этому в таком случае тянется значение из этой же строки, но только из графы Дополнительное описание.
Скрытый текст
А если случается когда возвращается 0 как видно из примера на скриншоте, тогда у нас в базе 1С я самостоятельно исправляю такие ошибки и выгружаю Данные из 1С по новой.
Былобы хорошо, если бы макрос предуреждал о значении 0, какой-нибудь ошибкой, но это не критично. Будет замечательно и без предупреждений.
Изменено: AndreiSMT - 26.11.2024 08:39:23
 
Цитата
написал:
какой-нибудь ошибкой
Согласие есть продукт при полном непротивлении сторон
 
Sanja, большое вам спасибо!
Изменено: AndreiSMT - 26.11.2024 11:09:56
 
Предлагаю перенести тему в ветку Работа и договариваться уже в личке о дальнейшем сопровождении макроса. По ценам и срокам. А то мало-ли что Вы еще куда захотите вставить.
Вот сразу и расхотелось)
Изменено: Sanja - 26.11.2024 11:11:59
Согласие есть продукт при полном непротивлении сторон
 
Уважаемые форумчане, подскажите пожалуйста, что можно сделать чтобы прикрепленный файл всегда открывался поверх всех окон с диалоговым вопросом об импорте данных.
Запускаю из тотала и из проводника, и всё одинаково... И проводник и тотал всегда остаются поверх. Если убрать из макроса диалог с вопросом об импорте, тогда всё нормально. Но что можно сделать чтобы и диалог с вопросом импорта остался и открывался поверх все окон?
Изменено: AndreiSMT - 07.12.2024 10:42:16
 
Цитата
AndreiSMT написал:
И проводник и тотал всегда остаются поверх.
Странно. Проблема не воспроизвелась. Ни с Тоталом ни с Проводником
Согласие есть продукт при полном непротивлении сторон
 
Хм. А у меня и дома и на работе одна и та же история.
 
Sanja, и уважаемые форумчане, гляньте пожалуйста на мои небольшие изменения в макросе.
Я кое-как нашел в сети способ выбора файла и прописал в макросе. Вроде работает. Но я не смог найти способ сделать так, что бы при выборе файла всегда открывался корень диска D.
И ещё подскажите пожалуйста как сделать так, чтобы при нажатии на кнопку Сохранить, файл сохранялся не рядом с Шаблон.xlsm, а по указанному пути, напрмер "E:\Прайс.xlsx"
 
AndreiSMT, Я предупреждал. Одна Тема - Один вопрос. Вы все вопросы, так или иначе касаемые Вашего файла будете сюда постить? Название тему ну очень широкое. Тема закрыта
Согласие есть продукт при полном непротивлении сторон
Страницы: 1
Наверх