Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Сортировка заблокированных ячеек - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Сортировка заблокированных ячеек
Catand76 Дата: Среда, 04.07.2018, 07:37 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
В EXCEL (неважно в каком).
Есть некая ТАБЛИЦА, в которой часть данных в некоторые СТОЛБЦЫ вводятся в ручную, а часть обрабатывает введенные данные и выдает результат. (следовательно, те ЯЧЕЙКИ где есть формулы необходимо защитить), затем защищаем ЛИСТ....
ТЕПЕРЬ ПРОБЛЕМА:
Необходимо сортировать данные ТАБЛИЦЫ (с учетом заблокированных ячеек), но это НЕВОЗМОЖНО (Даже если при защите ЛИСТА установить ВСЕ ГАЛОЧКИ,т.е. дать полное разрешение)

Люди есть мысли, как заставить работать сортировку?


Век живи - век учись

Сообщение отредактировал Catand76 - Среда, 04.07.2018, 12:11
 
Ответить
СообщениеВ EXCEL (неважно в каком).
Есть некая ТАБЛИЦА, в которой часть данных в некоторые СТОЛБЦЫ вводятся в ручную, а часть обрабатывает введенные данные и выдает результат. (следовательно, те ЯЧЕЙКИ где есть формулы необходимо защитить), затем защищаем ЛИСТ....
ТЕПЕРЬ ПРОБЛЕМА:
Необходимо сортировать данные ТАБЛИЦЫ (с учетом заблокированных ячеек), но это НЕВОЗМОЖНО (Даже если при защите ЛИСТА установить ВСЕ ГАЛОЧКИ,т.е. дать полное разрешение)

Люди есть мысли, как заставить работать сортировку?

Автор - Catand76
Дата добавления - 04.07.2018 в 07:37
_Boroda_ Дата: Среда, 04.07.2018, 09:33 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16711
Репутация: 6502 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Все прекрасно работает. Помимо необходимых для остальной работы нужно поставить только одну дополнительную галку - "Использование автофильтра". На вкладке Данные кнопки автофильтра засерятся (неактивными станут), но сам автофильтр (стрелочки) работать будет и в обычных таблицах и в умных
К сообщению приложен файл: 579175.xlsm (9.4 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеВсе прекрасно работает. Помимо необходимых для остальной работы нужно поставить только одну дополнительную галку - "Использование автофильтра". На вкладке Данные кнопки автофильтра засерятся (неактивными станут), но сам автофильтр (стрелочки) работать будет и в обычных таблицах и в умных

Автор - _Boroda_
Дата добавления - 04.07.2018 в 09:33
Catand76 Дата: Среда, 04.07.2018, 12:10 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
_Boroda_, Прошу прощения - РЕЧЬ ИДЕТ О СОРТИРОВКЕ!!!!!


Век живи - век учись
 
Ответить
Сообщение_Boroda_, Прошу прощения - РЕЧЬ ИДЕТ О СОРТИРОВКЕ!!!!!

Автор - Catand76
Дата добавления - 04.07.2018 в 12:10
boa Дата: Среда, 04.07.2018, 13:39 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 559
Репутация: 167 ±
Замечаний: 0% ±

365
Catand76, как вариант, построить сводную таблицу и в ней сортировать
К сообщению приложен файл: 6792231.xlsm (13.4 Kb)


 
Ответить
СообщениеCatand76, как вариант, построить сводную таблицу и в ней сортировать

Автор - boa
Дата добавления - 04.07.2018 в 13:39
Catand76 Дата: Среда, 04.07.2018, 14:00 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
boa, Это был бы выход если 1 человек пользуется (тогда вообще нет смысла блокировать), но проблема в том, что файлом пользуется N кол-во человек и данные влияют на другие файлы и графики.... Файл уже слишком "большой" и тормозит на слабых машинах, а если еще раз ввести дубль всех таблиц (их не 1 и не 2....) будет вообще не камильфо.... Сейчас защита листа снята и мне приходится по 1-2 разу в неделю восстанавливать формулы и УФ.... P.S. "Безбожники" лезут туда, куда Макар телят не гонял... иногда мне прямо интересно. что творится в их головах, чтоб так извращенно ломать связи в формулах???


Век живи - век учись
 
Ответить
Сообщениеboa, Это был бы выход если 1 человек пользуется (тогда вообще нет смысла блокировать), но проблема в том, что файлом пользуется N кол-во человек и данные влияют на другие файлы и графики.... Файл уже слишком "большой" и тормозит на слабых машинах, а если еще раз ввести дубль всех таблиц (их не 1 и не 2....) будет вообще не камильфо.... Сейчас защита листа снята и мне приходится по 1-2 разу в неделю восстанавливать формулы и УФ.... P.S. "Безбожники" лезут туда, куда Макар телят не гонял... иногда мне прямо интересно. что творится в их головах, чтоб так извращенно ломать связи в формулах???

Автор - Catand76
Дата добавления - 04.07.2018 в 14:00
boa Дата: Среда, 04.07.2018, 14:19 | Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 559
Репутация: 167 ±
Замечаний: 0% ±

365
Catand76, формулы можно перенести в менеджер имен и скрыть их там, а в ячейках использовать лишь имена Формула1, Формула2 и т.д.
Пускай потом голову ломают, что и как считается :)
а файл пересохраните в бинарном формате и он значительно "подусохнет"




Сообщение отредактировал boa - Среда, 04.07.2018, 14:20
 
Ответить
СообщениеCatand76, формулы можно перенести в менеджер имен и скрыть их там, а в ячейках использовать лишь имена Формула1, Формула2 и т.д.
Пускай потом голову ломают, что и как считается :)
а файл пересохраните в бинарном формате и он значительно "подусохнет"

Автор - boa
Дата добавления - 04.07.2018 в 14:19
boa Дата: Среда, 04.07.2018, 14:25 | Сообщение № 7
Группа: Друзья
Ранг: Ветеран
Сообщений: 559
Репутация: 167 ±
Замечаний: 0% ±

365
если остальные юзеры не вносят данные, то еще вариант - создать пользовательского клиента,
т.е. основной файл у вас в пользовании, а у остальных книга с коннектами к этому файлу.
Либо установить пароль на редактирование книги.




Сообщение отредактировал boa - Среда, 04.07.2018, 14:26
 
Ответить
Сообщениеесли остальные юзеры не вносят данные, то еще вариант - создать пользовательского клиента,
т.е. основной файл у вас в пользовании, а у остальных книга с коннектами к этому файлу.
Либо установить пароль на редактирование книги.

Автор - boa
Дата добавления - 04.07.2018 в 14:25
Catand76 Дата: Среда, 04.07.2018, 15:15 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
boa, Книга и так двоичная, юзеров МНОГО, все вносят данные....
Да и предложенные решения КРИВЫЕ!!!! Может макросом кто поможет?


Век живи - век учись
 
Ответить
Сообщениеboa, Книга и так двоичная, юзеров МНОГО, все вносят данные....
Да и предложенные решения КРИВЫЕ!!!! Может макросом кто поможет?

Автор - Catand76
Дата добавления - 04.07.2018 в 15:15
_Boroda_ Дата: Среда, 04.07.2018, 15:32 | Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 16711
Репутация: 6502 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Не, вот ну ничего себе? Вы переписали свой первый пост, поменяли название темы (было "Фильтр заблокированного листа"), везде фильтр заменили на сотрировку. И как теперь выглядит мой ответ? Первая мысль - что за дебил, его спрашивают про сотрировку, а он отвечает про фильтр. Нужно было или новую тему создавать, или в следующем посте написать, что перепутали.

Макросом вот так можно
Оранжевая кнопка паролит лист для пользователя, но не для макроса. При необходимости снимаем пароль вручную. Пароль q1. Можно поменять - в макросе предпоследняя строка. По выбору пользователя или плавающий делать не стал - забудете, потом придется ломать. А так всегда в коде макроса посмотреть можно, туда ж никто больше не полезет, правильно?
Заленая кнопка сортирует данные по столбцу, в котором находится левая верхняя ячейка выделенного диапазона. Предполагается, что в таблице есть шапка в одну строку. Ескейп, крестик или "Отмена" - выход из макроса
[vba]
Код
Sub Sortir()
    Dim d As Range, d0 As Range
    Set d0 = Selection(1)
    сb_ = Replace(Cells(1, d0.Column).Address(0, 0), 1, "")
    s_ = MsgBox("Столбец '" & сb_ & "' сортируем по возрастанию?", vbYesNoCancel, "Сортировка по столбцу " & сb_)
    If s_ < 6 Then Exit Sub
    or_ = s_ - 5
    On Error Resume Next
    Set d = d0.CurrentRegion
    Set d = d.Offset(1).Resize(d.Rows.Count - 1)
    With ActiveSheet.Sort.SortFields
        .Clear
        .Add Key:=d0, Order:=or_
        With .Parent
            .SetRange d
            .Apply
        End With
    End With
    d0.Select
End Sub

Sub Parol()
    ActiveSheet.Protect userInterfaceOnly:=True, Password:="q1"
End Sub
[/vba]
К сообщению приложен файл: 579175-1-1.xlsm (18.6 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеНе, вот ну ничего себе? Вы переписали свой первый пост, поменяли название темы (было "Фильтр заблокированного листа"), везде фильтр заменили на сотрировку. И как теперь выглядит мой ответ? Первая мысль - что за дебил, его спрашивают про сотрировку, а он отвечает про фильтр. Нужно было или новую тему создавать, или в следующем посте написать, что перепутали.

Макросом вот так можно
Оранжевая кнопка паролит лист для пользователя, но не для макроса. При необходимости снимаем пароль вручную. Пароль q1. Можно поменять - в макросе предпоследняя строка. По выбору пользователя или плавающий делать не стал - забудете, потом придется ломать. А так всегда в коде макроса посмотреть можно, туда ж никто больше не полезет, правильно?
Заленая кнопка сортирует данные по столбцу, в котором находится левая верхняя ячейка выделенного диапазона. Предполагается, что в таблице есть шапка в одну строку. Ескейп, крестик или "Отмена" - выход из макроса
[vba]
Код
Sub Sortir()
    Dim d As Range, d0 As Range
    Set d0 = Selection(1)
    сb_ = Replace(Cells(1, d0.Column).Address(0, 0), 1, "")
    s_ = MsgBox("Столбец '" & сb_ & "' сортируем по возрастанию?", vbYesNoCancel, "Сортировка по столбцу " & сb_)
    If s_ < 6 Then Exit Sub
    or_ = s_ - 5
    On Error Resume Next
    Set d = d0.CurrentRegion
    Set d = d.Offset(1).Resize(d.Rows.Count - 1)
    With ActiveSheet.Sort.SortFields
        .Clear
        .Add Key:=d0, Order:=or_
        With .Parent
            .SetRange d
            .Apply
        End With
    End With
    d0.Select
End Sub

Sub Parol()
    ActiveSheet.Protect userInterfaceOnly:=True, Password:="q1"
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 04.07.2018 в 15:32
pabchek Дата: Среда, 04.07.2018, 15:57 | Сообщение № 10
Группа: Проверенные
Ранг: Ветеран
Сообщений: 931
Репутация: 218 ±
Замечаний: 0% ±

Excel 2007
[offtop]
Sub Sortir()

Любишь ты, Саша, меткие названия ;)))[/offtop]


"Учиться, учиться и еще раз учиться!"
WM: R399923528092
 
Ответить
Сообщение[offtop]
Sub Sortir()

Любишь ты, Саша, меткие названия ;)))[/offtop]

Автор - pabchek
Дата добавления - 04.07.2018 в 15:57
boa Дата: Среда, 04.07.2018, 16:08 | Сообщение № 11
Группа: Друзья
Ранг: Ветеран
Сообщений: 559
Репутация: 167 ±
Замечаний: 0% ±

365
Catand76, что бы Sortir работал :), не забудьте добавить в модуль книги

[vba]
Код
Private Sub Workbook_Open()
    Call Parol
End Sub
[/vba]




Сообщение отредактировал boa - Среда, 04.07.2018, 16:08
 
Ответить
СообщениеCatand76, что бы Sortir работал :), не забудьте добавить в модуль книги

[vba]
Код
Private Sub Workbook_Open()
    Call Parol
End Sub
[/vba]

Автор - boa
Дата добавления - 04.07.2018 в 16:08
_Boroda_ Дата: Среда, 04.07.2018, 16:28 | Сообщение № 12
Группа: Админы
Ранг: Местный житель
Сообщений: 16711
Репутация: 6502 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
что бы Sortir работал :), не забудьте добавить в модуль книги
[vba]
Код
Private Sub Workbook_Open()
    Call Parol
End Sub
[/vba]

Зачем? На всякий случай запаролить лист при открытии книги конечно хорошо (но не поможет - до того, как понадобится сортировка, работника все равно забудут включить макросы), но работа Сортира никак с этим не связана.
Вы случайно не перепутали UserInterfaceOnly с EnableOutlining?

А вот на случай, если админ Catand76 снял пароль, что-то поменял и забыл поставить его обратно, я бы написал принудительную установку на событие закрытия книги (с учетом того, что админ-то уж точно не забудет макросы включить)
[vba]
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Parol
End Sub
[/vba]
Можно, конечно, заставлять пользователя включить макросы, но это уже отдельная тема, которая, кстати, неоднократно уже обсуждалась здесь
К сообщению приложен файл: 579175-1-2.xlsm (19.3 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
что бы Sortir работал :), не забудьте добавить в модуль книги
[vba]
Код
Private Sub Workbook_Open()
    Call Parol
End Sub
[/vba]

Зачем? На всякий случай запаролить лист при открытии книги конечно хорошо (но не поможет - до того, как понадобится сортировка, работника все равно забудут включить макросы), но работа Сортира никак с этим не связана.
Вы случайно не перепутали UserInterfaceOnly с EnableOutlining?

А вот на случай, если админ Catand76 снял пароль, что-то поменял и забыл поставить его обратно, я бы написал принудительную установку на событие закрытия книги (с учетом того, что админ-то уж точно не забудет макросы включить)
[vba]
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Parol
End Sub
[/vba]
Можно, конечно, заставлять пользователя включить макросы, но это уже отдельная тема, которая, кстати, неоднократно уже обсуждалась здесь

Автор - _Boroda_
Дата добавления - 04.07.2018 в 16:28
boa Дата: Среда, 04.07.2018, 16:51 | Сообщение № 13
Группа: Друзья
Ранг: Ветеран
Сообщений: 559
Репутация: 167 ±
Замечаний: 0% ±

365
Зачем?


попробуйте закрыть книгу, а потом открыть и не запуская макроса с установкой пароля сделать сортировку.


 
Ответить
Сообщение
Зачем?


попробуйте закрыть книгу, а потом открыть и не запуская макроса с установкой пароля сделать сортировку.

Автор - boa
Дата добавления - 04.07.2018 в 16:51
_Boroda_ Дата: Среда, 04.07.2018, 17:11 | Сообщение № 14
Группа: Админы
Ранг: Местный житель
Сообщений: 16711
Репутация: 6502 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Дык это первое, что я сделал, когда Ваш пост увидел. Все нормально работало. А сейчас перегрузил Excel и да, без оранжевой кнопки зеленая не срабатывает. Чудеса

Доделал еще всякие мелочи и дописал дополнение от boa. В итоге вот так получилось
К сообщению приложен файл: 579175-1-3.xlsm (19.6 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеДык это первое, что я сделал, когда Ваш пост увидел. Все нормально работало. А сейчас перегрузил Excel и да, без оранжевой кнопки зеленая не срабатывает. Чудеса

Доделал еще всякие мелочи и дописал дополнение от boa. В итоге вот так получилось

Автор - _Boroda_
Дата добавления - 04.07.2018 в 17:11
boa Дата: Среда, 04.07.2018, 22:36 | Сообщение № 15
Группа: Друзья
Ранг: Ветеран
Сообщений: 559
Репутация: 167 ±
Замечаний: 0% ±

365
зеленая не срабатывает. Чудеса

_Boroda_, это не чудеса.
userInterfaceOnly действует в пределах одного сеанса,
в параметрах защиты листа данное не сохраняется.
если выполнить код при открытии книги, то все работает,
если после открытия книги данная комманда не отработала, то Оно = False
рад был быть полезным ;)




Сообщение отредактировал boa - Среда, 04.07.2018, 22:39
 
Ответить
Сообщение
зеленая не срабатывает. Чудеса

_Boroda_, это не чудеса.
userInterfaceOnly действует в пределах одного сеанса,
в параметрах защиты листа данное не сохраняется.
если выполнить код при открытии книги, то все работает,
если после открытия книги данная комманда не отработала, то Оно = False
рад был быть полезным ;)

Автор - boa
Дата добавления - 04.07.2018 в 22:36
_Boroda_ Дата: Четверг, 05.07.2018, 01:32 | Сообщение № 16
Группа: Админы
Ранг: Местный житель
Сообщений: 16711
Репутация: 6502 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
userInterfaceOnly действует в пределах одного сеанса

Не согласен. Она действует в пределах одной книги - пока книга открыта. При закрытии сбрасывается. Сеанс (если под словом "сеанс" Вы подразумеваете сеанс Excel) здесь ни при чем.
А на работе у меня просто Excel загадочный. Дома, кстати, тоже, но уже по-другому.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
userInterfaceOnly действует в пределах одного сеанса

Не согласен. Она действует в пределах одной книги - пока книга открыта. При закрытии сбрасывается. Сеанс (если под словом "сеанс" Вы подразумеваете сеанс Excel) здесь ни при чем.
А на работе у меня просто Excel загадочный. Дома, кстати, тоже, но уже по-другому.

Автор - _Boroda_
Дата добавления - 05.07.2018 в 01:32
Catand76 Дата: Четверг, 05.07.2018, 02:55 | Сообщение № 17
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
_Boroda_, Спасибо большое.... Для меня макрос - темный лес.... но буду разбираться и запиливать под свои потребности (вот если еще напротив каждой строки в макросе поставите примечание, будет вообще GOOD)


Век живи - век учись

Сообщение отредактировал Catand76 - Четверг, 05.07.2018, 02:56
 
Ответить
Сообщение_Boroda_, Спасибо большое.... Для меня макрос - темный лес.... но буду разбираться и запиливать под свои потребности (вот если еще напротив каждой строки в макросе поставите примечание, будет вообще GOOD)

Автор - Catand76
Дата добавления - 05.07.2018 в 02:55
boa Дата: Четверг, 05.07.2018, 08:30 | Сообщение № 18
Группа: Друзья
Ранг: Ветеран
Сообщений: 559
Репутация: 167 ±
Замечаний: 0% ±

365
если под словом "сеанс" Вы подразумеваете сеанс Excel

я имел ввиду сеанс открытой книги.


 
Ответить
Сообщение
если под словом "сеанс" Вы подразумеваете сеанс Excel

я имел ввиду сеанс открытой книги.

Автор - boa
Дата добавления - 05.07.2018 в 08:30
Catand76 Дата: Четверг, 05.07.2018, 09:09 | Сообщение № 19
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Ребята, а можно макрос упростить?
Вот вводные:
Вешаем на экран кнопку "сортировка"
При нажатии на кнопку.
1. Снимается защита листа.
2. Сортируется "по возрастанию" Столбец "[3]" в умной "Таблице1"
3. Лист снова защищается.


Век живи - век учись

Сообщение отредактировал Catand76 - Четверг, 05.07.2018, 09:10
 
Ответить
СообщениеРебята, а можно макрос упростить?
Вот вводные:
Вешаем на экран кнопку "сортировка"
При нажатии на кнопку.
1. Снимается защита листа.
2. Сортируется "по возрастанию" Столбец "[3]" в умной "Таблице1"
3. Лист снова защищается.

Автор - Catand76
Дата добавления - 05.07.2018 в 09:09
boa Дата: Четверг, 05.07.2018, 09:17 | Сообщение № 20
Группа: Друзья
Ранг: Ветеран
Сообщений: 559
Репутация: 167 ±
Замечаний: 0% ±

365
Catand76, для сортировки не надо снимать защиту.
вы можете кнопку установки защиты вообще убрать с листа, т.к. защита будет установлена при закрытии/открытии файла если макросы включены.
можете еще и на событие сохранения устанавливать защиту листа
[vba]
Код
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Parol
End Sub
[/vba]




Сообщение отредактировал boa - Четверг, 05.07.2018, 09:24
 
Ответить
СообщениеCatand76, для сортировки не надо снимать защиту.
вы можете кнопку установки защиты вообще убрать с листа, т.к. защита будет установлена при закрытии/открытии файла если макросы включены.
можете еще и на событие сохранения устанавливать защиту листа
[vba]
Код
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Parol
End Sub
[/vba]

Автор - boa
Дата добавления - 05.07.2018 в 09:17
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!