Страницы: 1
RSS
Поиск определенного значения в таблице при помощи VBA
 
Доброго всем времени суток! Помогите пожалуйста написать незамысловатый макрос.
Хотя он и может показаться весьма простым, просто я только начинаю с ними работать и для меня этот макрос еще неизведанное поле.
Буду сильно благодарен за помощь.

Описание

1. В таблицу "Задачи_tb" заносится задача (позже я напишу для это макрос, это поле мне изведанно =)) ) и назначается дата задачи
2. В столбце "H" находится список задач на сегодня.
3. Если в столбце "F" написать "Выполнено", то эта задача исчезнет из списка задач на сегодня


Задача

Слева от столбца "H" я хочу поставить кнопки напротив всех 10-ти строк, нажав на которую макрос будет искать нужную задачу в таблице "Задачи_tb" и писать "Выполнено" в столбце "F" соответствующего значения. Тем самым нажав на кнопку задача будет завершена и уйдет из списка задач на сегодня.
Помогите пожалуйста написать макрос или макросы.

Эти кнопки я помещу на другой лист для визуализации, но сам макрос и постановка задач будет проходить на этом листе

Прикрепляю файл
 
Jack London, не понял ничего про кнопки...но не лучше так отслеживаем изменения в ячейках столбца F - на изменение в том числе наличие условия "Выполнено" ...
и обновляем список в ячейках столбца H


Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("F2:F" & Cells(Rows.Count, 1).End(xlUp).Row), Target) Is Nothing Then 
    If Target.Cells.Count > 1 Then Exit Sub 
    Dim i As Integer
    Range("H2:H" & Cells(Rows.Count, .End(xlUp).Row).ClearContents
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    If Cells(1,  = Cells(i, 3) And Cells(i, 6) <> "Выполнено" Then
    ilastROW = Cells(Rows.Count, .End(xlUp).Row + 1
    Cells(ilastROW,  = Cells(i, 5)
    End If
Next i
End If
End Sub
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Mershik написал:
Jack London , не понял ничего про кнопки...но не лучше так отслеживаем изменения в ячейках столбца F - на изменение в том числе наличие условия "Выполнено" ...и обновляем список в ячейках столбца H
Надо чтоб надпись "Выполнено" появлялась сама там где надо при нажатии на кнопку, чтоб полностью автоматизировать ежедневник.
Напротив каждой задачи будет кнопка, нажав на которую в соответствующей строке появится надпись "Выполнено", далее сработает ваш макрос.

Кстати классный макрос, намного лучше горы формул, большое спасибо)
 
Jack London, вы уверены что это удобно на против каждой иметь кнопку? может какой-нибудь двойной клик по ячейке рядом проставлять?  
Не бойтесь совершенства. Вам его не достичь.
 
У меня данные из H переносятся в средство для рисования и отображаются в виде списка на другом листе, от туда и производится работа.
Тогда при двойном клике на саму задачу, но опять же, можно ли назначить это на средство для рисования?
Файл скинуть не могу, слишком тяжелый
Изменено: Jack London - 28.02.2020 11:19:27
 
Но двойным кликом было бы гораздо удобнее
 
Jack London,  я не знаю что такое средство рисования) кроме paint

но как умею сделал...при двойном нажатии кнопкой мыши на задачу рядом будет проставляться выполнено

Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim myRng As Range
Set myRng = Range("E2:E" & Cells(Rows.Count, 1).End(xlUp).Row)
   
If Not Application.Intersect(myRng, Range(Target.Address)) Is Nothing Then
Range(Target.Address).Offset(0, 1) = "Выполнено"
End If
End Sub
Изменено: Mershik - 28.02.2020 11:29:27
Не бойтесь совершенства. Вам его не достичь.
 
Jack London, плодить кнопки для каждой строки - плохая идея. Лучше использовать псевдо-чексбоксы.  
 
Цитата
Jack London написал:
Файл скинуть не могу, слишком тяжелый
А никому и не нужен Ваш рабочий файл. Создайте НЕБОЛЬШОЙ пример с аналогичной структурой данных.
 
Вот новый файл, получается  на листе "Главная панель" отображаются данные с листа "Список задач"
Лист "Список задач" просто формальность, как настройка, основной вид Ежедневника находится на листе "Главная панель"
Давайте попробуем сделать так, чтоб при двойном клике по Задаче на листе "Главная панель", на листе "Список задач" она была отмечена как "Выполнена"
Или может есть альтернатива?
Большое спасибо за помощь
Изменено: Jack London - 28.02.2020 11:50:55
 
На первом листе у Вас не данные, а рисунок. И второй момент: если двойным кликом посвили галку и макрос проставил на втором листе запись, то нужно ли удалять запись при снятии галки? Почему об этом умалчиваете?
 
Цитата
Юрий М написал:
На первом листе у Вас не данные, а рисунок. И второй момент: если двойным кликом посвили галку и макрос проставил на втором листе запись, то нужно ли удалять запись при снятии галки? Почему об этом умалчиваете?
Удалять запись не нужно, нужно лишь чтоб она исчезла из списка задач на первом листе, а на втором чтоб было отмечено что она выполнена
И еще заметил что макрос не запускается при добавлении новой записи, запускается только при записи "Выполнено"

Может потом пригодится кому-нибудь еще подобный ежедневник
 
Я бы вообще использовал на первом листе ЛистБокс, в котором помечал бы выполненные.
 
Цитата
Юрий М написал:
Я бы вообще использовал на первом листе ЛистБокс, в котором помечал бы выполненные.
А где его взять не подскажите?
 
Цитата
Юрий М написал:
Я бы вообще использовал на первом листе ЛистБокс, в котором помечал бы выполненные.
Там просто визуализация идет под общий дизайн листа, поэтому немного ограничено все (
 
Сейчас набросаю вариант.
 
См. вариант. Макрос начального наполнения ЛистБокс запускается при активации первого листа.
 
Всем большое спасибо за помощь. Я еще постараюсь покапаться в возможностях VBA чтоб получить функциональный и визуально подходящий ежедневник.
 
Странно, что мой вариант не устраивает. Всё, как хотели: перечень дел есть, удаление выбранной позиции  из списка .и  пометка о выполнении  тоже есть...
Страницы: 1
Наверх