Здравствуйте! Помогите решить проблему! Есть план отгрузок на дату, например на 28.12.12 колонки: время отгрузки, номер накладной, паллет отгружено план начинается с 1:00 ночи и заканчивается в 23:00 вечера получается что в нем работают три человека, одному достается кусок с 1:00 до 8:00, второму с 8:00 до 20:00 и третьему с 20:00 и до 23:00 Мне нужно как то настроить автоподпись того кто забивает данные, для каждого вводимого им значения. Подскажите варианты? Чтобы по автоподписи подсчитывать кто сколько сделал.
Цель: есть ячейка с фамилией бригадира. Вбил он данные о отгруженных паллетах, напротив ячейки появилась автоподпись с его фамилией. Пришёл на работу другой бригадир, поменял фамилию, вбил данные и автоподпись уже с его фамилией.
Решение:
Цитата
Select Case Target.Column Case 1: Cells(Target.Row, 2).Value = _ Worksheets(1).Range("D1" ;) .Value 'D1 содержит саму автоподпись Case Else: Exit Sub
'если нужно добавть текущее время к автоподписи
End Select If Not Intersect(Target, Range("a2:a5" ;) ) Is Nothing Then Columns("с:с" ;) .NumberFormat = "h:mm" Target.Offset(0, 3) = Time End If
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Time > #1:00:00 AM# And Time <= #8:00:00 AM# Then
Range("A1") = "1-ый"
ElseIf Time > #8:00:00 AM# And Time <= #8:00:00 PM# Then
Range("A1") = "2-ой"
ElseIf Time > #8:00:00 PM# And Time <= #11:00:00 PM# Then
Range("A1") = "3-ий"
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Column
Case 2: Cells(Target.Row, 1).Value = Date & " / " & Time & " / " & Environ("USERNAME")
Case Else: Exit Sub
End Select
End Sub
При изменении данных в втором столбце листа, в первый столбец рядом с измененной ячейкой пишется: 28.12.12 / 17:02:33 / имя пользователя
Современные языки программирования обязаны иметь встроенный метод ChuckNorris(), который возвращает нужные тебе данные из любого объекта, даже если их там нет...
Johny, не совсем так, люди работают по сменам и первому всегда достаются разные куски. Автоподпись должна быть в отдельном столбце напротив внесенных данных. Например четвертый столбик "атоподпись"
Можно сделать чтобы подпись зависела от Ячейки А2 в которой будет фамилия бригадира?
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("c3:c10")) Is Nothing Then With Target(1, 2) .Value = Time .EntireColumn.AutoFit End With End If End Sub
Зацепите на сочетание клавиш форму с требованием ввести имя или ник. Пользователь после окончания работы тыкает кнопки, появляется форма, следующий, который за комп садится, пишет свое имя. Имя запоминаете в переменную, а дальше предложенный макрос подойдет, только добавьте туда имя пользователя из формы вместо имени юзера и все )))
Современные языки программирования обязаны иметь встроенный метод ChuckNorris(), который возвращает нужные тебе данные из любого объекта, даже если их там нет...
MerZ@vcheG пишет: Зацепите на сочетание клавиш форму с требованием ввести имя или ник. Пользователь после окончания работы тыкает кнопки, появляется форма, следующий, который за комп садится, пишет свое имя. Имя запоминаете в переменную, а дальше предложенный макрос подойдет, только добавьте туда имя пользователя из формы вместо имени юзера и все )))
все гениальное просто)) допустим будет ячейка с фамилией, как сделать её переменной? пришел на работу вбил в ячейку фамилию и подпись после этого другая. я макросы не умею писать, только дописывать немного,
Современные языки программирования обязаны иметь встроенный метод ChuckNorris(), который возвращает нужные тебе данные из любого объекта, даже если их там нет...
Есть подводные камни: первый сменился, а второй не поменял фамилию... Вариант: в 01:00, в 08:00 и в 20:00 макрос выводит форму с ComboBox, где заступающая смена должна выбрать свою фамилию. Далее это значение и будет подставляться.
При открытии книги появляется форма с запросом на ввод фамилии. Форма не закрывается нажатием на красный крестик, только при нажатии на кнопку "за работу". С пустым полем фамилии тоже не закрывается (хотя можно обойти - ввести пробел)....
Фиксируется дата/время входа пользователя. Форма с запросом фамилии отображается три раза при наступлении 1, 8 и 20 часов соответственно, либо при нажатии кнопок ALT+SHIFT+END.
При закрытии книги, она автоматически сохраняется и если книга открыта только одна - закрывается EXCEL. Насколько это вам надо - я не знаю, но мне так удобно, вдруг и вам пригодиться.
Современные языки программирования обязаны иметь встроенный метод ChuckNorris(), который возвращает нужные тебе данные из любого объекта, даже если их там нет...
так неожиданно столько людей мне помогает! спасибо большое за Ваше время!! Автоподписи которые вы сделали не подойдут к сожалению. Я попробую еще раз обьяснить. План - файл excel, в нем работают много людей из разных отделов. Самые важные фигуры, заполняющие план - это бригадиры, остальные просто помогают, так скажем, вносят всевозможные данные, необходимые для работы. Автоподпись нужна только для Бригадиров. Бригадир вносит в план данные по каждому действию рабочих. Кто и сколько подготовил для загрузки пикинговых палет, кто и сколько подготовил стоковых, сколько перебирали, сколько опалечивали, сколько паллет установили двойками, сколько в итоге загрузили. Тоесть данных много! Одну машину могут готовить и загружать разные бригадиры. Я хотел для каждого столбика с данными сделать автоподпись что бы потом по этой подписи подсчитывать кто сколько сделал операций и каких. Я бы смог создать табличку: 4 фамилии, напротив каждой подсчитывается сумма по всем проделанным действиям за смену. Удобнее всего, было бы привязать автоподпись к ячейче, в которой они буду забивать свою фамилию в начале смены. Можно сделать все красивее и интереснее... но расчет на простоту
Полностью согласен с Михаилом! Приложите наконец свой файл, так как Вам надо, а то "это не так", "то не так"... Сделайте файл-пример. Укажите в нем, какие данные, где и когда должны быть. В первую очередь себе поможете и нас избавите от лишней работы.
Современные языки программирования обязаны иметь встроенный метод ChuckNorris(), который возвращает нужные тебе данные из любого объекта, даже если их там нет...
Алексей Скворцов, не могу понять чем Вам мой вариант не подошел... Там чуть-чуть надо было напильником обработать и все....
Вот держите Ваш большой пример (сюда выкладывать не стал, заберите с дропбокса): ПРИМЕР
P.S. В коде выделил отдельно блоки, которые туда добавил, думаю разберетесь...
Современные языки программирования обязаны иметь встроенный метод ChuckNorris(), который возвращает нужные тебе данные из любого объекта, даже если их там нет...
MerZ@vcheG пишет: Алексей Скворцов, не могу понять чем Вам мой вариант не подошел... Там чуть-чуть надо было напильником обработать и все....
спасибо большое, всё идеально! просто я не умею работать напильником вашим)) могу дописать макрос самым простым способом, записывать его, потом смотреть что получилось и добавлять в код.
Блок для авторизации я удалил. Остальное работает!!!!!
заметил мигание экрана, оно срабатывает при работе в любых ячейках, причём не постоянно а в 80%, это у меня комп или везде так будет?
Если код блока авторизации удалили - то сама форма authFORM тоже не нужна - можно удалить и вот этот mod_authFORM модуль тоже, он за появление формы отвечает.
Насчет моргания не знаю, у меня не моргает. У Вас в коде обновление экрана включается/отключается в 4 и предпоследней строке кода на листе. Возможно из-за этого...
Современные языки программирования обязаны иметь встроенный метод ChuckNorris(), который возвращает нужные тебе данные из любого объекта, даже если их там нет...
MerZ@vcheG пишет: можно удалить и вот этот mod_authFORM модуль тоже...
удалил
Цитата
MerZ@vcheG пишет: Насчет моргания не знаю, у меня не моргает. У Вас в коде обновление экрана включается/отключается в 4 и предпоследней строке кода на листе. Возможно из-за этого...
вижу, 4 и предпоследняя)) по идее обновление должно быть при выборе значения ячейки E12 и ... в общем как поступить? где оставить а где удалить?
з.ы. отключил 4 и последнюю значком ' всё равно мигает... иногда