Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Как запретить форматирование в общей книге, но при этом оставить возможность сортировки?
 
Добрый день, уважаемые! Столкнулся со следующей проблемой.
Есть книга Excel с общим доступом. Проблема в том, что сотрудники постоянно используют заливку и изменение цвета шрифта, хотя все проставляется само через условное форматирование, а своим "ручным" форматированием сотрудники только путают логику работы.
Решил вообще убрать возможность форматирования через защиту листа! Но в случае постановки защиты на лист пропадает и возможность сортировки!

Цель запретить вообще применять форматирование руками (заливка и цвет шрифта), но оставить возможность сортировки (это происходит через макрос).

Пробовал прописывать "UserInterfaceOnly = True" при защите листа, но проблема в том, что "True" слетает при каждом открытии файла.
Нашел в интернете подсказку - прописать постановку защиты листа и указании UserInterfaceOnly = True при каждом открытии файла. Все работает, но только пока книга не является общей. Проблема в том, что для книги с общим доступом не разрешено ставить защиту. А фалом могут пользоваться одновременно несколько людей, так что она должна оставаться общей.

Может я что-то делаю не так? Возможно есть возможность запретить форматирование и при этом не запрещать сортировку?
P.S.: разрешать использовать сортировку и автофильтр при постановки защиты я пробовал! Ругается, что нельзя использовать данную команду на данном листе и просит снять защиту.
Необходимо сортировать данные в строках не имеющих заливки
 
Здравствуйте, уважаемые!
Имеется файл, в который заносятся заявки на приезд курьера. Диспетчер принимает заявки от клиентов, заносит их в файл, а в последствии отслеживает их передачу курьеру и последующее выполнение. С грехом пополам (а так же с помощью данного форума и гугла) этот процесс я автоматизировал.

Теперь необходимо, чтобы диспетчер мог утром распечатать список заявок каждому курьеру на текущий день. И вот тут у меня затык с исполнением.
Логика следующая:
Все заявки за предыдущий день уже были переданы курьерам и выполнены (или нет), а значит отмечены красным цветом текста (передана курьеру) и желтой заливкой (выполнена курьером). Заявки на текущий день не были переданы и выполнены, а значит имеют черный цвет текста и не имеют заливки. А так как все заявки расположены в хронологическом порядке (по дате), то следовательно все не выполненные (без заливки) находятся ниже, а это значит можно выбрать строку, последнюю, которая имеет заливку, сделать по ней автофильтр, отсортировать колонку с фамилией курьера по алфавиту, убрать автофильтр. В результате имеем список, в котором можно выделить скобкой все заявки одного курьера и отправить на печать выделенный фрагмент. И так повторить для всех курьеров.

В приложении сам файл.

Через функцию записать макрос я сделал то что хотел, но мой макрос привязан к указанной строке. Мне же нужно, что бы макрос выбирал последнюю строку с заливкой и ее использовал как заголовок, а то что ниже уже фильтровал.
Код
Sub сортировка заявок()
' сортировка заявок Макрос

    Range("A5:K5").Select
    Range("K5").Activate
    Selection.AutoFilter
    ActiveWorkbook.Worksheets("Çàÿâêè").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Çàÿâêè").AutoFilter.Sort.SortFields.Add Key:=Range _
        ("K5"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("Çàÿâêè").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Selection.AutoFilter
End Sub

Прошу мне помочь, так как я так и не смог найти как можно выбрать именно последнюю строку с заливкой.
Если с заливкой не получится, то в принципе можно не привязываться к этому, а использовать еще одну колонку в которой, например, "0" и "1" указывать передана была заявка или нет. И тогда макросу нужно будет икать не заливку, а значение "0" или "1".

Возможно я перемудрил, и все это можно решить еще проще, без всяких автофильтров.
Макрос: скопировать строку и вставить в первой свободной строке ниже., Необходимо помощь написать макрос который бы позволял копировать выбранную строку и вставить ее в пустую строку ниже.
 
Здравствуйте, уважаемые форумчане! Помогите пожалуйста.

Имеется таблица Excel с данными (заявками клиента), где каждая строка это отдельная заявка (название клиента, адрес, телефон, и т.д.).
На данный момент при оформлении новой заявки от уже имеющегося клиента (есть в таблице) я произвожу такие действия:
- с помощью "CTRL+F" делаю поиск по названию клиента или адресу, копирую строку с предыдущей заявкой этого клиента.
- нажатием "CTRL+стрелка вниз" перехожу к последней записи в таблице.
- еще раз нажимаю "стрелку вниз" и вставляю скопированную строку.
- исправляю необходимые данные в заявке.

Хотелось бы автоматизировать эти монотонные тыканья по клавиатуре, но я к сожалению очень далек от макросов и VBA.
Думаю для разбирающихся не составит труда составить код.
Изменено: Medium - 07.07.2017 10:16:02
Страницы: 1
Наверх