Здравствуйте. Спасибо автору за пример. В файле не работает фильтр при выполнении макроса ЭтаКнига.Одновременный_фильтр_на_нескольких_листах_книги "Ctrl+q", дело в формате видимо, но не могу справиться. В какой формат привести стобец "ИНН" чтобы макрос работал корректно. Заранее благодарен.
Здравствуйте. Спасибо автору за пример. В файле не работает фильтр при выполнении макроса ЭтаКнига.Одновременный_фильтр_на_нескольких_листах_книги "Ctrl+q", дело в формате видимо, но не могу справиться. В какой формат привести стобец "ИНН" чтобы макрос работал корректно. Заранее благодарен.artika2000
Если Ваш вопрос именно про формат, то если все ИНН будут в текстовом формате, то Ваш макрос должен заработать. Причем не просто Текстовый формат, и именно чтобы они были текстом, как А7 на Лист1
Если Ваш вопрос именно про формат, то если все ИНН будут в текстовом формате, то Ваш макрос должен заработать. Причем не просто Текстовый формат, и именно чтобы они были текстом, как А7 на Лист1_Boroda_
_Boroda_, Добрый вечер, извините меня, я видимо в самых азах 0. Два дня пытаюсь формат ячеек в столбце ИНН переделать в текстовый, но никак не получается. если только в каждой ячейке долбить "ENTER". "формат ячеек"- мне не помогает, в видимости моей болезни. Прошу объяснить и помочь, не ругайтесь
_Boroda_, Добрый вечер, извините меня, я видимо в самых азах 0. Два дня пытаюсь формат ячеек в столбце ИНН переделать в текстовый, но никак не получается. если только в каждой ячейке долбить "ENTER". "формат ячеек"- мне не помогает, в видимости моей болезни. Прошу объяснить и помочь, не ругайтесьartika2000
_Boroda_, Спасибо Вам, за Ваш труд. Попробовал- не получилось у меня в моменте ничего. Спасибо, я уверен что Вы правы, попробую утром. С уважением, Артем
_Boroda_, Спасибо Вам, за Ваш труд. Попробовал- не получилось у меня в моменте ничего. Спасибо, я уверен что Вы правы, попробую утром. С уважением, Артемartika2000
Я там в пред. сообщении файлик положил, посмотрите
А можно и не делать ничего Немного добавил в Ваш макрос, теперь фильтрует и так В макросе добавки обозначил вот так "'============" И комментарии туда написал
В двух словах - сначала делаем все значения текстом, ставим фильтр "содержит" (в тексте это нормально работает), а затем делаем все значения снова числами. А фильтр-то уже сделан и он никуда не денется уже ======= Добавлено Все это ночной бред. Так не работает
Я там в пред. сообщении файлик положил, посмотрите
А можно и не делать ничего Немного добавил в Ваш макрос, теперь фильтрует и так В макросе добавки обозначил вот так "'============" И комментарии туда написал
В двух словах - сначала делаем все значения текстом, ставим фильтр "содержит" (в тексте это нормально работает), а затем делаем все значения снова числами. А фильтр-то уже сделан и он никуда не денется уже ======= Добавлено Все это ночной бред. Так не работает_Boroda_
сначала делаем все значения текстом, ставим фильтр "содержит" (в тексте это нормально работает), а затем делаем все значения снова числами. А фильтр-то уже сделан и он никуда не денется уже
прям. "старик Хоттабыч" - волосок из бороды, дунул >плюнул> пошептал, и "ок".
сначала делаем все значения текстом, ставим фильтр "содержит" (в тексте это нормально работает), а затем делаем все значения снова числами. А фильтр-то уже сделан и он никуда не денется уже
прям. "старик Хоттабыч" - волосок из бороды, дунул >плюнул> пошептал, и "ок".al-Ex
Сообщение отредактировал al-Ex - Пятница, 21.07.2017, 02:14
_Boroda_, Доброе утро. Спасибо за файл, но не рабтает у меня корректно.
После применения фильтра при поиске любого ИНН, содержащегося в таблице, макрос изменяет превоначальный ИНН на ИНН, указанный в ячейке A2, соответствующей каждому листу, это категорически не приветствуется :-)
Будьте добры, помогите подправить, что бы искомое значение не менялось при выполнении макроса С уважением, Артем
_Boroda_, Доброе утро. Спасибо за файл, но не рабтает у меня корректно.
После применения фильтра при поиске любого ИНН, содержащегося в таблице, макрос изменяет превоначальный ИНН на ИНН, указанный в ячейке A2, соответствующей каждому листу, это категорически не приветствуется :-)
Будьте добры, помогите подправить, что бы искомое значение не менялось при выполнении макроса С уважением, Артемartika2000
Выполните это один раз в своем первоначальном файле: [vba]
Код
Sub Одновременный_фильтр_на_нескольких_листах_книги() Dim sh As Worksheet, r As Range, j& For Each sh In ThisWorkbook.Worksheets If sh.Visible <> xlSheetHidden Then
For j = 1 To 10 If sh.Cells(1, j) = "ИНН" Then With Intersect(sh.UsedRange, sh.Columns(j)) .TextToColumns Destination:=.Range("A1"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _ :=Array(1, 2), TrailingMinusNumbers:=True End With Exit For End If Next End If Next End Sub
[/vba]
Выполните это один раз в своем первоначальном файле: [vba]
Код
Sub Одновременный_фильтр_на_нескольких_листах_книги() Dim sh As Worksheet, r As Range, j& For Each sh In ThisWorkbook.Worksheets If sh.Visible <> xlSheetHidden Then
For j = 1 To 10 If sh.Cells(1, j) = "ИНН" Then With Intersect(sh.UsedRange, sh.Columns(j)) .TextToColumns Destination:=.Range("A1"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _ :=Array(1, 2), TrailingMinusNumbers:=True End With Exit For End If Next End If Next End Sub
И кстати, исправьте в своем макросе этот блок так: [vba]
Код
If Sheets(i).Cells(1, j) = "ИНН" Then 'если существует стобец "ИНН", то задаем фильтрацию по значению переменной FILTRSTRING Sheets(i).Cells(1, j).AutoFilter j, "=*" & FILTRSTRING & "*" Exit For End If
[/vba] И эту строку исправьте так: [vba]
Код
If Sheets(i).Visible = -1 Then
[/vba]
И кстати, исправьте в своем макросе этот блок так: [vba]
Код
If Sheets(i).Cells(1, j) = "ИНН" Then 'если существует стобец "ИНН", то задаем фильтрацию по значению переменной FILTRSTRING Sheets(i).Cells(1, j).AutoFilter j, "=*" & FILTRSTRING & "*" Exit For End If
Макрос синхронной работы фильтров выглядит так. Делал для развлечения с полгода назад, немного не доделал, и бросил. Но недоделанная часть касается тех параметров, о существовании которых вы, вероятно, и не подозреваете.
Хотел код приложить, да в крынку не лезет
Макрос синхронной работы фильтров выглядит так. Делал для развлечения с полгода назад, немного не доделал, и бросил. Но недоделанная часть касается тех параметров, о существовании которых вы, вероятно, и не подозреваете.
KuklP, Здравствуйте. Я прошу прощения, я выполнил Ваш код, но в результате у меня все равно идет подмена значений в ячейке. Не достиг пока результата. А так же, если не трудно, объясните, почему для корректной работы макроса нужно выполнять Ваш код именно один раз, именно в первоначальном (первосозданном, как я понимаю,) файле. Я извините, не пойму, почему его надо выполнить именно один раз, В хорошем смысле голова болит от непонимания того, что Ваш код делает, толи сбрасывает какие то настройки первоначальные единыжды, толи не могу вот понять. Но выполнил его, а ячейки после поиска подменяются все равно пока
Спасибо Вам
KuklP, Здравствуйте. Я прошу прощения, я выполнил Ваш код, но в результате у меня все равно идет подмена значений в ячейке. Не достиг пока результата. А так же, если не трудно, объясните, почему для корректной работы макроса нужно выполнять Ваш код именно один раз, именно в первоначальном (первосозданном, как я понимаю,) файле. Я извините, не пойму, почему его надо выполнить именно один раз, В хорошем смысле голова болит от непонимания того, что Ваш код делает, толи сбрасывает какие то настройки первоначальные единыжды, толи не могу вот понять. Но выполнил его, а ячейки после поиска подменяются все равно пока
О чем это Вы? Ни мой, ни Ваш старый код никаких значений не меняет. Вернее мой код превращает числа в текст, поэтому его достаточно выполнить один раз. Вот Ваш файл. Мой макрос уже выполнен. Стоит фильтр по "66". Уберите фильтр - все значения на месте.
О чем это Вы? Ни мой, ни Ваш старый код никаких значений не меняет. Вернее мой код превращает числа в текст, поэтому его достаточно выполнить один раз. Вот Ваш файл. Мой макрос уже выполнен. Стоит фильтр по "66". Уберите фильтр - все значения на месте.KuklP
KuklP, Спасибо. Вы вернули файл, с ним вообще не смог отработать. При первой попытке снять фильтр "CTrl+w" в Вашем файле выскакивает Compile Error^Variable not defined, толи столбцы поменяны, не понимаю....
KuklP, Спасибо. Вы вернули файл, с ним вообще не смог отработать. При первой попытке снять фильтр "CTrl+w" в Вашем файле выскакивает Compile Error^Variable not defined, толи столбцы поменяны, не понимаю....artika2000
И столбцы и переменные не объявлены. Руками никак нельзя было снять? Вопрос-то был не о снятии. Замените свой макрос: [vba]
Код
Sub Снятие_одновременной_фильрации() ' ' Снятие_одновременной_фильрации Макрос ' ' Сочетание клавиш: Ctrl+w ' 'для снятие фильтрации на всех листах книги 'начало нужного кода (снятие фильтров) Dim i&, J& Dim nam As Integer nam = Excel.ActiveSheet.Index Application.ScreenUpdating = False For i = 1 To Excel.Sheets.Count If Excel.Sheets.Item(i).Visible <> xlSheetHidden Then Excel.Sheets.Item(i).Select For J = 1 To 10 If Excel.Sheets.Item(i).Cells(1, J) = "ИНН" Then Excel.Sheets.Item(i).Cells(1, J).Select Excel.Sheets.Item(i).Cells(1, J).AutoFilter Field:=J Selection.AutoFilter End If Next J End If Next i Excel.Sheets.Item(nam).Select Application.ScreenUpdating = True 'конец кода End Sub
[/vba]
И столбцы и переменные не объявлены. Руками никак нельзя было снять? Вопрос-то был не о снятии. Замените свой макрос: [vba]
Код
Sub Снятие_одновременной_фильрации() ' ' Снятие_одновременной_фильрации Макрос ' ' Сочетание клавиш: Ctrl+w ' 'для снятие фильтрации на всех листах книги 'начало нужного кода (снятие фильтров) Dim i&, J& Dim nam As Integer nam = Excel.ActiveSheet.Index Application.ScreenUpdating = False For i = 1 To Excel.Sheets.Count If Excel.Sheets.Item(i).Visible <> xlSheetHidden Then Excel.Sheets.Item(i).Select For J = 1 To 10 If Excel.Sheets.Item(i).Cells(1, J) = "ИНН" Then Excel.Sheets.Item(i).Cells(1, J).Select Excel.Sheets.Item(i).Cells(1, J).AutoFilter Field:=J Selection.AutoFilter End If Next J End If Next i Excel.Sheets.Item(nam).Select Application.ScreenUpdating = True 'конец кода End Sub
Sub мяу() Dim sh As Worksheet, ar, arkey, a Dim i&, j& a = Array(48953, 320) Set sh = Sheets(1) If sh.AutoFilterMode Then With sh.AutoFilter ar = .Range.Columns(1).Value With CreateObject("Scripting.Dictionary") For i = LBound(ar) To UBound(ar) For j = LBound(a) To UBound(a) If InStr(CStr(ar(i, 1)), CStr(a(j))) Then .Item(CStr(ar(i, 1))) = 1 Next Next arkey = .keys End With .Range.AutoFilter Field:=1, Criteria1:=arkey, Operator:=xlFilterValues End With End If End Sub
[/vba]
Числовой фильтр по условию "содержит" [vba]
Код
Sub мяу() Dim sh As Worksheet, ar, arkey, a Dim i&, j& a = Array(48953, 320) Set sh = Sheets(1) If sh.AutoFilterMode Then With sh.AutoFilter ar = .Range.Columns(1).Value With CreateObject("Scripting.Dictionary") For i = LBound(ar) To UBound(ar) For j = LBound(a) To UBound(a) If InStr(CStr(ar(i, 1)), CStr(a(j))) Then .Item(CStr(ar(i, 1))) = 1 Next Next arkey = .keys End With .Range.AutoFilter Field:=1, Criteria1:=arkey, Operator:=xlFilterValues End With End If End Sub
KuklP, , спасибо. Но, будьте добры, объясните , пожалуйста. В Вашем файле возвратном: (я по шагам.) Ctrl+q . Ввел часть любого ИНН , 100% имеюсемся в ячейке , Enter Вижу строку, в которой имелся этот ИНН, а САМ ИНН другой. снимаю ctrl+w. нет больше искомого ранее инн на листе. У Вас , прошу прощения, не так?
KuklP, , спасибо. Но, будьте добры, объясните , пожалуйста. В Вашем файле возвратном: (я по шагам.) Ctrl+q . Ввел часть любого ИНН , 100% имеюсемся в ячейке , Enter Вижу строку, в которой имелся этот ИНН, а САМ ИНН другой. снимаю ctrl+w. нет больше искомого ранее инн на листе. У Вас , прошу прощения, не так?artika2000
artika2000, У Вас явно что-то с файлом. Вы же, надеюсь, не думаете, что мы кладем свои решения, их не проверив у себя? Другими словами - у троих человек все работает, а у Вас ... Поэтому положите сюда свой файл, причем именно тот, в котором происходит замена. Возможно, у Вас там объединенные ячейки или еще что-нибудь. Если там конф. инфориация, то уберите ее или замените. Если файл не влезает по размеру - удалите часть строк снизу. Но обязательно перед тем, как класть файл, убедитесь, что именно в том файле, который Вы сюда кладете, происходит замена всех ИНН на первое
artika2000, У Вас явно что-то с файлом. Вы же, надеюсь, не думаете, что мы кладем свои решения, их не проверив у себя? Другими словами - у троих человек все работает, а у Вас ... Поэтому положите сюда свой файл, причем именно тот, в котором происходит замена. Возможно, у Вас там объединенные ячейки или еще что-нибудь. Если там конф. инфориация, то уберите ее или замените. Если файл не влезает по размеру - удалите часть строк снизу. Но обязательно перед тем, как класть файл, убедитесь, что именно в том файле, который Вы сюда кладете, происходит замена всех ИНН на первое_Boroda_
RAN, спасибо и Вам за внимание к вопросу. Но именно и в Вашем файле, попробуйте два раза найти один и тот же ИНН.... У меня не получается.... После снятия фильтра Идет подзамена искомого значения. Или это может у меня что?
RAN, спасибо и Вам за внимание к вопросу. Но именно и в Вашем файле, попробуйте два раза найти один и тот же ИНН.... У меня не получается.... После снятия фильтра Идет подзамена искомого значения. Или это может у меня что?artika2000
_Boroda_, в том то и дело, я уже свои файлы вообще в сторону отложил, мне бы сначала разобраться чтоб Ваши у меня работали нормально. В том то и дело, у меня к Вам никаких претензий, я в себе начал сомневаться. Вот что плохо
_Boroda_, в том то и дело, я уже свои файлы вообще в сторону отложил, мне бы сначала разобраться чтоб Ваши у меня работали нормально. В том то и дело, у меня к Вам никаких претензий, я в себе начал сомневаться. Вот что плохоartika2000