Страницы: 1 2 След.
RSS
Автоподпись того кто работает в файле, автоматически ставить подпись того бригадира, который сейчас работает.
 
Здравствуйте! Помогите решить проблему!
Есть план отгрузок на дату,
например на 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
Изменено: Алексей Скворцов - 13.03.2013 19:25:37
 
В модуль "ЭтаКнига":

Код
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
There is no knowledge that is not power
 
Было аналогичное недавно на форуме...

В модуль листа:

Код
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 в которой будет фамилия бригадира?
 
Цитата
Алексей Скворцов пишет:
...Можно сделать...
Заключение -  после вскрытия вашего файла с хочухой: есть такое - надо этакое... ;)
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Цитата
Алексей Скворцов пишет:
Можно сделать чтобы подпись зависела от Ячейки А2 в которой будет фамилия бригадира?

Не понял... Так нужна зависимость от времени или от ячейки A2? Вы уж определитесь, однако! :)
There is no knowledge that is not power
 
MerZ@vcheG, спасибо, классный макрос. Но тоже не подходит т.к. комп один, никогда не выключается, юзер всегда один
 
Можно использовать макрос времени

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 фамилии, напротив каждой подсчитывается сумма по всем проделанным действиям за смену.
Удобнее всего, было бы привязать автоподпись к ячейче, в которой они буду забивать свою фамилию в начале смены.
Можно сделать все красивее и интереснее... но расчет на простоту
Изменено: Алексей Скворцов - 29.12.2012 13:46:40
 
Алексей Скворцов, вы б приложили файл ексель с примером что есть, что нужно получить... о то уже начинается переливание из пустого в порожнее.
 
Полностью согласен с Михаилом!
Приложите наконец свой файл, так как Вам надо, а то "это не так", "то не так"...
Сделайте файл-пример. Укажите в нем, какие данные, где и когда должны быть.
В первую очередь себе поможете и нас избавите от лишней работы.
Современные языки программирования обязаны иметь встроенный метод ChuckNorris(),
который возвращает нужные тебе данные из любого объекта, даже если их там нет...
 
вот ссылка на файл https://docs.google.com/file/d/0B3MC5ojy3KzSQjBFbGxHRVhWNlk/edit
или эта http://rusfolder.com/34340574
Бригадир вносит данные в столбцы с АА по АР
столбик данных, автоподпись, столбик данных автоподпись и тд
если в AB14 внесены данные то в AC14 ставится авоподпись
в Ячейке AS11 фамилия бригадира
потом по автоподписям я считаю производительность
 
извините что сразу так не сделал, пытался упростить вопрос, но получилось неудачно
 
А сюда нельзя выложить? чуть уменьшив (что-то мне кажется, что 160 кБ - много лишней инфы) и, при необходимости, в архив...
 
Цитата
Михаил С. пишет:
А сюда нельзя выложить?
А надо ли - ведь, имхо, работать-то, понимай, придется по возможностям G_Docs - с его арсеналом?!.
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
вот упрощенный пример
 
Поздравляю Всех с новым годом!
помогите пожалуйста доделать мой макрос)
 
Всех с Новым Годом и Рождеством )))

Алексей Скворцов, не могу понять чем Вам мой вариант не подошел...
Там чуть-чуть надо было напильником обработать и все....

Вот держите Ваш большой пример (сюда выкладывать не стал, заберите с дропбокса): ПРИМЕР

P.S. В коде выделил отдельно блоки, которые туда добавил, думаю разберетесь...
Современные языки программирования обязаны иметь встроенный метод ChuckNorris(),
который возвращает нужные тебе данные из любого объекта, даже если их там нет...
 
Цитата
MerZ@vcheG пишет: Алексей Скворцов, не могу понять чем Вам мой вариант не подошел...
Там чуть-чуть надо было напильником обработать и все....
спасибо большое, всё идеально! просто я не умею работать напильником вашим))
могу дописать макрос самым простым способом, записывать его, потом смотреть что получилось и добавлять в код.


Блок для авторизации я удалил. Остальное работает!!!!!  :)

заметил мигание экрана, оно срабатывает при работе в любых ячейках, причём не постоянно а в 80%, это у меня комп или везде так будет?
 
Если код блока авторизации удалили - то сама форма authFORM тоже не нужна - можно удалить и вот этот mod_authFORM модуль тоже, он за появление формы отвечает.

Насчет моргания не знаю, у меня не моргает.
У Вас в коде обновление экрана включается/отключается в 4 и предпоследней строке кода на листе.
Возможно из-за этого...
Современные языки программирования обязаны иметь встроенный метод ChuckNorris(),
который возвращает нужные тебе данные из любого объекта, даже если их там нет...
 
Цитата
MerZ@vcheG пишет: можно удалить и вот этот mod_authFORM модуль тоже...
удалил

Цитата
MerZ@vcheG пишет: Насчет моргания не знаю, у меня не моргает.
У Вас в коде обновление экрана включается/отключается в 4 и предпоследней строке кода на листе.
Возможно из-за этого...
вижу, 4 и предпоследняя)) по идее обновление должно быть при выборе значения ячейки E12 и ...
в общем как поступить? где оставить а где удалить?

з.ы. отключил 4 и последнюю значком '
всё равно мигает... иногда
Изменено: Алексей Скворцов - 09.01.2013 19:22:00
Страницы: 1 2 След.
Читают тему
Наверх