Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2012, 11:16   #1
Alesa90
Пользователь
 
Регистрация: 26.11.2009
Сообщений: 20
Печаль Сканер штрихкодов и эксель

Задача такая: есть штрихкоды в книге , нужно при сканировании найти нужный и встать на него.
мысли такие: сконфить сам сканер на ctrl + f и жать enter, реально ли это? Если да то как.
может нужно какой нибудь макрос или надстройку?

модель сканера ms5145, подключение USB к ноутбуку.
Alesa90 вне форума Ответить с цитированием
Старый 19.12.2012, 11:40   #2
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Код:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not (Intersect(Target, [1:1]) Is Nothing) Then
    Set R = Columns(Target.Cells(1, 1).Column).Find(What:=Target.Cells(1, 1))
    If R Is Nothing Then
      MsgBox "Not found"
    Else
      R.Select
    End If
  End If
End Sub
Вот такая процедура вам поможет, если сканер работает в режиме HID-клавиатуры. Для работы нужно, чтобы была выделена соответствующая ячейка первой строки. Поиск работает по столбцу содержащему ячейку.
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 19.12.2012, 13:56   #3
Alesa90
Пользователь
 
Регистрация: 26.11.2009
Сообщений: 20
По умолчанию

Цитата:
Сообщение от DiemonStar Посмотреть сообщение
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not (Intersect(Target, [1:1]) Is Nothing) Then
    Set R = Columns(Target.Cells(1, 1).Column).Find(What:=Target.Cells(1, 1))
    If R Is Nothing Then
      MsgBox "Not found"
    Else
      R.Select
    End If
  End If
End Sub
Вот такая процедура вам поможет, если сканер работает в режиме HID-клавиатуры. Для работы нужно, чтобы была выделена соответствующая ячейка первой строки. Поиск работает по столбцу содержащему ячейку.
да действительно работает, а как не писать считываемый ш\х в первую ячейку?

Последний раз редактировалось Alesa90; 19.12.2012 в 14:01.
Alesa90 вне форума Ответить с цитированием
Старый 19.12.2012, 15:23   #4
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Тогда придётся использовать отдельную форму для ввода или InputBox, но запускать их придётся вручную.

Вариант вроде такого:
Код:
Sub Scan
    Set R = [A:A].Find(What:= InputBox("Введите штрих-код:", "Поиск"))
    If R Is Nothing Then
      MsgBox "Not found"
    Else
      R.Select
    End If
End Sub
работает для штрих-кодов в столбце А (можете сами изменить), но запускать макрос придётся вручную.
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 20.12.2012, 06:10   #5
Alesa90
Пользователь
 
Регистрация: 26.11.2009
Сообщений: 20
По умолчанию

Цитата:
Сообщение от DiemonStar Посмотреть сообщение
Тогда придётся использовать отдельную форму для ввода или InputBox, но запускать их придётся вручную.

Вариант вроде такого:
Код:
Sub Scan
    Set R = [A:A].Find(What:= InputBox("Введите штрих-код:", "Поиск"))
    If R Is Nothing Then
      MsgBox "Not found"
    Else
      R.Select
    End If
End Sub
работает для штрих-кодов в столбце А (можете сами изменить), но запускать макрос придётся вручную.
работает конечно классно только все же это решение немногим отличается от нажатие ctrl + f , попробую надстройки для поиска поискать, но все равно спасибо ))
Alesa90 вне форума Ответить с цитированием
Старый 20.12.2012, 08:22   #6
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
Сообщение от Alesa90 Посмотреть сообщение
работает конечно классно только все же это решение немногим отличается от нажатие ctrl + f , попробую надстройки для поиска поискать, но все равно спасибо ))
Простые пути тут вряд-ли будут: ввод с клавиатуры ничем не отличается от ввода с сканера, поэтому придётся работать непосредственно с драйвером устройства (а vba к этому не очень приспособлен).
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 20.12.2012, 08:41   #7
Alesa90
Пользователь
 
Регистрация: 26.11.2009
Сообщений: 20
По умолчанию

Цитата:
Сообщение от DiemonStar Посмотреть сообщение
Простые пути тут вряд-ли будут: ввод с клавиатуры ничем не отличается от ввода с сканера, поэтому придётся работать непосредственно с драйвером устройства (а vba к этому не очень приспособлен).
ну да ваш последний макрос навел меня вот натакие мысли:

Код:
Private Sub CommandButton1_Click()
 Cells.Find(Me.TextBox1, ActiveCell).Activate
End Sub
бокс и кнопку поместил на 1 закрепленную строку для удобства. С кнопкой коненчо все проще . Без кнопки хочется.
Alesa90 вне форума Ответить с цитированием
Старый 20.12.2012, 15:23   #8
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Так у текстбокса есть события - можно их использовать.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 20.12.2012, 15:26   #9
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
Сообщение от Alesa90 Посмотреть сообщение
ну да ваш последний макрос навел меня вот натакие мысли:

Код:
Private Sub CommandButton1_Click()
 Cells.Find(Me.TextBox1, ActiveCell).Activate
End Sub
бокс и кнопку поместил на 1 закрепленную строку для удобства. С кнопкой коненчо все проще . Без кнопки хочется.
и принципиально не отличается ничем от первого варианта с первой строкой) только там можно и без кнопки поиск делать...
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 21.12.2012, 07:39   #10
Alesa90
Пользователь
 
Регистрация: 26.11.2009
Сообщений: 20
По умолчанию

Цитата:
Сообщение от DiemonStar Посмотреть сообщение
и принципиально не отличается ничем от первого варианта с первой строкой) только там можно и без кнопки поиск делать...
все же отличается, ищет он по всему листу) и влюбом столбце, т.е. где бы мой фокус не находился при повторном нажатии на поиск. И кода всего 1 строчка

Последний раз редактировалось Alesa90; 21.12.2012 в 07:51.
Alesa90 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Считывальщик штрихкодов... sniip Общие вопросы Delphi 3 05.07.2012 21:20
Распознавание штрихкодов методом деформируемых шаблонов trime Помощь студентам 0 11.04.2012 16:28
Сканер faustpatron13 Мультимедиа в Delphi 0 05.08.2010 10:37
Сканер Sanek_ntsk Общие вопросы Delphi 3 18.12.2007 19:54