Страницы: 1
RSS
Как найти ячейку, соответствующую Дню месяца
 
Здравствуйте.
Имеется Таблица.
В Ячейке F5 на листе "Исходные" расположена дата.
Как найти ячейку, соответствующую Дню месяца на листе Итог и сделать активным соответствующий столбец?
 
Цитата
Как найти ячейку, соответствующую Дню месяца на листе Итог
В модуль листа исходные
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("F5")) Is Nothing Then
        Application.EnableEvents = False
        Dim iColumn As Integer
        With Worksheets("Итог")
          iColumn = .Rows(2).Find(Day(Target), , xlValues, xlWhole).Column
          .Activate
          .Cells(2, iColumn).Select
        End With
    End If
    Application.EnableEvents = True
End Sub
 
Как-то так?
Скрытый текст
Кому решение нужно - тот пример и рисует.
 
Kuzmich. В модуль листа исходные вставил - макрос не срабатывает.
Пытливый. Все хорошо.
Всем спасибо за помощь! Удачи вам и здоровья!
 
Цитата
В модуль листа исходные вставил - макрос не срабатывает.
Измените дату в ячейке F5
 
Изменил дату в ячейке F5. Это ничего не дало.
 
Цитата
Изменил дату в ячейке F5
Какая дата при этом выделилась на листе Итог?
Если нужно выделять весь столбец, то добавьте соответствующую строку в коде.
 
Kuzmich, спасибо! Я искал выделенный столбец, на активную ячейку не смотрел.
Какую добавить строку в коде?

Пытливый. Прошу прощения, но я не указал еще одно условие. Поиск должен осуществляться именно во второй строке листа Итог.
Изменено: Сергей Эм - 14.10.2017 06:48:35
 
Цитата
Какую добавить строку в коде?
Замените строку
Код
.Cells(2, iColumn).Select
на
Код
.Columns(iColumn).Select
 
Kuzmich,  спасибо! Столбец выделен, но мне не надо, чтобы автоматом переходило на  лист Итог, т.к. надо ввести еще данные на листе Исходные.
 
Цитата
т.к. надо ввести еще данные на листе Исходные.
Так введите сначала данные, затем изменяйте дату
 
Kuzmich, логично. Благодарю.
 
Цитата
Сергей Эм написал:
Поиск должен осуществляться именно во второй строке листа Итог.
Тогда в модуль листа итог вставить слегка измененный макрос:
Код
Private Sub Worksheet_Activate()
Dim intI As Integer
intI = Day(Worksheets("исходные").[f5])
Columns(Range(Cells(2, 1), Cells(2, Cells(2, 1).End(xlToRight).Column)).Find(intI).Column).Select
End Sub
Кому решение нужно - тот пример и рисует.
 
Пытливый, большое спасибо. Сейчас то, что нужно.
Страницы: 1
Наверх