Поиск по штрихкоду в excel

Ввод штрих кодов со сканера в Excel

Программа предназначена для облегчения ввода данных со сканера штрих-кодов в таблицу Excel.

Вы нажимаете кнопку на сканере, — в таблице Excel автоматически находится считанный штрих-код,
и в этой строке количество товара увеличивается на единицу.

Особенности программы:

  • 2 режима фиксации ввода штрих-кода: по фиксированной длине, и по завершающему символу
  • возможность удаления части символов из считанного штрихкода
  • добавление новых (отсутствующих в таблице) штрих-кодов в конец таблицы
  • поддержка ячеек с несколькими штрихкодами одновременно
  • ввод количества товара с клавиатуры (если количество товара больше 1)
  • цветовая индикация результатов поиска
    (зеленый — штрихкод найден в таблице, красный — не найден, желтый — добавлена новая строка с этим штрихкодом)

В настройках программы можно задать:

  • номера столбцов со штрихкодами и количеством товара
  • включить режим добавления новых штрихкодов в таблицу Excel
  • задать столбец с ограничением количества товара для данной записи (строки)
  • настроить «горячую клавишу» для ввода количества с клавиатуры

С каждой новой версией программы, количество возможностей будет расширяться.

Планируется реализовать:

  • отмену ввода штрихкода (сейчас можно этого добиться вводом отрицательного количества)
  • большой индикатор для вывода данных из строки, где найден считанный штрихкод
  • подсветку значений количества товара (при превышении заданного значения)
  • немедленный или отложенный ввод данных в таблицу Excel
  • ведение лога считанных кодов
  • и многое-многое другое…

Если вы используете Excel при работе со сканером штрих-кодов, — опробуйте программу, и выскажите свои пожелания и замечания.

Всё это обязательно будет учтено в следующих версиях надстройки.


В новой версии программы, можно включить расширенный режим окна сканера:

Внешний вид расширенного окна сканера штрихкодов

Расположение, размеры и цвета всех полей, а также источник данных для них, задаются в настройках программы:

Настройки расширенного окна сканера штрих-кодов

Поиск товара по штрих-коду и формирование текущего чека

art777

Дата: Понедельник, 16.05.2016, 17:33 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 33


Репутация:

2

±

Замечаний:
0% ±


Excel 2010

Необходимо найти цену товара по базе штрих-кодов и подсчитать общую сумму цен отсканированных позиций с возможностью обнуления суммы (любой, какой-ни будь, клавишей), и повторения цикла суммирования.
Т.е. по сути в любой ячейке таблицы необходимо сформировать «чек» продажи отсканированных позиций, с возможностью начать новый «чек» после нажатия какой-либо кнопки на клавиатуре.
Пояснение принципа работы сканера: после сканирования штрих-код вводится в любую(активную) ячейку таблицы и добавляется команда «ввод».

В файле примера есть макрос лога открытия-закрытия файла(наверное надо предупреждать?).
Извините, если что-то не так, это моё первое сообщение на форуме.
Спасибо.

К сообщению приложен файл:

-1_2016.xls
(47.5 Kb)

Сообщение отредактировал ManyashaСуббота, 21.05.2016, 16:51

 

Ответить

art777

Дата: Вторник, 17.05.2016, 03:40 |
Сообщение № 2

Группа: Пользователи

Ранг: Новичок

Сообщений: 33


Репутация:

2

±

Замечаний:
0% ±


Excel 2010

Господа, понял свою ошибку, каюсь…
Видимо плохо объяснил задачу?
Перерыл кучу форумов/тем по по данному вопросу, нашёл там пример, который мне почти подходит, но он с некоторыми недоработками и топик там «заглох» так и не доведя формулу до ума.
В первом файле тот самый пример, а во втором моё описание, что примерно должно получиться.
Лиловым цветом выделены действия кассира, а красным — желаемый результат.
Спасибо.

 

Ответить

art777

Дата: Четверг, 19.05.2016, 16:10 |
Сообщение № 3

Группа: Пользователи

Ранг: Новичок

Сообщений: 33


Репутация:

2

±

Замечаний:
0% ±


Excel 2010

И снова здравствуйте.
Вот ещё один вариант, который мне в принципе подошёл бы если бы было обнуление в ячейке «Сумма» по нажатию кнопки на клавиатуре. Штрих-код вводится в жёлтую ячейку, идёт поиск по базе, получаем сумму, но как запустить хардверной клавишей новый поиск и суммирование?

Помогите пожалуйста облегчить подсчёт чека кассиру…

К сообщению приложен файл:

3750349.xls
(69.0 Kb)

 

Ответить

Manyasha

Дата: Четверг, 19.05.2016, 19:52 |
Сообщение № 4

Группа: Модераторы

Ранг: Старожил

Сообщений: 2198


Репутация:

898

±

Замечаний:
0% ±


Excel 2010, 2016

art777, не знаю, правильно ли я поняла, попробуйте:
[vba]

Код

Sub addRow()
    With ActiveCell
        .EntireRow.Insert
        .Offset(-1) = «Итого:»
        Set rPrev = Range(«a1:a» & .Row — 2).Find(«Итого:», , , xlWhole, xlByRows, xlPrevious)
        If Not rPrev Is Nothing Then r0 = rPrev.Row + 1 Else r0 = 2
        .Offset(-1, 1) = Application.Sum(Range(«b» & r0 & «:b» & .Row — 2))
        .Offset(-1).Resize(, 3).Interior.ColorIndex = 15
    End With
End Sub

[/vba]

Файл взяла из первого поста.
При нажатии клавиши TAB, добавляется строчка над активной ячейкой и считается сумма по столбцу B.

К сообщению приложен файл:

1_2016-1.xls
(68.5 Kb)


ЯД: 410013299366744 WM: R193491431804

 

Ответить

art777

Дата: Четверг, 19.05.2016, 21:50 |
Сообщение № 5

Группа: Пользователи

Ранг: Новичок

Сообщений: 33


Репутация:

2

±

Замечаний:
0% ±


Excel 2010

Manyasha, спасибо за интерес к моему вопросу.
Дело в том, что таблица должна работать со сканером штрих-кода, а в файле из первого поста это вообще не реализовано, т.е. там только мои «хотелки»(невнятно описанные) в пустой таблице. К сожалению я не нашёл как здесь редактировать свои посты, так бы удалил первый пост конечно.
Во втором и третьем сообщении уже вполне рабочие примеры с готовыми формулами и макросами(во втором посте поиск реализован через ВПР, а в третьем через макрос), т.е. там уже есть поле для ввода штрих-кода и оно корректно работает со сканером — ищет позицию с введённым штрих-кодом, добавляет количество отсканированного товара и т.п.
Единственное, чего не хватает — это сбросить результат суммирования в ячейке «СУММА» любой клавишей на клавиатуре, и возвратить курсор снова в поле «Штрих-код».

 

Ответить

Serge_007

Дата: Четверг, 19.05.2016, 23:24 |
Сообщение № 6

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

я не нашёл как здесь редактировать свои посты, так бы удалил первый пост

Вот именно поэтому на форуме установлен запрет на удаление :)


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

art777

Дата: Четверг, 19.05.2016, 23:35 |
Сообщение № 7

Группа: Пользователи

Ранг: Новичок

Сообщений: 33


Репутация:

2

±

Замечаний:
0% ±


Excel 2010

Вот именно поэтому на форуме установлен запрет на удаление

Это понятно…
Но иногда бывают ситуации, когда начинаешь осознавать всю нелепость написанного тобой же, особенно изучая вопрос и погружаясь в тему.
Мы же тут не «политику» обсуждаем, что бы потом можно было «ткнуть носом», и напомнить — «а-а-а-а, сегодня вы уже за левых, а вот вчера…»

 

Ответить

Hugo

Дата: Пятница, 20.05.2016, 09:18 |
Сообщение № 8

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3140


Репутация:

670

±

Замечаний:
0% ±


2010, теперь уже с PQ

как запустить хардверной клавишей новый поиск и суммирование?

проблем с запуском нет — пишите отдельный код, удаляющий ненужную информацию, ставите в его свойствах вызов сочетанием клавиш, ну или рисуете вызывающую макрос кнопку.
Но есть проблема с пониманием что именно лишнее — итоговая сумма или эти количества? И в итоге сумма :)
P.S. Кстати, в коде есть один большой косяк, и один маленький:
1. Большой — поиск нужно делать по полному содержимому ячейки, а не частичному.
2. Маленький — лучше бы отключить обработку событий если нашли совпадение, чтоб код не отрабатывал два лишних раза.


excel@nxt.ru
webmoney: R418926282008 Z422237915069

Сообщение отредактировал HugoПятница, 20.05.2016, 09:32

 

Ответить

art777

Дата: Пятница, 20.05.2016, 19:01 |
Сообщение № 9

Группа: Пользователи

Ранг: Новичок

Сообщений: 33


Репутация:

2

±

Замечаний:
0% ±


Excel 2010

Уважаемый Hugo, для меня это всё «тёмный лес», кстати свои примеры я взял с «планеты» и, по-моему, это именно ваши формулы, я лишь немного отформатировал таблицу под свои нужды :)
Там нет, как бы, ничего лишнего, есть ЗАДАЧА вывести итоговую сумму отсканированного товара(сумму чека), и начать суммирование нового чека, а если есть возможность сохранить эти количества — вообще прекрасно, будет сохранён как-бы лог продаж за смену.
Но именно сохранить сумму отсканированного, на мой взгляд, проще(красивее) было бы в файле из 2-го поста(первый файл — оригинал, а во втором файле описана задача), там лишь надо выводить сумму(цен) диапазона между пустыми ячейками в колонке «B» и отображать её(сумму) в колонке «F». Т.е. в колонку «B» вводится штрих-код, ищется строка с товаром из базы(на 2-м листе) — отображается товар с ценой, вводится следующий штрих-код и т.д., а после сканирования всех товаров нажимается «ВВОД» в той же колонке «B»(как бы зарывается чек) — и появляется сумма чека! По сути, клавишей «ВВОД» вместо сканирования товара, мы формируем пустую ячейку, именно в диапазоне между пустыми ячейками в колонке «B» нам и нужно подсчитать сумму цен. После очередного сканирования штрих-кода — начинается новый чек и новый подсчёт сумм. По-моему понятнее всё описано в самом файле(2-й файл из 2-го поста темы). Для меня это сложно очень.

Я написал макрос в файле из поста №3 этой темы, этот макрос очищает количество товара по сочетанию CTRL+C в ячейке «E» и возвращает курсор в ячейку сканирования. В принципе всё не плохо, но тогда не сохраняется лог продаж :(
Ну и хотелось бы что бы макрос работал от одной клавиши(TAB, ENTER, ПРОБЕЛ), а не от сочетания клавиш, продавцы — женщины пенсионного возраста, сложно им 2 клавиши вместе нажимать будет.
Прилагаю файл с макросом для лучшего понимания задачи.

К сообщению приложен файл:

-___.xls
(76.5 Kb)

 

Ответить

Manyasha

Дата: Пятница, 20.05.2016, 20:25 |
Сообщение № 10

Группа: Модераторы

Ранг: Старожил

Сообщений: 2198


Репутация:

898

±

Замечаний:
0% ±


Excel 2010, 2016

art777, так хотите?
Сумма обнуляется по нажатию TAB.

Если опять не угадала, расписывайте в файле все подробно: что должно быть в логе, как он должен выглядеть, куда записываться и т.д.
Количество помогающих и качество их ответов напрямую зависит от Вашего объяснения задачи.

К сообщению приложен файл:

-1.xls
(70.0 Kb)


ЯД: 410013299366744 WM: R193491431804

 

Ответить

art777

Дата: Пятница, 20.05.2016, 20:44 |
Сообщение № 11

Группа: Пользователи

Ранг: Новичок

Сообщений: 33


Репутация:

2

±

Замечаний:
0% ±


Excel 2010

Manyasha, спасибо!
Уже половина задачи выполнена…
А нельзя ли, что бы в каком-ни будь столбце, например «H» сохранялась сумма из столбца «E«, и она не удалялась по «TAB», а постоянно накапливалась? Т.е. что бы можно было отследить количество отсканированных товаров за смену, это и будет «лог» продаж.
[moder]А я забыла написать, чтобы Вы лист 2 посмотрели. Туда все записывается.[/moder]

Сообщение отредактировал ManyashaПятница, 20.05.2016, 23:19

 

Ответить

Hugo

Дата: Пятница, 20.05.2016, 23:38 |
Сообщение № 12

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3140


Репутация:

670

±

Замечаний:
0% ±


2010, теперь уже с PQ

Manyasha, хитро с табом сделали, я что-то и не подумал о таком :)
Только нужно бы отключать при переходе в другую книгу — а то нехороший эффект получается… Так можно что-то запороть…
Ну или как минимум указать куда писать:
[vba]

Код

With ThisWorkbook.Sheets(2)

[/vba]
так ничего не запорет, только лишних строк накидает.


excel@nxt.ru
webmoney: R418926282008 Z422237915069

Сообщение отредактировал HugoПятница, 20.05.2016, 23:40

 

Ответить

art777

Дата: Суббота, 21.05.2016, 00:16 |
Сообщение № 13

Группа: Пользователи

Ранг: Новичок

Сообщений: 33


Репутация:

2

±

Замечаний:
0% ±


Excel 2010

А я забыла написать, чтобы Вы лист 2 посмотрели. Туда все записывается.

Вау, шикарно! hands
Ещё, если можно конечно, желательно чтобы после «TAB» курсор возвращался в поле для штрих-кода(с любой ячейки), а то нажмут продавцы где-нибудь мышкой, а потом телефон оборвут с криками «всё пропало, я поломала ваш компутер!» :D

Спасибо Вам за помощь!

 

Ответить

art777

Дата: Суббота, 21.05.2016, 01:41 |
Сообщение № 14

Группа: Пользователи

Ранг: Новичок

Сообщений: 33


Репутация:

2

±

Замечаний:
0% ±


Excel 2010

Кажется я нашёл ошибку в «логе».
При сканировании одно и того же кода товара(123, например), количество товара(в логе, в колонке кол-во) в каждой следующей строке увеличивается на +1, хотя общая сумма в поле «ИТОГО» отражается верно.

 

Ответить

Manyasha

Дата: Суббота, 21.05.2016, 16:09 |
Сообщение № 15

Группа: Модераторы

Ранг: Старожил

Сообщений: 2198


Репутация:

898

±

Замечаний:
0% ±


Excel 2010, 2016

Hugo,

нужно бы отключать при переходе в другую книгу

Согласна! ) Добавила отключение, и при переходе на другие листы тоже добавила, вряд ли понадобится вызывать макрос с других листов.
Ну и ThisWorkbook тоже добавила, на случай, если кто-то решит опробовать макрос не по клавише tab. :D поправила

после «TAB» курсор возвращался в поле для штрих-кода

добавила

К сообщению приложен файл:

art777-2.xls
(75.0 Kb)


ЯД: 410013299366744 WM: R193491431804

 

Ответить

art777

Дата: Суббота, 21.05.2016, 16:29 |
Сообщение № 16

Группа: Пользователи

Ранг: Новичок

Сообщений: 33


Репутация:

2

±

Замечаний:
0% ±


Excel 2010

Manyasha
Большое Вам спасибо!
Не только от меня, а от ТЫСЯЧ ларёчников-мелких предпринимателей, которые уложившись в бюджет 100-200$(сканер+ноутбук) смогут значительно облегчить труд своих продавцов.
Есть, конечно, и готовые решения типа «магазка» и т.п. ломанные на торрентах, но они перегружены лишним функционалом и там не удобно реализованы многие функции.
Единственная просьба — переименуйте топик более «искабельно», что-то типа «Формирование текущего чека в excel» или как-то так.
СПАСИБО. hands
[moder]Что же Вы сразу слово «чек» в название темы не впихнули, раз так более ? Переименовала.[/moder]

Сообщение отредактировал ManyashaСуббота, 21.05.2016, 16:53

 

Ответить

art777

Дата: Воскресенье, 22.05.2016, 00:29 |
Сообщение № 17

Группа: Пользователи

Ранг: Новичок

Сообщений: 33


Репутация:

2

±

Замечаний:
0% ±


Excel 2010

Что же Вы сразу слово «чек» в название темы не впихнули

Ну, знаете ли, это яркий пример того, как форум может принести реальную пользу, реальным людям.
Сначала человек озабочен своей проблемой, а потом, видя реальную пользу от коллективных усилий — хочется помочь и остальным.
СПАСИБО.

 

Ответить

bigggi

0 / 0 / 0

Регистрация: 25.10.2014

Сообщений: 13

1

25.10.2014, 21:52. Показов 16841. Ответов 20

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Здравствуйте!
У меня на роботе возник вопрос ускорения перебора товара клиентам по накладной.
Ну и в первую очередь что в голову пришло так это сканирование штрих кода.

Уже есть небольшой макрос для екселя, хотелось бы доделать, но не хватает знаний в написании макросов.
По этому обращаюсь к Вам.
Все что есть прикреплю в архиве.
Сам листин макроса

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Sub ПоискКлиента()
' ПоискКлиента Макрос
' Макрос записан 22.10.2014 (LA)
 
    Dim Kod, Name, Klient As String
    Dim Num As Long
 
    Num = 3
   ' Columns("C:D").Select
   ' Selection.ClearContents
    Range("B2").Select
    Kod = Cells(3, 2)
     For i = 1 To 65535
      Windows("Накладная.xlsx").Activate
      If Cells(i, 2) = Kod Then
       If Cells(i, 7) <> Cells(i, 10) Then
        Name = Cells(i, 3)
        Cells(i, 7) = Cells(i, 7) + 1
        Klient = Cells(i, 13)
        Windows("ПОИСК.xls").Activate
        Cells(Num, 3) = Name
       Cells(5, 2) = Klient
        Num = Num + 1
      End If
      End If
     Next i
    Windows("ПОИСК.xls").Activate
End Sub

Мне на склад от менеджера приходит накладная в которой только указаны номера и названия деталей,
поэтому для этого складывается отдельный лист с штрих кодом и названием типовым для накладной, если так можно назвать будет как дешифратор.
Проверка условия наличия товара ( If Cells(i, 7) <> Cells(i, 10) Then) то есть если уже у Василия есть все количество единицы товара тогда продолжаем поиск дальше по списку, все это работает а вот else не хочет работать ( то есть кода уже никому не нужен этот товар выбивало некое сообщение что никому не нужна эта деталь.
Так же не знаю как сделать так чтоб не нужно было нажимать кнопку ИСКАТЬ так как сканер сам емулирует нажатие ентера, и нажимать после каждого сканирования кнопочку неудобно.
Прошу помощи в етих вопросах)_
Буду очень признателен)
Спасибо!

Вложения

Тип файла: rar Архив WinRAR (2).rar (239.9 Кб, 100 просмотров)



0



2784 / 716 / 106

Регистрация: 04.02.2011

Сообщений: 1,443

28.10.2014, 11:03

2

Ускорить перебор товара можно. В накладной не подписаны столбцы; и не понятно, что конкретно должен сделать макрос. Там в накладной что, ещё и остаток товара показан? Попробуйте всё подписать в таблицах и сформулировать простыми словами, как должен работать поиск по штрих-коду (и что ещё кроме поиска должно происходить). Возможно в этом случае получите ответы на свои вопросы.



0



0 / 0 / 0

Регистрация: 25.10.2014

Сообщений: 13

31.10.2014, 12:41

 [ТС]

3

Понятно , спасибо.
Нужно полученный считанный код проверить по так называемой базе штрих кодов которою буду набивать сам.
В базе каждый штрих код имеет свое название например:
ШтрихКод Название товара
4047437092815 LMI27135

Для поиска по накладной нам нужно брать данные из столбца «Название товара» и по этим данным там искать, если же было найдено совпадение по накладной то напротив товара в столбе G проставляем 1 .
В столбе j указано нужное количество, проверяем если данные в столбе J равны G тогда ищем дале по списку такой же товар. Если товара такого больше никому не нужно, выводим об этом сообщение.
Вроде так.
И еще сканер после считывания сам емулирует нажатие клавишы ентер тоесть чтобы для запуска макроса каждый раз не жать кнопку поиск пробую сделать его запуск после считывания штрих кода.
Спасибо.



0



mc-black

2784 / 716 / 106

Регистрация: 04.02.2011

Сообщений: 1,443

31.10.2014, 17:03

4

Вставьте этот код в модуль листа «Лист1» в книге Поиск:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Option Explicit
 
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim res As Range
    ' Проверка на изменение значения ячейки [B2]
    If Not Intersect(Me.[B2], Target) Is Nothing Then
        With Workbooks("База данных.xlsx").Worksheets(1)
            ' Диапазон столбца со штрихкодами
            Set res = .Cells(2, 1).Resize(.Cells(.Rows.Count, 1).End(xlUp).Row - 1, 1)
            ' Поиск штрихкода в столбце
            Set res = res.Find(Me.[B2], LookIn:=xlFormulas, LookAt:=xlWhole)
            If Not res Is Nothing Then
                ' Штрихкод найден
                Me.[B3] = res.Offset(0, 1)
                Call Nakl(res.Offset(0, 1), Me.[B5]) ' Заполнить накладную (подпрограмма)
            Else
                ' Штрихкод не найден
                Me.[B3] = ""
                MsgBox "Товар не найден в базе данных"
            End If
        End With
        Me.[B2].Select ' Вернуть выделение для ввода штрихкодов
    End If
End Sub
 
Private Sub Nakl(txt As String, cnt As String)
    Dim i As Long, b As Boolean
    With Workbooks("Накладная.xlsx").Worksheets(1)
        b = False
        For i = 1 To .Cells(.Rows.Count, 2).End(xlUp).Row
            If StrComp(txt, .Cells(i, 2)) = 0 Then ' Совпадение наименований
            If StrComp(cnt, .Cells(i, 13)) = 0 Then ' Совпадение контрагента
                If .Cells(i, 7) < .Cells(i, 10) Then ' Если товар в нужном количестве не набран
                    .Cells(i, 7) = .Cells(i, 7) + 1 ' Добавить единицу по накладной
                    b = True
                    Exit For
                End If
            End If
            End If
        Next
        If Not b Then MsgBox "Товар " & txt & " нельзя добавить в накладную"
    End With
End Sub

По идее должно работать. Все три книги при работе должны быть открыты.



0



0 / 0 / 0

Регистрация: 25.10.2014

Сообщений: 13

31.10.2014, 20:25

 [ТС]

5

Почему то не получаеться протестить
выбивает ошибку «нельзя добавить в накладную»((



0



bigggi

0 / 0 / 0

Регистрация: 25.10.2014

Сообщений: 13

01.11.2014, 17:58

 [ТС]

6

и второе что заметил так это то что он ищет только одну позицию и проставляет ей количество если количество дошло до нужного то выбивает сообщение что нельзя больше добавлять. НО такой же товар есть еще чуть ниже в другого клиента но это упускается.

Добавлено через 2 часа 15 минут
mc-black, Немного переделал Ваш код и вроде все делает что мне нужно также перевел все в форму.
Посмотрите пожалуйста код может что то посоветуете добавить.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Private Sub TextBox1_Change()
 
  Dim res As Range
    ' Проверка на изменение значения ячейки [B2]
   ' If Not Intersect(Me.TextBox1, Target) Is Nothing Then
        With Workbooks("База данных.xlsx").Worksheets(1)
            ' Диапазон столбца со штрихкодами
            Set res = .Cells(2, 1).Resize(.Cells(.Rows.Count, 1).End(xlUp).Row - 1, 1)
            ' Поиск штрихкода в столбце
            Set res = res.Find(Me.TextBox1, LookIn:=xlFormulas, LookAt:=xlWhole)
            If Not res Is Nothing Then
                ' Штрихкод найден
                Me.Label1 = res.Offset(0, 1)
            Call Nakl(res.Offset(0, 1), "pusto") ' Заполнить накладную (подпрограмма)
            Else
                ' Штрихкод не найден
                Me.Label1 = ""
                MsgBox "Товар не найден в базе данных"
            End If
        End With
 
End Sub
 
 
 
  Private Sub Nakl(txt As String, cnt As String)
  
    Dim i As Long, b As Boolean
   
    Windows("Накладная.xlsx").Activate
    b = False
   For i = 1 To Cells(Rows.Count, 2).End(xlUp).Row
      
      If Cells(i, 2) = txt Then 'Сравнение искомой детали
 
       If Cells(i, 7) <> Cells(i, 10) Then 'Если не равно то выполняем добавление единицы товара
          Cells(i, 7) = Cells(i, 7) + 1 'Увиличение на единицу количества товара
        
      Label2 = Cells(i, 13) 'Вывод имени клиента
      Label3 = Cells(i, 3) 'Вывод названия товара
      b = True
 
        Exit For
       End If
      End If
     Next i
     
If Not b Then MsgBox "Товар " & txt & " никому не нужен" 'Выводим ошибку об привешении количества товара
 
End Sub

И еще помогите разобраться с полем ввода TextBox он не хочет принимать сканированный код принимает только первую цифру из кода так как сразу начинает выполняться поиск и выбивать ошибку того что нет такого кода в базе. Нужно как то сделать так чтобы забился сканированный код и уже потом выполнялось действие поиска. Напомню что после считки кода сканер емулирует ентер думаю этим можно воспользоваться ,только пока не знаю как работать с нажатиями.
Подскажите пожалуйста.
Спасибо большое за помощь.
С Уважением Игорь

Добавлено через 1 час 46 минут
Вроде во всем разобрался.
Остались мелочи.
Спасибо

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
 
        With Workbooks("База данных.xlsx").Worksheets(1) 'Открытие листа
            ' Диапазон столбца со штрихкодами
  If KeyCode = 13 Then
  
            Set res = .Cells(2, 1).Resize(.Cells(.Rows.Count, 1).End(xlUp).Row - 1, 1) ' Поиск штрихкода в столбце
            
            Set res = res.Find(Me.TextBox1, LookIn:=xlFormulas, LookAt:=xlWhole)
      If Not res Is Nothing Then ' Штрихкод найден
                   Me.Label1 = res.Offset(0, 1)
            Call Nakl(res.Offset(0, 1), "pusto") ' Заполнить накладную (подпрограмма)
            Else  ' Если штрихкод не найден
               
                Me.Label1 = ""
                MsgBox "Товар не найден в базе данных"
        End If
    End If
End With
 
End Sub
 
 
Private Sub Nakl(txt As String, cnt As String)
  
    Dim i As Long, b As Boolean
   
    Windows("Накладная.xlsx").Activate
    b = False
   For i = 1 To Cells(Rows.Count, 2).End(xlUp).Row
      
      If Cells(i, 2) = txt Then 'Сравнение искомой детали
 
       If Cells(i, 7) <> Cells(i, 10) Then 'Если не равно то выполняем добавление единицы товара
          Cells(i, 7) = Cells(i, 7) + 1 'Увиличение на единицу количества товара
        
      Label2 = Cells(i, 13) 'Вывод имени клиента
      Label3 = Cells(i, 3) 'Вывод названия товара
      b = True
 
        Exit For
       End If
      End If
     Next i
     
If Not b Then MsgBox "Товар " & txt & " никому не нужен" 'Выводим ошибку об привешении количества товара
 
End Sub



0



mc-black

2784 / 716 / 106

Регистрация: 04.02.2011

Сообщений: 1,443

05.11.2014, 09:22

7

Ну так исправленный Ваш код после доработки выполняет, что требуется?
В 34 строке лучше поставить знак ‘<‘, чем ‘<>’, так как если окажется (вдруг) на единицу больше, что добавится ещё единица. 32 стоку можно записать как сравнение строк:

Visual Basic
1
If StrComp(Cells(i, 2), txt) = 0 Then 'Сравнение искомой детали



0



0 / 0 / 0

Регистрация: 25.10.2014

Сообщений: 13

08.11.2014, 16:08

 [ТС]

8

Да выполняет все что нужно)
есть маленькие нюансы но это вполне поправимо.
Думаю на протяжении использование нужно будет что то дорабатывать, то буду спрашивать у Вас.
Спасибо за помощь, без Вас бы не разобрался никогда!

П.С. Как думаете возможно ли в интернете где то найти базу данных штрихкодов автозапчастей?



0



0 / 0 / 0

Регистрация: 20.12.2014

Сообщений: 2

23.03.2015, 22:00

9

Доброе время суток! Извините что вклиниваюсь в Вашу тему но больше нигде толком не могу найти ответа. А у Вас то что нужно. Я в этом деле новичок и тоже хотел бы сделать считывание штрих кода в excel, а то вручную уже замучился вбивать числа. Я так понимаю что у Вас работает через форму? Не могли бы Вы помочь в написании кода. У меня есть пример там написан не большой код все что я смог понять а дальше не могу. В примере описано как хотелось бы. Заранее благодарен.



0



2784 / 716 / 106

Регистрация: 04.02.2011

Сообщений: 1,443

24.03.2015, 11:33

10

1. Создайте свою собственную тему. Это можно, желательно и нужно.
2. В каком режиме работает ваш сканер штрих-кодов? Режим прерываний клавиатуры?
3. Правильно ли понимаю, что на Лист1 у вас должна формироваться приходная накладная, а Лист1 используется одновременно для учета остатка товара, как номенклатурный справочник по кодам?
4. Было бы просто замечательно, если бы текст не сопровождался грамматическими ошибками.



0



0 / 0 / 0

Регистрация: 20.12.2014

Сообщений: 2

24.03.2015, 22:00

11

1. Спасибо попробую.
2. Работает в режиме клавиатуры.
3. Да все верно.
4. По русскому у меня было 3. Извините.



0



0 / 0 / 0

Регистрация: 06.08.2015

Сообщений: 4

07.08.2015, 08:09

12

timur13 напиши в личку, спасибо



0



15 / 15 / 5

Регистрация: 01.12.2014

Сообщений: 117

07.08.2015, 11:07

13

Цитата
Сообщение от qwert82ar
Посмотреть сообщение

timur13 напиши в личку, спасибо

не стоит.

Если тема повторяет имеющуюся — тогда стоит искать ответы в ней. Если это не так —

Цитата
Сообщение от mc-black
Посмотреть сообщение

1. Создайте свою собственную тему. Это можно, желательно и нужно.



0



0 / 0 / 0

Регистрация: 04.08.2015

Сообщений: 3

07.08.2015, 20:35

14

Цитата
Сообщение от сороконожка
Посмотреть сообщение

не стоит.

Если тема повторяет имеющуюся — тогда стоит искать ответы в ней. Если это не так —

мне нужен пример timur13 но чучуть переделать я просто новичек заранее благодарен



0



0 / 0 / 0

Регистрация: 04.08.2015

Сообщений: 3

07.08.2015, 21:17

15

Помогите пожалуйста настроить работу Excel со сканером штрих-кодов. Точнее у меня есть сканер и мне нужно чтобы он работал с Excel.
Вот я немного набросал а дальше не знаю как ПОМОГИТЕ!!!!!!!!!!!!!!!!!!
Я в этом деле новичек.
вот мой пример



0



6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

10.08.2015, 21:04

16

qwert82, можете сканить. Макросов нет, формулы начиная с жёлтой строки, можете их и вверх протянуть.



1



0 / 0 / 0

Регистрация: 04.08.2015

Сообщений: 3

11.08.2015, 22:35

17

не могу скачать



0



0 / 0 / 0

Регистрация: 06.08.2015

Сообщений: 4

11.08.2015, 22:43

18

товары я буду сканировать хаатично же остатки не сходятся



0



6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

11.08.2015, 22:50

19

Т.е. скачали, но затаились?
А насчёт «не сходятся» — я в Вашу математику не вникал.



0



0 / 0 / 0

Регистрация: 06.08.2015

Сообщений: 4

11.08.2015, 23:19

20

скажем так лист 1 это ежедневная продажа набор штрих-кодом будет осуществлятся не по порядку и остаток товара отражается в листе 2, по завершении продажи очищается лист 1 и при этом в листе 2 должно остаться остатки

Добавлено через 2 минуты
просто наименование товара не большой не хочется приобретать там какуюто программу за большие деньги

Добавлено через 10 минут
высланный Вами пример у меня точно так же получилось вот только не получается так как я описал выше



0



September 17 2013, 09:17

Category:

  • Компьютеры
  • Cancel

Надстройка предназначена для облегчения ввода данных со сканера штрихкодов в таблицу Excel.

Вы нажимаете кнопку на сканере, — в таблице Excel автоматически находится считанный штрих-код, и в этой строке количество товара увеличивается на единицу.

Скачать программу можно у меня на сайте:

http://excelvba.ru/programmes/BarcodeScanner

Особенности программы:

  • 2 режима фиксации ввода штрих-кода: по фиксированной длине, и по завершающему символу
  • возможность удаления части символов из считанного штрихкода
  • добавление новых (отсутствующих в таблице) штрих-кодов в конец таблицы
  • поддержка ячеек с несколькими штрихкодами одновременно
  • ввод количества товара с клавиатуры (если количество товара больше 1)
  • цветовая индикация результатов поиска
    (зеленый — штрихкод найден в таблице, красный — не найден, желтый — добавлена новая строка с этим штрихкодом)

В настройках программы можно задать:

  • номера столбцов со штрихкодами и количеством товара
  • включить режим добавления новых штрихкодов в таблицу Excel
  • задать столбец с ограничением количества товара для данной записи (строки)
  • настроить «горячую клавишу» для ввода количества с клавиатуры

С каждой новой версией программы, количество возможностей будет расширяться.

Планируется реализовать:

  • отмену ввода штрихкода (сейчас можно этого добиться вводом отрицательного количества)
  • большой индикатор для вывода данных из строки, где найден считанный штрихкод
  • подсветку значений количества товара (при превышении заданного значения)
  • немедленный или отложенный ввод данных в таблицу Excel
  • ведение лога считанных кодов
  • и многое-многое другое…

Если вы используете Excel при работе со сканером штрих-кодов, — опробуйте программу, и выскажите свои пожелания и замечания.

 

max-aziat

Пользователь

Сообщений: 84
Регистрация: 01.02.2013

в МС ЭКСЕЛЬ есть возможность считивать штрих коды (при наличии сканера штрих кодов) той или иной модели ?
у кого есть информация на этот счет ?

 

EducatedFool

Пользователь

Сообщений: 3632
Регистрация: 23.12.2012

#2

07.02.2013 13:42:41

Насколько мне известно, большинство сканеров штрих-кодов работают так же, как и клавиатура.

Т.е. ввод штрихкода мало чем отличается от нажатия клавиш на клавиатуре
(если открыт Excel, то данные с устройства считывания штрихкода попадают а активную ячейку листа)
Так особых проблем нет.

———————
По поводу штрихкодов:
Недавно сделал программу (надстройку для Excel) для работы со сканерами штрих-кодов:
http://excelvba.ru/programmes/BarcodeScanner
Жду отзывов от пользователей сканеров штрихкодов, — что улучшить, что добавить, что переделать.

Цитата
Программа предназначена для облегчения ввода данных со сканера штрих-кодов в таблицу Excel.
Вы нажимаете кнопку на сканере, — в таблице Excel автоматически находится считанный штрих-код,
и в этой строке количество товара увеличивается на единицу.

Особенности программы:

  • 2 режима фиксации ввода штрих-кода: по фиксированной длине, и по завершающему символу
  • возможность удаления части символов из считанного штрихкода
  • добавление новых (отсутствующих в таблице) штрих-кодов в конец таблицы
  • поддержка ячеек с несколькими штрихкодами одновременно
  • ввод количества товара с клавиатуры (если количество товара больше 1)
  • цветовая индикация результатов поиска
  • (зеленый — штрихкод найден в таблице, красный — не найден, желтый — добавлена новая строка с этим штрихкодом)

В настройках программы можно задать:

  • номера столбцов со штрихкодами и количеством товара
  • включить режим добавления новых штрихкодов в таблицу Excel
  • задать столбец с ограничением количества товара для данной записи (строки)
  • настроить «горячую клавишу» для ввода количества с клавиатуры

С каждой новой версией программы, количество возможностей будет расширяться.
Планируется реализовать:

  • отмену ввода штрихкода (сейчас можно этого добиться вводом отрицательного количества)
  • большой индикатор для вывода данных из строки, где найден считанный штрихкод
  • подсветку значений количества товара (при превышении заданного значения)
  • немедленный или отложенный ввод данных в таблицу Excel
  • ведение лога считанных кодов
  • и многое-многое другое…

Изменено: EducatedFool29.09.2017 19:03:41

 

Hugo

Пользователь

Сообщений: 23255
Регистрация: 22.12.2012

Я думаю, что такой стандартной «менюшки» не найдёте. Разве что кто спецнадстройку написал.
Но если сканер работает как клавиатура, т.е. посылает набор символов и заканчивает ввод переводом строки, то можно это дело обработать макросом как угодно.
Уже такое было пара/тройка вариантов.

 

max-aziat

Пользователь

Сообщений: 84
Регистрация: 01.02.2013

#4

07.02.2013 15:42:32

Цитата
Hugo пишет:
…Уже такое было пара/тройка вариантов.

а можно по подробнее?

 

MerZ@vcheG

Пользователь

Сообщений: 98
Регистрация: 23.12.2012

На прошлой работе был сканер штрих-кодов (не помню какой модели)… Работало вот так — при открытом Excel в активную ячейку вставлялось числовое значение считываемое сканером и срабатывал перевод строки.
Никакого дополнительного ПО не требовалось, за исключением USB-драйвера сканера…

Современные языки программирования обязаны иметь встроенный метод ChuckNorris(),
который возвращает нужные тебе данные из любого объекта, даже если их там нет…

 

Hugo

Пользователь

Сообщений: 23255
Регистрация: 22.12.2012

 

ber$erk

Пользователь

Сообщений: 2735
Регистрация: 25.12.2012

Учимся сами и помогаем другим…

 

max-aziat

Пользователь

Сообщений: 84
Регистрация: 01.02.2013

вот это уже полезная информация
если у кого есть еще какие то данные или примеры буду рад
заранее благодарен ВСЕМ

 

Юрий М

Модератор

Сообщений: 60586
Регистрация: 14.09.2012

Контакты см. в профиле

#9

07.02.2013 18:22:46

Цитата
max-aziat пишет:
если у кого есть еще какие то данные или примеры буду рад

Ещё поискать — так нужно понимать?

 

Hugo

Пользователь

Сообщений: 23255
Регистрация: 22.12.2012

#10

07.02.2013 19:18:00

Что тут можно ещё добавить? Ничего не известно — что за коды, что за сканер, что он выдаёт, что вообще нужно…
Может действительно достаточно как по ссылке — лист Экселя и сканер в разрыв клавиатуры, а может нужно результат обработать, и забить в одну из 10 баз, имея ещё возможность маневра при повторе кода?

Я например вообще «сканирую» всё кучей в один текстовый файл (т.к. часто бывает брак чтения кода этим моим «сканером»), затем скармливаю эту кашу скрипту, который выбирает только нужное на лист Экселя.
Мне нужно именно так, ничего другого для моей задачи не требуется. Но Вам ведь это не подойдёт?

Понравилась статья? Поделить с друзьями:
  • Поиск позиции в excel по тексту
  • Поиск по штрих коду excel
  • Поиск позиции в excel по нескольким условиям на разных листах
  • Поиск по шрифту word
  • Поиск позиции в excel по нескольким таблицам