Добрый день! Подскажите пожалуйста, хочу в один столбец поместить несколько фильтров в зависимости от отмеченных чекбоксов. Пробовала несколькими способами. При первом способе при вызове формы и проставлении галочки на каком либо одном чекбоксе идет фильтр по одному (последнему) критерию. (пример привела с частью чекбоксов, так как код уже стерла и нет смысла прописывать прям все):
Код
If CheckBox1.Value = True Then
Worksheets("База общая").Range("A1:FA3863").AutoFilter Field:=9, Criteria1:="КИБ"
ElseIf CheckBox2.Value = True Then
Worksheets("База общая").Range("A1:FA3863").AutoFilter Field:=9, Criteria1:="РБ"
ElseIf CheckBox3.Value = True Then
Worksheets("База общая").Range("A1:FA3863").AutoFilter Field:=9, Criteria1:="ПРПА"
ElseIf CheckBox4.Value = True Then
Worksheets("База общая").Range("A1:FA3863").AutoFilter Field:=9, Criteria1:="Сеть"
ElseIf CheckBox5.Value = True Then
Worksheets("База общая").Range("A1:FA3863").AutoFilter Field:=9, Criteria1:="Руководство"
End if
На просторах форума (конкретно здесь https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=53961) нашла похожую проблему, но не поняла какое итоговое рабочее решение. Не совсем то, так как мои чекбоксы для фильтра не помещены в отдельный фрейм. Попыталась преобразовать под себя, но тоже не вышло, выдает ошибку:
Код
With Me
For Each Control In .MultiPage2.Page2.Controls
If TypeOf Control Is MSForms.CheckBox And Control.Value = True Then: _
Worksheets("База общая").Range("A1:FA3863").AutoFilter Field:=9, Criteria1:=i
Next
End With
Не могу понять, как сделать так, чтобы я мог отметить несколько чекбоксов и фильтр происходил по разным критериям. Прошу помощи в решении этой задачи. Привожу пример формы, на форме есть Frame 3, на нем MultiPage2, и сами чекбоксы на Page2.
ocet p, Option button это элемент указанный на фото. Их всего 3: Работа с командой - TeamWork Опыт работы и саморазвитие - SelfDevelopment Все показатели - AllIndicators
Может выбираться только один из 3-х. соответственно, если выбран TeamWork, тогда макрос идет в ячейку А4, и перебирает содержимое ячейки. В данной ячейке может быть три разных слова - Вид1, Вид2, Вид3. В зависимости от выбранного "Вида", должны скрыться определенные строки. Так например, Если выбран option button Работа с командой (TeamWork) и содержимое ячейки A4 равно "Вид1", тогда макрос скрывает строки с 14 по 63.
Добрый день, подскажите пожалуйста, мне необходимо сделать следующий макрос: по условию, если один из option button =true, скрыть определенные строки в зависимости от содержимого ячеек A3-A5.
В зависимости от содержимого A5 должен работать option button SelfDevelopment. В зависимости от содержимого A4 должен работать option button TeamWork. В зависимости от содержимого A3 должен работать option button AllIndicators.
SelfDevelopment, AllIndicators, TeamWork - наименования option button. Вот мой код, у меня выполняется только первая часть:
Код
If SelfDevelopment.Value = True Then
ElseIf Worksheets("Профиль сотрудника").Range("A5") = "Вид1" Then
Rows("3:13").Hidden = True
End If
If AllIndicators.Value = True Then
ElseIf Worksheets("Профиль сотрудника").Range("A3") = "Вид1" Then
Rows("3:63").Hidden = False
ElseIf Worksheets("Профиль сотрудника").Range("A3") = "Вид2" Then
Rows("3:7").Hidden = True
ElseIf Worksheets("Профиль сотрудника").Range("A3") = "Вид3" Then
Rows("3:13").Hidden = True
End If
If TeamWork.Value = True Then
ElseIf Worksheets("Профиль сотрудника").Range("A4") = "Вид1" Then
Rows("14:63").Hidden = True
ElseIf Worksheets("Профиль сотрудника").Range("A4") = "Вид2" Then
Rows("3:7").Hidden = True
Rows("9:63").Hidden = True
ElseIf Worksheets("Профиль сотрудника").Range("A4") = "Вид3" Then
Rows("3:63").Hidden = True
MsgBox ("Не имеет показателей работы с командой") 'для ошибки
End If
Добрый день, подскажите пожалуйста как установить фильтр на столбец № 72 на листе "База общая", который исключает пустые значения и ячейки со значением "Нет результатов". Фильтр срабатывает если OptionButton31 равен true. Тот код который я написала, выполняет только первую часть задачи, т.е. исключает пустые значения. Вот мой код :
Код
If OptionButton31.Value = True Then
Worksheets("База общая").Range("A1:FA3863").AutoFilter Field:=72, Criteria1:="<>"
End If
Добрый день! Подскажите пожалуйста, почему данные выводятся таким образом? Пробовала расширить сам элемент combobox'a, остается прежним. Может можно как-то при помощи кода расширить ячейки выпадающего списка.
Mershik, а можете пожалуйста сказать, можно ли в разрезе данного кода вставить ограничение на список? Например, значения, на которые не реагирует клик прописаны в диапазоне A1:A111?
Сразу хочу сказать, что файл прикрепить нет возможности, так как он полностью состоит из конфи инфы и очень надеюсь что Вы меня поймете без него. Добрый день. Ситуация такая: необходимо выводить значения ячеек на лист с разных диапазонов с других листов: 1) берет уже сформированный список с тех листа(тех лист для нового профиля) - показатели работа с командой 2) ищет соответствия по заданному полю и выдает необходимые значения - бизнес-показатели
Код
Sub AllIndicators()
Range("H8:H388").ClearContents
Dim i As Range
Dim s1 As Integer
Dim s2 As Integer
s1 = 2
s2 = 8
With Sheets("тех лист для нового профиля").Range("B2:B50")
Sheets("профиль").Range("I8").Resize(.Rows.Count, .Columns.Count) = .Value 'тянет уже сформированный список с тех листа для нового профиля
End With
On Error GoTo errormsg
For Each i In Worksheets("Тех лист для бизнес-показателей").Range("A2:A79")
If Worksheets("профиль").Range("J4") = Worksheets("Тех лист для бизнес-показателей").Range("A" & s1) Then
Worksheets("профиль").Range("I" & s2) = Worksheets("Тех лист для бизнес-показателей").Range("B" & s1).Value 'ищет соответствие по полю J4 на листе профиль с A на листе Тех лист для бизнес-показателей, найдя выдает необходимое значение
s2 = s2 + 1
End If
s1 = s1 + 1
Next i
Exit Sub
errormsg:
MsgBox ("Не является руководителем")
End Sub
Проблема в том, что я не могу поменять местами порядок вывода значения, мне сначала необходимо выводить бизнес, а потом уже работу с командой. Подскажите пожалуйста как это сделать.
Пробовала просто менять местами, но тогда он просто либо не выводит бизнес, либо накладывает бизнес на работу с командой. Стоит отметить что количество бизнес-показателей динамично, и в зависимости от того, что будет в J4, он может вывести как 2 показателя, так и 22
И также хотелось сказать, что данный вопрос я задавала на другом форуме, где мне к сожалению не смогли помочь без документа
Mershik, извините, я не так Вас поняла. Я думала Вы про то, что слово выбранное, на нашем примере помидор, может содержаться в предложении. Получается если не надо ограничить словосочетание из нескольких слов, код значительно изменится?
Mershik, я попробовала пока ограничить только одно значение. Скажите пожалуйста, может ли не работать по причине того, что ввожу несколько слов, но с Вашим исходным кодом
Добрый день. Есть код, который по нажатию на ячейку на листе Excel копирует ее содержимое и вставляет в другую ячейку(H6):
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim myRng As Range
Set myRng = Range("A8:F124")
If Not Application.Intersect(myRng, Range(Target.Address)) Is Nothing Then
Range("H6") = Range(Target.Address).Value
End If
End Sub
Подскажите пожалуйста, можно ли как-нибудь поставить ограничение, которое бы блокировало копирование значений в зависимости от того, что у меня написано. Т.е., например у меня есть список: яблоки, грушки, помидоры, вишня. Мне нужно поставить ограничение на слово(комбинацию слов) помидоры.