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

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

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

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

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

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

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

Через функцию записать макрос я сделал то что хотел, но мой макрос привязан к указанной строке. Мне же нужно, что бы макрос выбирал последнюю строку с заливкой и ее использовал как заголовок, а то что ниже уже фильтровал.
Код
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".

Возможно я перемудрил, и все это можно решить еще проще, без всяких автофильтров.
Макрос: скопировать строку и вставить в первой свободной строке ниже., Необходимо помощь написать макрос который бы позволял копировать выбранную строку и вставить ее в пустую строку ниже.
 
kuklp, спасибо! У вас получилось гораздо компактнее и без ошибки что есть в моем макросе!
Изменено: Medium - 07.07.2017 12:38:20
Макрос: скопировать строку и вставить в первой свободной строке ниже., Необходимо помощь написать макрос который бы позволял копировать выбранную строку и вставить ее в пустую строку ниже.
 
Я сделал следующее своими кривыми руками:
Код
Sub Скопировать_вставить()

' Скопировать_вставить макрос


    With ActiveCell
    Range(Cells(.Row, 1), Cells(.Row, 10)).Copy
End With
    Selection.End(xlToLeft).Select
    Selection.End(xlToLeft).Select
    Selection.End(xlToLeft).Select
    Selection.End(xlToLeft).Select
    Selection.End(xlToLeft).Select
    Selection.End(xlDown).Select
    ActiveCell(2).Activate
    ActiveSheet.Paste

End Sub

В принципе работает.
Ошибка только в случае если я выделяю последнюю занятую ячейку, так как в этом случае ActiveCell(2).Activate не возможен.
Макрос: скопировать строку и вставить в первой свободной строке ниже., Необходимо помощь написать макрос который бы позволял копировать выбранную строку и вставить ее в пустую строку ниже.
 
Владимир, в приложении файл с несколькими записями.

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

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

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