Страницы: 1
RSS
Поиск данных в листе
 
Доброго времени суток всем.  
Помогите с вопросом: у меня есть файлик по учету выхода на работу сотрудников.  
На первом листе фиксируется имя сотрудника и дата прихода. Как с помощью vba сделать поиск на втором листе имени сотрудника и дату его выхода работы и в соответствующей ячейке чтобы ставилось значение "1". Я прикрепил пример, чтобы было проще понять.  
 
Заранее спасибо
 
Private Sub Worksheet_Change(ByVal Target As Range)  
   If Target.Value <> "" Then  
       Dim c As Range, r As Range  
       Set c = Sheets("ГРафик").Rows(2).Find(Cells(Target.Row, 2))  
       If Not c Is Nothing Then _  
          Set r = Sheets("ГРафик").Columns(1).Find(Cells(Target.Row, 1))  
       If Not r Is Nothing Then Sheets("ГРафик").Cells(r.Row, c.Column).Value = 1  
   End If  
End Sub
Я сам - дурнее всякого примера! ...
 
На первом листе "ВВОД" данные каждый раз ДОБАВЛЯЮТСЯ (снизу, в пустые строки),  
или ЗАМЕНЯЮТСЯ (Петя меняется на Васю, время ставится новое)?  
 
В первом случае вам поможет формула или сводная таблица, во втором же - придётся писать макрос.
 
{quote}{login=EducatedFool}{date=13.10.2011 11:08}{thema=}{post}На первом листе "ВВОД" данные каждый раз ДОБАВЛЯЮТСЯ (снизу, в пустые строки),  
или ЗАМЕНЯЮТСЯ (Петя меняется на Васю, время ставится новое)?  
 
В первом случае вам поможет формула или сводная таблица, во втором же - придётся писать макрос.{/post}{/quote}  
 
Нет, у ячейки с именем и ячейки с датой фиксированное положение. В оригинальном варианте файла, это ячейка "c8" а дата, ячейка "m7". Внизу имеется куча данных. Имя сотрудника просто заменяется из выпадающего списка.  
Из за постоянной путаницы появилась необходимость знать когда кто из сотрудников выходил, но вот как сделать незнаю, пробовал сделать запись макросом но чет не работает.
 
{quote}{login=KukLP}{date=13.10.2011 11:05}{thema=}{post}Private Sub Worksheet_Change(ByVal Target As Range)  
   If Target.Value <> "" Then  
       Dim c As Range, r As Range  
       Set c = Sheets("ГРафик").Rows(2).Find(Cells(Target.Row, 2))  
       If Not c Is Nothing Then _  
          Set r = Sheets("ГРафик").Columns(1).Find(Cells(Target.Row, 1))  
       If Not r Is Nothing Then Sheets("ГРафик").Cells(r.Row, c.Column).Value = 1  
   End If  
End Sub{/post}{/quote}  
 
Спасибо, это работает но только если значения имени в 1м столбце, а дата во 2м, а как быть если у меня имя в ячейке "c8" а дата, ячейка "m7"  
 
спасибо!!!!
Страницы: 1
Читают тему
Наверх
Loading...