Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.09.2019, 10:04   #1
DMITRIY_78
Форумчанин
 
Регистрация: 11.12.2018
Сообщений: 202
По умолчанию Работа макроса на основании формы календаря

Ребята здравствуйте! помогите с таким вопросом я в нем очень слабоват!
есть макрос в книге который собирает строки по дате актуальной на сегодня, И в книге так же присутствует форма "календаря", И мне бы хотелось вызывать "календарь" и производить работу макроса на основании установленной даты в календаре. пример приложил. Заранее спасибо.





Ребята! есть сложность в моем вопросе или что то может не так пояснил? пишите , поправлюсь!
Вложения
Тип файла: rar ПРИМЕР.rar (159.9 Кб, 47 просмотров)
Что нас не убивает, то делает нас сильными!
Всё гениальное просто, всё простое гениально!

Последний раз редактировалось DMITRIY_78; 18.09.2019 в 09:53.
DMITRIY_78 вне форума Ответить с цитированием
Старый 13.11.2019, 11:09   #2
DMITRIY_78
Форумчанин
 
Регистрация: 11.12.2018
Сообщений: 202
По умолчанию

Ребята! есть сложность в моем вопросе или что то может не так пояснил? пишите , поправлюсь![/QUOTE]

ну или помогите допилить макрос фильтр на два столбца (пример приложил)
Вложения
Тип файла: rar ПРИМЕР(5).rar (54.9 Кб, 5 просмотров)
Что нас не убивает, то делает нас сильными!
Всё гениальное просто, всё простое гениально!
DMITRIY_78 вне форума Ответить с цитированием
Старый 13.11.2019, 11:18   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от DMITRIY_78 Посмотреть сообщение
или помогите допилить макрос фильтр на два столбца
что означает "допилить макрос на два столбца" ?
Кто-то должен догадаться, какие два столбца имеются в виду, что должен делать фильтр и т.п.?
Вопрос для телепатов, которые знают VBA?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.11.2019, 11:41   #4
DMITRIY_78
Форумчанин
 
Регистрация: 11.12.2018
Сообщений: 202
По умолчанию

прошу прощения! я почему то думал что из примера будет ясно и понятно, чайник одним словом, но поясню, фильтр в примере работает при установке даты из календаря только для одного столбца, А хотелось бы на два столбца, так как и в столбце "O" находится дата которая устанавливается и для столбца "N" , попробовал увеличить диапазон "N:O" не получается
Что нас не убивает, то делает нас сильными!
Всё гениальное просто, всё простое гениально!
DMITRIY_78 вне форума Ответить с цитированием
Старый 13.11.2019, 11:47   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от DMITRIY_78 Посмотреть сообщение
А хотелось бы на два столбца, так как и в столбце "O" находится дата которая устанавливается и для столбца "N"
Что это означает?
excel_3.png

выбрали в календаре дату 13.11.2019
что должно остаться в таблице? Какие строки?

выбрали в календаре дату 14.11.2019
что должно остаться в таблице? Какие строки?

выбрали в календаре дату 21.11.2019
что должно остаться в таблице? Какие строки?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.11.2019, 11:57   #6
DMITRIY_78
Форумчанин
 
Регистрация: 11.12.2018
Сообщений: 202
По умолчанию

столбец "N" - оплата по графику
столбец "O" - оплата по заявлению
1. если установить дату на сегодня 13.11.19 то фильтр должен сработать по тем кто
оплачивает по "графику" - столбец "N", и по тем кто оплачивает по "заявлению" - столбец "O",

Если по "заявлению"- столбец "O", ни кого нет и ячейка пустая то, указывается только дата по "графику" - столбец "N"
Что нас не убивает, то делает нас сильными!
Всё гениальное просто, всё простое гениально!
DMITRIY_78 вне форума Ответить с цитированием
Старый 13.11.2019, 12:04   #7
DMITRIY_78
Форумчанин
 
Регистрация: 11.12.2018
Сообщений: 202
По умолчанию

у вас на фото фильтр сброшен,
фото у меня, фильтр на 13.11.19
Изображения
Тип файла: jpg 001.jpg (62.3 Кб, 19 просмотров)
Что нас не убивает, то делает нас сильными!
Всё гениальное просто, всё простое гениально!

Последний раз редактировалось DMITRIY_78; 13.11.2019 в 12:09.
DMITRIY_78 вне форума Ответить с цитированием
Старый 13.11.2019, 13:33   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от DMITRIY_78 Посмотреть сообщение
у вас на фото фильтр сброшен,
неправда. у Вас на фото тоже фильтр сброшен.
Значок автофильтрации меняется, когда задан фильтр.

теперь по сути.
Вам нужно отображать строки где:
в столбце N значение = 13.11.2019 ИЛИ в столбце O значение = 13.11.2019

насколько я понимаю, в чистом виде эта задача через автофильтр не решается (нет таких возможностей у автофильтра)
я бы сделал так: выбранную для фильтрации дату сохранял в отдельной ячейке ДАТА ВЫБОРКИ (например, в U1)
добавил ещё один столбец к таблице (например, столбец S), в котором записал формулу
для строки 21:
Код:
=ИЛИ(N21=$U$1;O21=$U$1)
и потом фильтровал по этой строчке
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.11.2019, 13:47   #9
DMITRIY_78
Форумчанин
 
Регистрация: 11.12.2018
Сообщений: 202
По умолчанию

посмотрите в архиве как работает фильтр макрос "завтра" и "сегодня", нагляднее будет понятнее, только мне хотелось бы что бы фильтр работал на любую дату которая будет установлена через календарь.
Вложения
Тип файла: rar пример_6.rar (307.2 Кб, 8 просмотров)
Что нас не убивает, то делает нас сильными!
Всё гениальное просто, всё простое гениально!
DMITRIY_78 вне форума Ответить с цитированием
Старый 13.11.2019, 14:53   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

пример_7.rar

Код:
Sub НаЗаданнуюДату() 'макрос для работы фильтра на заданную ДАТУ
Dim m As Integer, FilterDate As Date

    anncalendar.Show
    If anncalendar.Value Then
    
        FilterDate = anncalendar.Value
    
        On Error GoTo m
    
        With Application
            .EnableEvents = 0: .ScreenUpdating = 0
            With ActiveSheet
                If .FilterMode Then .ShowAllData
                With .UsedRange
                    With Intersect(.Columns("N:O"), .Offset(1))
                        .Replace FilterDate, "=zz1", 2, , , , False, False
                        .Rows.Hidden = True
                    End With
                End With
            End With
            With [zz1].DirectDependents
                .Rows.Hidden = False
                .Formula = FilterDate
            End With
            .EnableEvents = 1: .ScreenUpdating = 1
        End With
   
    Else
        With ActiveSheet
            .Columns("N:N").AutoFilter Field:=1
            .Outline.ShowLevels RowLevels:=1
        End With
        Range("Q1").Select
    End If
Exit Sub
m: MsgBox ("Платежей по графику, На дату " & FilterDate & ", отсутствуют!"), vbInformation, "Ошибка формирования фильтра"
Call сброс
End Sub

только убейте меня веником, но я не понимаю, что там делается и как это вообще работает.
я просто скопировал код из макросов Завтра() / Сегодня() и вставил туда вызов календаря.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Условие на основании активной формы vba s.p.il Microsoft Office Excel 2 13.04.2019 19:42
Создание формы, отчёта, макроса sportonly Microsoft Office Access 4 04.08.2013 14:17
Запуск макроса из формы tgm Microsoft Office Excel 2 09.06.2011 13:47
ввод данных календаря из формы на лист в текстовом формате serikov Microsoft Office Excel 3 24.03.2011 17:20
подстановка в поле подчинненной формы календаря tavoz Microsoft Office Access 4 04.12.2009 11:04