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

Страницы: 1
Обновление данных в прайс-листе средствами VBA (сравнение 2ух массивов), массивы, сравнение
 
Цитата
Юрий М написал:
Мой вариант проверили?
да, вариант рабочий, завтра буду пробовать на копиях оригинальных файлов применять
спасибо огромное! :)

вот тут еще насмотрелся... сделать бы по 8 способу))
http://perfect-excel.ru/publ/excel/makrosy_i_programmy_vba/struktury_dannykh_i_ik­h_ehffektivnost/7-1-0-72
Обновление данных в прайс-листе средствами VBA (сравнение 2ух массивов), массивы, сравнение
 
у меня что-то тут тоже получилось... сработало, но в конце зависает :/
Обновление данных в прайс-листе средствами VBA (сравнение 2ух массивов), массивы, сравнение
 
Цитата
Inexsu написал:
Попробуйте:В таблицу указать файлы, листы, столбцы. На выходе будет одна таблица.  http://www.excelworld.ru/forum/3-39078-1
форум откатили...
повторюсь:
файл прайс-заказ имеет оформление, имеет структуру,
поэтому автоматическое добавление всех строк из второго листа, которых нет на первом не нужно
более того, в 1с много мусора, поэтому нужно именно сравнить артикулы и по артикулам обновить еще 3 значения в строке (штрихкод, цена, кол-во)

плоскую таблицу выгрузить нет возможности :( как бы тут не ругали (((
и кстати да, нажал прикрепить ссылку, страница зависла напрочь :/
Обновление данных в прайс-листе средствами VBA (сравнение 2ух массивов), массивы, сравнение
 
вижу ребята вам тут скучно))
набрасываетесь на незнаек, как собака на кошку

никогда не думал, что форумное общение так деградирует за 10 лет
раньше люди друг другу помогали, а не к постам придирались...
видимо задачу придется самому решать
хотя она и сейчас решена через ВПР,
переписано мной на поискпоз и индекс, но хотелось еще лучше, поэтому пришел к экспертам, но....
Изменено: Александр Шайтар - 22.09.2018 13:07:22
Обновление данных в прайс-листе средствами VBA (сравнение 2ух массивов), массивы, сравнение
 
Цитата
vikttur написал:
С внимательностью тяжело...
ох уж эти программисты))) ошибок не прощают)))))))))))
Обновление данных в прайс-листе средствами VBA (сравнение 2ух массивов), массивы, сравнение
 
У нас 1с 7, и самописный экспорт данных (правда можно выбрать xls, xml, csv), на который повлиять оч сложно,

поэтому во второй таблице данные не подготовленные (без шапки и т.п.), и есть множество не до конца заполненных строк (где-то нет артикула, где-то штрихкода)
и что еще хуже могут вознить проблемы как с кодировкой так и с форматом данных при вставке в ексель, потому что к примеру есть артикулы похожие на дату, а есть штрихкода начинающиеся с 0, соответственно штрихкод нельзя сделать числом..
Обновление данных в прайс-листе средствами VBA (сравнение 2ух массивов), массивы, сравнение
 
Цитата
vikttur написал:
файл-пример с двумя листами
Обновление данных в прайс-листе средствами VBA (сравнение 2ух массивов), массивы, сравнение
 
Добрый день уважаемые форумчане,
есть задача:

Имеем 2 файла данных (по ~5000 строк каждый)
Один файл1 (штрихкод, артикул, цена без ндс, остаток на складе), файл2 свежие данные из 1с
Совпадения нужно искать по артикулу (может быть не только число)
и из файла2 по совпадению артикула разносить данные в соответствующие поля файла1
В файлах встречаются пустые строки.

Как средствами VBA решить данную задачу?
А то пересмотрел уже кучу видео по данной теме, и что-то так и не смог ничего путного сделать сам :(
Изменено: Александр Шайтар - 24.09.2018 23:05:25
Как с помощью VBA применить к ячейкам текстовый формат?
 
собственно согласен, все на 90% работает, но
есть проблемы с артикулами начинающимися на 0
и с теми артикулами в которых есть русские буквы вместо английских...
нашел на форуме макрос

Код
Sub Repair_LAT()   ' заменить русские буквы такими же по начертанию латинскими     
  If TypeName(Selection) <> "Range" Then Exit Sub   
  Dim arrENG(): arrENG = Array("C", "c", "E", "e", "T", "O", "o", "p", "P", "A", "a", "H", "K", "k", "X", "x", "B", "M")   
  Dim arrRUS(): arrRUS = Array("С", "с", "Е", "е", "Т", "О", "о", "р", "Р", "А", "а", "Н", "К", "к", "Х", "х", "В", "М")   
  Dim i%   
  For i = 0 To UBound(arrENG)   
     Intersect(Selection, ActiveSheet.UsedRange).Replace _   
           What:=arrRUS(i), _   
           Replacement:=arrENG(i), _   
           LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=True   
  Next i   
End Sub

Как мне его внедрить в свой, чтобы он сработал для заранее заданного диапазона, типо Range("E12:E2160").Select
Что нужно изменить во второй строчке?

Изменено: Александр Шайтар - 01.08.2018 13:55:16
Как с помощью VBA применить к ячейкам текстовый формат?
 
блин, есть все же парочка н/д... видимо еще какой-то тип данных не учтен, точно видно, что если артикул начинается с 0, то н/д, и видимо в парочке есть какие-то невидимые символы...
Как с помощью VBA применить к ячейкам текстовый формат?
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
Selection.FormulaArray = "=MATCH(RC[4]&"""",[value.xls]Лист1!R1C1:R4622C1&"""",0)"
а вот это помогло!!! УРА!!!!
просто артикулы у нас совершенно разные , присутствуют всякие 02344322424 и 33.33.3333 и 12 000 232322 и т.п. поэтому и там и там приходится использовать текстовый формат :)

может тогда подскажите что это за модификаторы? и как они так повлияли на работу? или ссылку дадите где почитать что это такое и как использовать?
Как с помощью VBA применить к ячейкам текстовый формат?
 
там просто дальше из файла value извлекаются значения и разносятся в поля прайса
Код
' штрихкод
    Range("B12").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.NumberFormat = "@"
    Range("B12").Select
    Selection.FormulaArray = "=INDEX([value.xls]Лист1!R1C1:R4622C4,RC[-1],2)"
    Selection.AutoFill Destination:=Range("B12:B2160")
а артикул в файле value предварительно тоже переводится в текстовый формат
Код
' открываем данные и делаем форматы
    Workbooks.Open Filename:="Z:\Прайс-листы\value.xls"
    Range("A1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.NumberFormat = "@"
Изменено: Александр Шайтар - 01.08.2018 10:59:47
Как с помощью VBA применить к ячейкам текстовый формат?
 
стало везде н/д, но чую ответ где-то блико :)
Как с помощью VBA применить к ячейкам текстовый формат?
 
Код
' артикулы в текстовый формат
    Range("E12").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.NumberFormat = "@"
 
' поискпоз
    Range("A12").Select
    Selection.FormulaArray = "=MATCH(RC[4],[value.xls]Лист1!R1C1:R4622C1,0)"
    Selection.AutoFill Destination:=Range("A12:A2160")

вот что есть в макросе
в результате часть значений в столбце А12 выводится как #н/д (там где артикул число оформленное как текст)
но если в столбце E12, 2 раза нажать на значение (зайти как бы в редактирование и выйти), то вместо н/д появляется необходимое значение.
т.е. формат текстовый как нужно применился, но из-за того, что появляется зеленая стрелка с ошибкой что "число оформлено как текст", формула не обрабатывает
Изменено: Александр Шайтар - 01.08.2018 10:00:55
Как с помощью VBA применить к ячейкам текстовый формат?
 
7 строчек упреков и ни одного дельного совета или ссылки... :)
Как с помощью VBA применить к ячейкам текстовый формат?
 
1. (Альтернативное название темы) Как изменить через VBA формат ячеек на текстовый и сделать чтобы он "применился"?
2. Файлы оригинальные и не влазили по размерам в разрешенный лимит.
3. Понятия не имел, на других форумах как раз человек понимает, что ему ответили.


По сути проблемы, видел обратную ситуацию, там наоборот делали формат из текстового числовым и умножали на 1, чтобы "пробежаться" по ячейкам).
Как с помощью VBA применить к ячейкам текстовый формат?
 
Цитата
a.i.mershik написал:
Александр Шайтар , пример приложите.
https://yadi.sk/d/qW08Qguc3Zkveo

макрос правда пока написан частично,
но суть того что хочу сделать думаю понятна,
там есть пару строк.. в начале отключение ошибок и потом изменение формата,
но они не помогли....
но если после срабатывания макроса 2 раза нажать в артикул, в строке где штрих-код не подставился, то он отработает...
Изменено: Александр Шайтар - 31.07.2018 15:33:36
Как с помощью VBA применить к ячейкам текстовый формат?
 
Добрый день,
Столкнулся тут с проблемой, пытаюсь на работе написать макрос, чтобы из файла выгруженного из 1с в xls (value.xls),
подтянулись данные в екселевский прайс (price-zakaz.xls) (оформленный, с картинками, структурой и т.п.)
Хочу использовать связку ПОИСКПОЗ и ИНДЕКС, и по Артикулу, разнести штрих-коды, цены и остатки.

И вот собственно суть проблемы, Артикулы бывают разного вида и чтобы они автоматически не форматировались (в дату и т.п.) стоит формат - текстовый
Так вот формула не срабатывает, пока не нажмешь на ячейку с неправильным форматом, как только туда нажал - срабатывает и считает, но не будешь же тыкать во все ячейки в столбце (2000+ шт) и уж тем более не понятно как это сделать макросом, да и думаю есть более элегантное решение, ибо задача довольно стандартная и повседневная, просто я только начал осваивать макросы и VBA :(
Страницы: 1
Наверх