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

Страницы: 1
VBA ВПР3 с несколькими условиями и фильтром уникальных значений
 
да, прошу прощения. технические недоразумения с сайтом. хотел вставить картинку в текст сообщения, а сайт выпал в ошибку и не сохранил ничего
VBA ВПР3 с несколькими условиями и фильтром уникальных значений
 
Цитата
Mershik написал:
да и не понятно что вы хотите? Вам  решение только макросом?
что я хочу вроде бы описал в первом сообщении.
да, решение только макросами, т.к. реализация данной задачи формулами массивов уже сделана, но настолько много промежуточных вычислений и листов, что при количестве исходных строк в несколько тысяч файл стал тормозить.
VBA ВПР3 с несколькими условиями и фильтром уникальных значений
 
доброго времени суток, формчане!

прошу помощи.

имеется таблица с пользовательской функцией ВПР3, введенной как формула массива на "листе 1"

необходимо средствами vba
1) оставить в результате только уникальные (без дубликатов) значения и без нулей
2) сделать возможность ввода нескольких значений для поиска, допустим в ячейку H2 ввести "102", и чтобы в результате вышли фамилии по всем номерам заказов (пример на "листе 1(2)")

заранее благодарю!
Изменено: angravi - 25.12.2018 13:46:27
VBA. Границы строк и столбцов
 
Добрый день всем!
Прошу помощи у тех, кто с макросами на ты, а не на вы...

Код:
Код
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub
If ActiveCell.Row = 1 Then Exit Sub
If ActiveCell.Row = 2 Then Exit Sub

Dim r As Long
Dim str As String

If Target.Column = 1 Then
    str = Target.Value
    Application.EnableEvents = False
    
    r = Cells(Rows.Count, 1).End(xlUp).Row
    Range("A3:A" & r).ClearContents
    
    Target.Value = str
End If

  Application.EnableEvents = True
  
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Target, Range("R3:R30")) Is Nothing Then
Range("D10").Select
End If

If Target.Count > 1 Then Exit Sub
If ActiveCell.Row = 1 Then Exit Sub
If ActiveCell.Row = 2 Then Exit Sub
    
Dim r As Long
    
Application.ScreenUpdating = False

    Cells.Font.Size = 11
    Cells.Font.Bold = False
    
    r = Cells(Rows.Count, 1).End(xlUp).Row
    Cells.Range("A3:S" & r).Interior.ColorIndex = 0
    
    Dim LastCol As Integer
    LastCol = Cells(3, Columns.Count).End(xlToRight).Column
            
    Target.EntireRow.Font.Size = 12
    Target.EntireRow.Font.Bold = True
    Target.EntireRow.Interior.ColorIndex = 46
    Cells(ActiveCell.Row, 3).Interior.ColorIndex = 6
    Cells(ActiveCell.Row, 1) = "*"
    
Application.ScreenUpdating = True
    
End Sub

Что требуется от кода:
1. При выборе любой ячейки в первом столбце проставляется символ "*", кроме 1 и 2 строк.
2. В первом столбце должен быть только один символ "*"
3. При выборе любой ячейки выделяется цветом и размером шрифта строка до колонки S.
4. Запретить пользователю выбор столбца R следующим образом: при выборе этого столбца выделение должно смещаться в столбец D.

Вопросы:

1. В этой части кода происходит очистка от предыдущего выделения
Код
    Cells.Font.Size = 11
    Cells.Font.Bold = False
Как ограничить Cells только до диапазона в котором введены данные? чтобы он не менял шрифт и жирность на всем листе, а нашел крайнюю правую нижнюю границу и только в этом диапазоне применил изменения

2. Как в этой части кода
Код
    Target.EntireRow.Font.Size = 12
    Target.EntireRow.Font.Bold = True
    Target.EntireRow.Interior.ColorIndex = 46
заменить entirerow таким образом, чтобы справа строка была ограничена столбцом S?

3. Как в этой части кода
Код
If Not Intersect(Target, Range("R3:R30")) Is Nothing Then
Range("D10").Select
End If
сменить диапазон R3:R30 на весь столбец? как изменить код, чтобы выделение переносилось в 4 столбец строки на которую нажал пользователь?

Буду рад любым предложениям по улучшению кода и ускорению его работы!

Заранее благодарю!
Отбор данных по пункту вредности
 
формулы знаю лучше, чем макросы. имел ввиду, что по макросам могу только готовый вставить в лист, создать макрос пока что не вариант...
Отбор данных по пункту вредности
 
Доброго времени суток!

Имеются исходные данные:
1) список ФИО с пунктами вредности (на основании которых лицо проходит врачей и обследования и сдает анализы);
2) список пунктов вредности с врачами, обследованиями и анализами по каждому пункту.
Врачи, обследования и анализы в пунктах вредности очень часто повторяются или добавляются новые.

Необходимо:
3) введя пункты вредности в одну ячейку (формат определен заранее, например, "4.1.1., 3.2.2., 5.2.1."), чтобы EXCEL выдал наименования врачей, обследований и анализов в единственном числе (уникальные и без повторений). См. приложенный файл.

Желательно решение формулами. В макросах не бум-бум.
Заранее благодарю за подсказки!
Страницы: 1
Наверх