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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2013, 13:21   #1
ac1-caesar
Форумчанин
 
Регистрация: 26.07.2013
Сообщений: 134
По умолчанию макрос поиска по дате

Друзья!!!

Подскажите пожалуйста как подкорректировать код для поиска по дате.
Необходимо в форме при вводе в окно textbox (formfield1) определенной даты, макрос нашел по этой дате в таблице строку и вывел значения этой строки 2-го и 3-го столбца в два остальных textbox.

Поиск происходит если в колонке - "date" даты прописывать в формате текст. Однако это не годится, ячейки должны быть в формате даты.
Так же производит поиск если дату вводить в таком формате 3/2/2013
Вложения
Тип файла: rar Data Table With Input Userform.rar (26.2 Кб, 9 просмотров)

Последний раз редактировалось ac1-caesar; 05.10.2013 в 13:48.
ac1-caesar вне форума Ответить с цитированием
Старый 05.10.2013, 13:51   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Посмотрите пример во вложении.
Вложения
Тип файла: rar Data Table With Input Userform_2.rar (24.0 Кб, 24 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 05.10.2013, 14:08   #3
ac1-caesar
Форумчанин
 
Регистрация: 26.07.2013
Сообщений: 134
По умолчанию

работает если только нажать кнопку "Add new records". А надо чтобы при введении даты без нажатия кнопок выводились значения.
ac1-caesar вне форума Ответить с цитированием
Старый 05.10.2013, 14:11   #4
ac1-caesar
Форумчанин
 
Регистрация: 26.07.2013
Сообщений: 134
По умолчанию

то есть, на сколько я понимаю в этой процедуре нужно что то изменить:

Код:
Private Sub formField1_Change()
    Dim CurDate As String, RezPoiska As Range
    Me.formField1.Value = Trim(Me.formField1.Value)
    CurDate = Me.formField1.Value
   
        With DataTable
            Set RezPoiska = .Columns(1).Find(What:=CurDate, LookIn:=xlFormulas, _
                LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
                MatchCase:=False, SearchFormat:=False)
            If Not RezPoiska Is Nothing Then
                FindedFlag = True
                FindedRow = RezPoiska.Row
                Me.formField2.Value = .Cells(FindedRow, 2)
                Me.formField3.Value = .Cells(FindedRow, 3)
            Else
                FindedFlag = False
            End If
        End With
    
    
  Me.cmdbtnSave.Enabled = Not FindedFlag

    
End Sub
ac1-caesar вне форума Ответить с цитированием
Старый 05.10.2013, 14:15   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

теперь понятно. Тогда можно так (см. вложение).
Вложения
Тип файла: rar Data Table With Input Userform_3.rar (23.2 Кб, 27 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 05.10.2013, 14:23   #6
ac1-caesar
Форумчанин
 
Регистрация: 26.07.2013
Сообщений: 134
По умолчанию

Спасибо, вот это то что надо.
Попутный вопрос, а можно ли здесь formField2 = x.Offset(, 1): formField3 = x.Offset(, 2), номер столбца указать не номером, а названием - "Task Code" и "Status"
Это на случай, если будут добавляться столбцы.
ac1-caesar вне форума Ответить с цитированием
Старый 05.10.2013, 14:34   #7
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Посмотрите вложение. Поиск заголовка столбца производится в 5-й строке. Если нужно, можете изменить диапазон поиска. Также, можно вставить проверку на существование такого заголовка.
Вложения
Тип файла: rar Data Table With Input Userform_4.rar (23.4 Кб, 37 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 05.10.2013, 14:38   #8
ac1-caesar
Форумчанин
 
Регистрация: 26.07.2013
Сообщений: 134
По умолчанию

Спасибо, очень информативно.
ac1-caesar вне форума Ответить с цитированием
Старый 08.12.2021, 20:22   #9
Ксения234
Новичок
Джуниор
 
Регистрация: 08.12.2021
Сообщений: 1
По умолчанию

Доброго веяера так же нужна Ваша помошь, мне вместо даты нужно найти данные по артикулу , данных должно быть 5, дата ,цена , компенсация
Ксения234 вне форума Ответить с цитированием
Старый 08.12.2021, 20:36   #10
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

без файла никто вам ничем не поможет
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос поиска tanyshenka09 Microsoft Office Excel 13 02.06.2014 18:35
Макрос поиска Pecnekm Microsoft Office Excel 19 05.07.2012 08:46
макрос для поиска позиций и вывода данных на лист поиска mr-111 Microsoft Office Excel 12 13.03.2012 15:03
Как привязать макрос к дате? АLексаNдр Microsoft Office Excel 3 12.08.2008 14:34
Синтаксис SQL-запроса для поиска по дате... Рустам БД в Delphi 13 06.04.2008 15:55