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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.07.2014, 10:12   #1
extozy
Новичок
Джуниор
 
Регистрация: 22.07.2014
Сообщений: 2
По умолчанию Фильтр даты в экзеле vba

Здравствуйте. У меня проблема, есть определенное задание, не получается сделать фильтр, сначала хотел сделать простой фильтр по выбору из списка, но нужно сделать фильтр по датам, которые вводятся в форму, т.е. вводишь с ... по ... дате и выбираешь из списка маршрут поезда, и на экран выводятся все поезда на этом маршруте в этом промежутке. Очень нужна ваша помощь, буду благодарен. Сейчас скину файлы
Вложения
Тип файла: rar BD.rar (41.6 Кб, 9 просмотров)
extozy вне форума Ответить с цитированием
Старый 22.07.2014, 10:35   #2
extozy
Новичок
Джуниор
 
Регистрация: 22.07.2014
Сообщений: 2
По умолчанию

Вот, пытался переделать этот код под себя, не получилось
Код:
Private Sub CommandButton1_Click()
Ëèñò1.LoadDataToTable
End Sub

Private Sub CommandButton2_Click()
 Dim DataBegin As Date
 Dim DataEnd As Date
 Dim GroupName As String
 Dim indexes() As Integer
 Dim Name As String
 Dim SamplingSize As Integer
 Dim CountString As Integer
 Dim P1, P2, P3 As String
 Dim row As Integer
 Dim i, j, k As Integer
 Dim price, sum, sum_all As Integer

 GroupName = ComboBoxGroups.SelText
 If IsDate(EditDataBegin.Value) = False Then
    MsgBox ("Íåâåðíî ââåäåíà ïåðâàÿ äàòà!")
    Exit Sub
 End If
 If IsDate(EditDataEnd.Value) = False Then
    MsgBox ("Íåâåðíîå ââåäåíà âòîðàÿ äàòà!")
    Exit Sub
 End If
 DataBegin = EditDataBegin.Value
 DataEnd = EditDataEnd.Value
 If DataEnd < DataBegin Then
    MsgBox ("Âòîðàÿ äàòà äîëæíà áûòü íå ìåíüøå ïåðâîé!")
    Exit Sub
 End If

 Sheets("Âñå äàííûå").Activate
 i = 5
 While Cells(i, 2) <> ""
    i = i + 1
 Wend
 CountString = i - 5
 ReDim indexes(CountString)

 Sheets("Îòîáðàííûå äàííûå").Activate
 Cells.Select
 Selection.Clear
 Cells(1, 1) = "ÔÈÎ âîñïèòàííèêà"
 Cells(1, 2) = "Ãîä è ìåñÿö"
 Cells(1, 3) = "Äàòà îïëàòû"
 Cells(1, 4) = "Îáùàÿ ñóììà"
 For i = 1 To 4
    Cells(1, i).Font.Bold = True
 Next i

 i = 5
 k = 0
 While i < 5 + CountString
    Sheets("Âñå äàííûå").Activate
    If Cells(i, 3) & " (" & Cells(i, 4) & ")" = GroupName And Cells(i, 6) >= DataBegin And Cells(i, 6) <= DataEnd Then
        indexes(k) = i
        price = Cells(i, 7)
        k = k + 1
    End If
    i = i + 1
 Wend
 SamplingSize = k

 k = 2
 sum_all = 0
 For i = 0 To (SamplingSize - 1)
    If indexes(i) <> -1 Then
        sum = 0
        Name = Cells(indexes(i), 2)
        For j = i To (SamplingSize - 1)
            If indexes(j) <> -1 Then
            If Cells(indexes(j), 2) = Name Then
                row = indexes(j)
                indexes(j) = -1
                P1 = Cells(row, 2)
                P2 = Cells(row, 5)
                P3 = Cells(row, 6)
                Sheets("Îòîáðàííûå äàííûå").Activate
                Cells(k, 1) = P1
                Cells(k, 2) = P2
                Cells(k, 3) = P3
                Cells(k, 3).HorizontalAlignment = xlRight
                Sheets("Âñå äàííûå").Activate
                k = k + 1
                sum = sum + price
            End If
            End If
        Next j
        Sheets("Îòîáðàííûå äàííûå").Activate
        Cells(k - 1, 4) = sum
        Sheets("Âñå äàííûå").Activate
        sum_all = sum_all + sum
    End If
 Next i
 Sheets("Îòîáðàííûå äàííûå").Activate
Cells(k, 4) = sum_all
 Cells(k, 4).Font.Bold = True

 'Sheets("Âñå äàííûå").Activate
 'data = Cells(7, 2)
 'Sheets("Îòîáðàííûå äàííûå").Activate
 'Cells(3, 3) = data
End Sub

Private Sub DTPicker1_CallbackKeyDown(ByVal KeyCode As Integer, ByVal Shift As Integer, ByVal CallbackField As String, CallbackDate As Date)

End Sub

Private Sub UserForm_Initialize()

 ' Ñîçäàåì è íàñòðàèâàåì îáúåêò Connection

 Dim cn As New ADODB.Connection

 cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FileDBPath

 cn.Open
 MsgBox "Ñîîáùåíèå 6", vbInformation

 'Ñîçäàåì è íàñòðàèâàåì îáúåêò Recordset

 Dim rs As New ADODB.Recordset

 rs.Open "SELECT [Ãðóïïû]![Íàçâàíèå ãðóïïû] & "" ("" & [Êðóæêè]![Íàçâàíèå êðóæêà] & "")"" AS Ãðóïïà FROM Êðóæêè INNER JOIN Ãðóïïû ON Êðóæêè.ÊÊ = Ãðóïïû.Êðóæîê;", cn, adOpenDynamic, adLockOptimistic
 MsgBox "Ñîîáùåíèå 7", vbInformation
 Dim groups As Variant
 groups = rs.GetRows()
 For i = 0 To UBound(groups, 2)
    ComboBoxGroups.AddItem (groups(0, i))
 Next i
End Sub
extozy вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Продвинутый фильтр с автопростановкой на VBA Lamo Microsoft Office Excel 15 26.07.2013 12:42
Присвоение даты в VBA Nonadoshi Помощь студентам 2 31.01.2013 21:52
VBA расширенный фильтр rjaba123 Помощь студентам 1 16.04.2011 00:02
Даты в VBA dimok5 Помощь студентам 6 01.02.2011 18:42
Расширенный фильтр (VBA) Flame811 Microsoft Office Excel 0 10.12.2009 15:46