|
Фильтрация в Vba
|
|||
---|---|---|---|
#18+
Возник вопрос.У меня есть ОТЧЕТ и ИСПОЛ_ФАЙЛ. У меня есть отфильтрованная таблица в ИСПОЛ_ФАЙЛ. Мне нужно итог (количество по столбцу)с этой таблицы вытащить в ОТЧЕТ. Потом внвь отфильтровать таблицу с ИСПОЛ_ФАЙЛ и слудующие итоги вновь в другую ячейку все того же ОТЧЕТА. Как это сделать. Большое спасибо за помощь.) не могу делать формулами, так как очень большой обем файлов, которые используються в отчете. Их 6 штук. И мне надо, что бы по очереди открывались файлы и сортировались и итоги вписывались в отчет.( фильтрация для Casco Sub Sort_Casco() ActiveSheet.ListObjects("Лист3").Range.AutoFilter Field:=5, Criteria1:="Casco" End Sub теперь нужна функция которая будет брать отсортированные данные итог по количеству в столбце 5 и итог по сумме в столбце 2 и заносить в другую книгу. Именно значения, а не формулу! Т.к. далее мне нужно сортировать по следующему критерию. фильтрация для Other Sub Sort_Other() ActiveSheet.ListObjects("Лист3").Range.AutoFilter Field:=5, Criteria1:="Other" End Sub Кто подскажет может это еще можно сделать в цикле? Прикрепляю файлы Книга 3 и Книга 4 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2011, 16:38 |
|
Фильтрация в Vba
|
|||
---|---|---|---|
#18+
VikVikVik, ИМХО использовать здесь фильтры это гемор. Проще вытянуть данные с помощью SQL-запроса: У меня Office 2003, так что вам придётся немного поправить под себя. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2011, 20:23 |
|
Фильтрация в Vba
|
|||
---|---|---|---|
#18+
Cursky, Спасибо большое. Только у меня возник еще один вопросик. Как включить еще два фильтра по Дата настання страхового випадку и Дата реєстрацiї страхового випадку в Книге 4. К примеру Дата настання страхового випадку>1/09/2009 и Дата реєстрацiї страхового випадку> 1/01/2010. Тогда по Сasco кол-во 2 и сумма 8393,35. Я просто вообще зеленка в SQL. Спасибо за подмогу. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2011, 11:12 |
|
Фильтрация в Vba
|
|||
---|---|---|---|
#18+
VikVikVik, Да еще вопросик. Количество посчитано, а вот как считать сумму Резерв RBNS на кiнець перiоду? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2011, 12:48 |
|
Фильтрация в Vba
|
|||
---|---|---|---|
#18+
VikVikVik, Помогите новичку пжл. Спасибо ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2011, 14:38 |
|
Фильтрация в Vba
|
|||
---|---|---|---|
#18+
Подскажите, что не правильно пишу? И можно ли так писать для добавления условий в запрос Sub test() Dim cnn As ADODB.Connection Dim rst As ADODB.Recordset Set cnn = New ADODB.Connection Set rst = New ADODB.Recordset Dim strSQL As String Dim strCriterion As String Dim strField As String Dim strRange As String Dim strPath As String Dim strOperator1 As String Dim strOperator2 As String Dim strOperator3 As String strOperator1 = "=" strOperator2 = ">" strOperator3 = ">" strPath = "c:\Gorokh\Report\Книга4.xls" Dim x As Integer strField1 = "segment вид UNIQA" strField2 = "Дата настання страхового випадку" strField3 = "Дата реєстрацiї страхового випадку" strCriterion1 = "Casco" strCriterion2 = 40179 strCriterion3 = 40179 strRange = "" cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & strPath & ";" & "Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""" strSQL = "SELECT Count([" & strField1 & "]) FROM [Лист3$A3:L1000] WHERE [" & strField1 & "]" & strOperator1 & "'" & strCriterion1 & "'" and [" & strField2 & "]" & strOperator2 & "'" & strCriterion2 & "'" and [" & strField3 & "]" & strOperator3 & "'" & strCriterion3 & "'" x = rst.Fields(0) Debug.Print x rst.Close cnn.Close Set rst = Nothing Set cnn = Nothing End Sub ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2011, 17:02 |
|
Фильтрация в Vba
|
|||
---|---|---|---|
#18+
VikVikVikчто не правильно пишу? а что неправильно выходит? какая ошибка? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2011, 17:04 |
|
Фильтрация в Vba
|
|||
---|---|---|---|
#18+
Shocker.Pro, Присылаю все скопированное, догадываюсь, что не правильно пишу ту часть где указываються критерии. С одним можно так, а с несколькими наверное не верно. Там где выделила синим выделяет крассным, когда пишу в коде Option Explicit Sub AddReferences() '--------------------------------------------------------------------------------------- '--------------------------------------------------------------------------------------- On Error Resume Next 'Name: ADODB 'Description: Microsoft ActiveX Data Objects 2.8 Library ThisWorkbook.VBProject.References.AddFromFile ("C:\Program Files\Common Files\System\ado\msado15.dll") ThisWorkbook.VBProject.References.AddFromGuid GUID:="{2A75196C-D9EB-4129-B803-931327F72D5C}", Major:=2, Minor:=8 End Sub Function GetData(strPath As String, strField1 As String, strOperator1 As String, strCriterion1 As String, strField2 As String, strOperator2 As String, strCriterion2 As String, strField3 As String, strOperator3 As String, strCriterion3 As String) As Integer Dim cnn As ADODB.Connection Dim rst As ADODB.Recordset Set cnn = New ADODB.Connection Set rst = New ADODB.Recordset Dim strSQL As String cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & strPath & ";" & "Extended Properties=""Excel 9.0;HDR=Yes;IMEX=1""" ' и это не работает strSQL = "SELECT Count([" & strField1 & "]) FROM [Лист3$A3:L1000] WHERE [" & strField1 & "]" & strOperator1 & "'" & strCriterion1 & "'" and [" & strField2 & "]" & strOperator2 & "'" & strCriterion2 & "'" and [" & strField3 & "]" & strOperator3 & "'" & strCriterion3 & "'" rst.Open strSQL, cnn GetData = rst.Fields(0) rst.Close cnn.Close Set rst = Nothing Set cnn = Nothing End Function Sub test() Dim cnn As ADODB.Connection Dim rst As ADODB.Recordset Set cnn = New ADODB.Connection Set rst = New ADODB.Recordset Dim strSQL As String Dim strCriterion As String Dim strField As String Dim strRange As String Dim strPath As String Dim strOperator1 As String Dim strOperator2 As String Dim strOperator3 As String strOperator1 = "=" strOperator2 = ">" strOperator3 = ">" strPath = "c:\Gorokh\Report\Книга4.xls" Dim x As Integer strField1 = "segment вид UNIQA" strField2 = "Дата настання страхового випадку" strField3 = "Дата реєстрацiї страхового випадку" strCriterion1 = "Casco" strCriterion2 = 40179 strCriterion3 = 40179 strRange = "" cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & strPath & ";" & "Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""" strSQL = "SELECT * table Count([" & strField1 & "]) FROM [Лист3$A3:L1000] WHERE [" & strField1 & "]" & strOperator1 & "'" & strCriterion1 & "'" and [" & strField2 & "]" & strOperator2 & "'" & strCriterion2 & "'" and [" & strField3 & "]" & strOperator3 & "'" & strCriterion3 & "'" ' как написать запрос для того что бы отбирало количество по segment вид UNIQA, а также по Дата настання страхового випадку>1/1/2010 и Дата реєстрацiї страхового випадку>1/1/2010 одновременно? rst.Open strSQL, cnn x = rst.Fields(0) Debug.Print x rst.Close cnn.Close Set rst = Nothing Set cnn = Nothing End Sub ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2011, 17:29 |
|
Фильтрация в Vba
|
|||
---|---|---|---|
#18+
VikVikVikТам где выделила синим выделяет крассным, когда пишу в коде красным выделяет ошибки синтаксиса. Подозреваю, что ты пишешь это в несколько строк так же, как и выкладываешь сюда. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2011, 17:38 |
|
Фильтрация в Vba
|
|||
---|---|---|---|
#18+
Подскажите все таки где синтаксическая ошибка. Где-то встроке ниже... И вообще скажите сам запрос верный для трех критериев? Буду очень и очень благодарна. strSQL = "SELECT Count([" & strField1 & "]) FROM [Лист3$A3:L1000] WHERE [" & strField1 & "]" & strOperator1 & "'" & strCriterion1 & "'" and [" & strField2 & "]" & strOperator2 & "'" & strCriterion2 & "'" and [" & strField3 & "]" & strOperator3 & "'" & strCriterion3 & "'" ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2011, 18:09 |
|
Фильтрация в Vba
|
|||
---|---|---|---|
#18+
VikVikVik, нет пишу в одну, но выдает синтаксическую ошибку, когда пишу несколько критериев. я не знаю точно правил записи в SQL, поэтому и спрашиваю ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2011, 18:11 |
|
Фильтрация в Vba
|
|||
---|---|---|---|
#18+
VikVikVikVikVikVik, нет пишу в одну, но выдает синтаксическую ошибку, когда пишу несколько критериев. я не знаю точно правил записи в SQL, поэтому и спрашиваю ты запуталась в кавычках. давай все-таки в одной ветке ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2011, 18:24 |
|
Фильтрация в Vba
|
|||
---|---|---|---|
#18+
У вас там были лишние кавычки перед and: strCriterion1 & "'" and [" Код: plaintext 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.
Debug.Print strSQL: Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2011, 20:22 |
|
Фильтрация в Vba
|
|||
---|---|---|---|
#18+
О, Спасибо Всем Работает!!! Только вот функция пользовательская в книге3 выдает ошибку #ЗНАЧ! =GetData("c:\Gorokh\Report\Книга4";"segment вид UNIQA";"=";A6;"Дата настання страхового випадку";">";40092;"Дата реєстрацiї страхового випадку";">";40179) Еще раз ОГРОМНОЕ СПАСИБО!!! Function GetData(strPath As String, strField1 As String, strOperator1 As String, strCriterion1 As String, strField2 As String, strOperator2 As String, strCriterion2 As String, strField3 As String, strOperator3 As String, strCriterion3 As String) As Integer Dim cnn As ADODB.Connection Dim rst As ADODB.Recordset Set cnn = New ADODB.Connection Set rst = New ADODB.Recordset Dim strSQL As String cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & strPath & ";" & "Extended Properties=""Excel 9.0;HDR=Yes;IMEX=1""" strSQL = "SELECT * from Count([" & strField1 & "]) FROM [Лист3$A3:L1000] WHERE [" & strField1 & "]" & strOperator1 & "'" & strCriterion1 & "'" And " [" & strField2 & "]" & strOperator2 & "'" & strCriterion2 & "'" And "[" & strField3 & "]" & strOperator3 & "'" & strCriterion3 & "'" rst.Open strSQL, cnn GetData = rst.Fields(0) rst.Close cnn.Close Set rst = Nothing Set cnn = Nothing End Function ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2011, 11:15 |
|
Фильтрация в Vba
|
|||
---|---|---|---|
#18+
Выполни эту же строку в Immediate-окне и посмотри, какую ошибку выдает. Только запятые вместо точек с запятой и вместо A6 - конкретное значение подставь Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2011, 11:39 |
|
Фильтрация в Vba
|
|||
---|---|---|---|
#18+
Выдает ошибку Type mismatch. Вообщем пишет ошибка 13. В Debuge выделяет строку strSQL = "SELECT Count([" & strField1 & "]) FROM [Лист3$A3:L1000] WHERE [" & strField1 & "]" & strOperator1 & "'" & strCriterion1 & "'" And " [" & strField2 & "]" & strOperator2 & "'" & strCriterion2 & "'" And "[" & strField3 & "]" & strOperator3 & "'" & strCriterion3 & "'" ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2011, 13:17 |
|
Фильтрация в Vba
|
|||
---|---|---|---|
#18+
VikVikVikВыдает ошибку Type mismatch. Вообщем пишет ошибка 13. В Debuge выделяет строку strSQL = "SELECT Count([" & strField1 & "]) FROM [Лист3$A3:L1000] WHERE [" & strField1 & "]" & strOperator1 & "'" & strCriterion1 & "'" And " [" & strField2 & "]" & strOperator2 & "'" & strCriterion2 & "'" And "[" & strField3 & "]" & strOperator3 & "'" & strCriterion3 & "'" я уже отвечал - в этой строке проблема с "and". Если этот And должен быть внутри sql-запроса - то он должен быть и внутри кавычек ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2011, 14:13 |
|
Фильтрация в Vba
|
|||
---|---|---|---|
#18+
Shocker.Pro, Cпасибо, виновата там подправила, но возникла другая ошибка. :( compile error expected: expression ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2011, 15:15 |
|
Фильтрация в Vba
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2011, 15:24 |
|
Фильтрация в Vba
|
|||
---|---|---|---|
#18+
Ну может всё-таки покажете наконец Debug.Print strSQL ?? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2011, 15:28 |
|
Фильтрация в Vba
|
|||
---|---|---|---|
#18+
VikVikVikShocker.Pro, Cпасибо, виновата там подправила, но возникла другая ошибка. :( compile error expected: expression Блин, ну сколько можно клещами вытягивать?????? Поправила - ну покажи, что напоправила!!!!!!!!!!!!!!!!!! Нам угадать надо что ли? GwaНу может всё-таки покажете наконец Debug.Print strSQL ?? да не может она показать, не проходит у нее компиляция этой строки, нее может она никак с кавычками разобраться ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2011, 15:32 |
|
Фильтрация в Vba
|
|||
---|---|---|---|
#18+
Спасибки. :) Уже как-то работает.))) Правда выводит нули в самой в функции в листе. Если нажимаю Enter, то вновь стоит #ЗНAЧ! и не пойму почему выводит нули, если все даты подправила и в коде и в самой функции на листе? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2011, 15:47 |
|
|
start [/forum/topic.php?fid=60&fpage=85&tid=2158056]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 134ms |
0 / 0 |