Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
В один столбец поместить несколько фильтров в зависимости от отмеченных чекбоксов
 
Вопрос решен - крос https://www.cyberforum.ru/vba/thread2640528.html
В один столбец поместить несколько фильтров в зависимости от отмеченных чекбоксов
 
Михаил Витальевич С., к сожалению не могу, даже после очистки всей конфи инфы, файл не проходит по размеру
надеюсь ссылка на я.диск сработает.
Изменено: noobie1 - 11.05.2020 20:31:53
В один столбец поместить несколько фильтров в зависимости от отмеченных чекбоксов
 
Добрый день! Подскажите пожалуйста, хочу в один столбец поместить несколько фильтров в зависимости от отмеченных чекбоксов. Пробовала несколькими способами. При первом способе при вызове формы и проставлении галочки на каком либо одном чекбоксе идет фильтр по одному (последнему) критерию.
(пример привела с частью чекбоксов, так как код уже стерла и нет смысла прописывать прям все):
Код
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, Добрый день, спасибо большое за помощь, но я уже разобралась сама.
Изменено: noobie1 - 06.05.2020 10:07:53
Скрытие строк в зависимости от содержания ячеек
 
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
Фильтр: исключить пустые значения и ячейки со значением "Нет результатов".
 
Mershik, спасибо Вам большое! Все работает!
Фильтр: исключить пустые значения и ячейки со значением "Нет результатов".
 
Добрый день, подскажите пожалуйста как установить фильтр на столбец № 72 на листе "База общая", который исключает пустые значения и ячейки со значением "Нет результатов". Фильтр срабатывает если OptionButton31 равен true.
Тот код который я написала, выполняет только первую часть задачи, т.е. исключает пустые значения.
Вот мой код :
Код
If OptionButton31.Value = True Then
Worksheets("База общая").Range("A1:FA3863").AutoFilter Field:=72, Criteria1:="<>"
End If
В списке combobox'a обрезаются строки по вертикали
 
В любом случае, всем спасибо за помощь, проблема решена!
В списке combobox'a обрезаются строки по вертикали
 
@vikttur, спасибо большое, проблема действительно была в символе "№".
Изменение шрифта не помогло.

Офис лицензионный, да и символ вроде стандартный(не всякие там стрелочки).
Windows 10, office 2016
В списке combobox'a обрезаются строки по вертикали
 
Добрый день!
Подскажите пожалуйста, почему данные выводятся таким образом? Пробовала расширить сам элемент combobox'a, остается прежним. Может можно как-то при помощи кода расширить ячейки выпадающего списка.
Изменено: noobie1 - 29.04.2020 22:54:42
Вывод значений в определенный диапазон
 
Всем спасибо, я разобралась
Копирование значения содержимого ячейки по клику по ней
 
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

И также хотелось сказать, что данный вопрос я задавала на другом форуме, где мне к сожалению не смогли помочь без документа
Изменено: noobie1 - 27.02.2020 09:49:09
Копирование значения содержимого ячейки по клику по ней
 
Mershik, очень Вам благодарна, но можете пожалуйста еще подсказать как проделать подобное на несколько значений?
Копирование значения содержимого ячейки по клику по ней
 
Mershik, спасибо большое Вам, все заработало, стоило пере открыть книгу!
Копирование значения содержимого ячейки по клику по ней
 
Mershik, извините, я не так Вас поняла. Я думала Вы про то, что слово выбранное, на нашем примере помидор, может содержаться в предложении.
Получается если не надо ограничить словосочетание из нескольких слов, код значительно изменится?
Копирование значения содержимого ячейки по клику по ней
 
Mershik, я попробовала пока ограничить только одно значение. Скажите пожалуйста, может ли не работать по причине того, что ввожу несколько слов, но с Вашим исходным кодом
Копирование значения содержимого ячейки по клику по ней
 
Mershik, попробовала вставить в свой проект, и ничего не сработало. По клику он все также копирует и вставляет значение ячейки.
Копирование значения содержимого ячейки по клику по ней
 
Mershik, да, суть Вы поняли. Получается таким образом я могу создать несколько ограничений? Например
Код
If Not Application.Intersect(myRng, Range(Target.Address)) Is Nothing Then
If Range(Target.Address).Value <> "помидоры" <> "огурцы <> "и другие" Then
Изменено: noobie1 - 26.02.2020 19:57:41
Копирование значения содержимого ячейки по клику по ней
 
В ячейке только слово.
Копирование значения содержимого ячейки по клику по ней
 
Добрый день. Есть код, который по нажатию на ячейку на листе 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
Подскажите пожалуйста, можно ли как-нибудь поставить ограничение, которое бы блокировало копирование значений в зависимости от того, что у меня написано.
Т.е., например у меня есть список: яблоки, грушки, помидоры, вишня. Мне нужно поставить ограничение на слово(комбинацию слов) помидоры.
Страницы: 1
Наверх