Страницы: 1
RSS
выпадающий список по условию, выпадающий список
 
Добрый день!
Есть проблема и вопросы.в темах форума не нашел решения  данных пробели. Буду очень признателен, если поможете решить проблему,так как сам особо с формулами не умею работать.
Есть база сотрудников из которой потом делаются приказы методом слияния в Word. Как правило базу заполняют все, кому не лень, и уже приносят мне готовую.
В массиве C3:N33 стоит проверка данных по фамилиям внизу столбца.
В строке C1:N1 номера постов.
массив c33:n33 заполняют выбором.

Вопросы следующие:
1. Как сделать выпадающий список на каждый столбец по данным внизу (допущенным на соответствующий пост) и его «растянуть» вправо?
2. Как защитить массив C3:N33 от изменения в нем форматирования, и запретить копировать и вставлять в него другие данные? Но если применить защиту листа с этими ячейками, то выборка «проверка данных» не будет работать.
3. Один человек не может заступать на три поста. Только на два и не более. Причем если заступает на совмещенный пост (например, на пост №1), то он может заступить только на совмещённый по условию (пост №2), и ни на какие больше. Как реализовать сравнение в строке и запрет на выбор при наличии условия? Или при выборе на другой пост (несовмещенный) не давалось разрешения на ввод его на другие какие либо посты?
4. Сотрудник, заступающий на пост с режимом «круглосуточно» на следующие сутки не может заступать на другой какой-либо пост с режимами дежурства «круглосуточно» или «12 часов».

заранее спасибо!
Изменено: smash312 - 25.05.2016 16:02:37
 
Если я правильно понял,
1 - это убрать "Абсолютность в "Проверке данных" и протянуть.
2- убрать защиту с ячеек и защить лист, добавив защиту на форматирование, но копировать в ячейку и протягивать её при этом можно.
Все остальное придется макросом делать и чтобы срабатывало нужно, чтобы у "пользователя" были включены макросы. На форме находил такой код.
Код
' Запрет вставки из буфера обмена после копирования на заданном листе (Sheet1)
Dim MyDataObject As New DataObject
Private Sub EmptyClipboard()  ' Требуется ссылка: VBE - Tools - References - Microsoft Forms 2.0 Object library
  ' Если её нет, то добавьте и удалите UserForm -ссылка установится автоматически
  With MyDataObject
    .SetText ""
    .PutInClipboard
    .Clear
  End WithEnd Sub' Активация книги на листе Sheet1 (переход с другой книги) - запрет вставки из буфера обмена.
' Если книга активируется из другого приложения (Word), то в активную ячейку можно скопировать то, что в буфере.
' Но при перемещении на любую другую ячейку буфер очищается
Private Sub Workbook_Activate()
  If ActiveSheet Is Лист1 Then EmptyClipboard
End Sub' Активация Sheet1 в пределах книги - запрет вставки из буфера обмена
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
  If Sh Is Лист1 Then EmptyClipboard
End Sub' Перемещения в Sheet1 - запрет вставки из буфера обмена
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
  If Sh Is Лист1 Then EmptyClipboard
End Sub

Вставлять в "Книгу".
Изменено: Юрий - 25.05.2016 16:18:10
 
Про абсолютность понял. Спасибо.
Но еще суть такая,что на первый пост может быть допущено 15 человек , а на второй пять.... Таким образом в выпадающем списке будут пустые строки.
 
Чуть поправлю себя.
Если в строке c3:n3 есть выбранное значение с3, то для всей строки оно является уникальным и не может повторится для выбора в этой строке, за исключением совмещенного поста номер два ячейки d3.
Значение d3 уникально для всей строки и не должно нигде повторяться для выбора кроме совмещенного поста номер олин ячейки c3.
Значение ячейки е3 уникально и единственное для всей строки и не должно нигде в строке повторяться.
Как это прописать формулой не приложу ума.
Изменено: smash312 - 25.05.2016 19:00:09
 
Я так понимаю, Вам нужны динамические списки в Проверке данных? Т.е. чтобы при выборе определенной позиции в предыдущих ячейках в следующих этого значения в списке уже не было бы?
 
Да.
 
Такую систему можно разработать, но при условии, что набор сотрудников на все посты является статичным. Если у Вас на каждый пост может быть разный список людей, то это уже сложнее...
 
Например иванов а.а. может быть допущен только на первый пост. А петров п.п на все посты. И на первый в сумме может быть допущено 100 человек а на второй и третий по 10 сотрудников.
 
 Тогда на каждый пост у Вас должен быть свой список. Вы такие делали? И что, Вы действительно хотите в выпадающих списках видеть 100 сотрудников?
 
Да. Так и получается. Идеальный вариант еще допилить по первым буквам чтобы он показывал кого выбирать в выпадающем списке.
 
Понятно. Тогда с таким кол-вом Вам списки нужно на отдельном листе делать и "плавающий" Active-X прикручивать... В общем, целый проект получается) Я тут набросал пока вариант под Ваш пример - может подтолкнет Вас к дальнейшим изысканиям)
 
Влад! Большое спасибо, но все равно не понимаю некоторых моментов.
Вроде разнес на разные листы, проверка по постам у меня не получается, Так еще задача усложнилась: посты или-или...
Господа, помогите...заранее спасибо :)

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

Файлы удалены: превышение допустимого размера вложения [МОДЕРАТОР]
 
Вложение не более 100 кБ
Кому-то интересно разбираться в Ваших сотнях килобайт данных?

Вопрос все тот же - по выпадающему списку? Если нет - в новую тему
 
Да. Все тоже по выпадающим спискам...
 
еще одна попытка. одним файлом. не получается у меня сделать эту проверку. заранее спасибо...
Страницы: 1
Наверх