Всем привет! Проблема в следующем. Сначала лист защищен полностью, но вот приходит админ, который знает пароль и снимает защиту. И вот после этого необходимо все же запретить ему изменять ширину столбцов и строк. Я так полагаю, что это надо сделать именно после того как он вручную ввел пароль и снял защиту, а вот как этот момент поймать?
Всем привет! Проблема в следующем. Сначала лист защищен полностью, но вот приходит админ, который знает пароль и снимает защиту. И вот после этого необходимо все же запретить ему изменять ширину столбцов и строк. Я так полагаю, что это надо сделать именно после того как он вручную ввел пароль и снял защиту, а вот как этот момент поймать?Betsy
Чтобы восстановить ширины столбцов и высоту строк и т.п. оформление - набросайте макрос. Админ ушел - макрос все оформление вернул в исходное состояние
Запретить АДМИНУ вносить изменения!? - вы жжоте
Чтобы восстановить ширины столбцов и высоту строк и т.п. оформление - набросайте макрос. Админ ушел - макрос все оформление вернул в исходное состояниеigrtsk
Инструктор по применению лосей в кавалерийских частях РККА
Сообщение отредактировал igrtsk - Среда, 15.01.2014, 14:16
да там этих админов будет человек 10 или больше, и не все по ходу продвинутые пользователи. Ну админами я их условно назвала)) На самом деле это просто вторая группа пользователей, которые должны менять заголовки столбцов и строк и проверять изменения внесенные первой группой пользователей (теми кому там только кое-где данные вносить разрешено).
Админ ушел - макрос все оформление вернул в исходное состояние
Тоже конечно идея, хотя в таком случае этот админ перед тем как уйти получит изрядный стресс с этими столбцами, будет нервничать и на меня ругаться долго.
да там этих админов будет человек 10 или больше, и не все по ходу продвинутые пользователи. Ну админами я их условно назвала)) На самом деле это просто вторая группа пользователей, которые должны менять заголовки столбцов и строк и проверять изменения внесенные первой группой пользователей (теми кому там только кое-где данные вносить разрешено).
Админ ушел - макрос все оформление вернул в исходное состояние
Тоже конечно идея, хотя в таком случае этот админ перед тем как уйти получит изрядный стресс с этими столбцами, будет нервничать и на меня ругаться долго.Betsy
Почему стресс? При открыти книги сохраняете размеры, при закрытии восстанавливаете. Пользователь этого и не заметит, если отключить обновление экрана.
Почему стресс? При открыти книги сохраняете размеры, при закрытии восстанавливаете. Пользователь этого и не заметит, если отключить обновление экрана.dadmarat
Почему стресс? При открыти книги сохраняете размеры, при закрытии восстанавливаете. Пользователь этого и не заметит, если отключить обновление экрана.
ну во первых есть еще один админ - достойнейший из достойных - эт я конечно) и что ж мне тогда тоже ничего не поменять? ну ширину эту несчастную)) а во вторых человек всегда получает стресс и ругается на программиста, если он сам там все наперепутал и теперь у него все криво-косо, он ведь бедолага не знает, что после закрытия все восстановится))
Почему стресс? При открыти книги сохраняете размеры, при закрытии восстанавливаете. Пользователь этого и не заметит, если отключить обновление экрана.
ну во первых есть еще один админ - достойнейший из достойных - эт я конечно) и что ж мне тогда тоже ничего не поменять? ну ширину эту несчастную)) а во вторых человек всегда получает стресс и ругается на программиста, если он сам там все наперепутал и теперь у него все криво-косо, он ведь бедолага не знает, что после закрытия все восстановится))Betsy
Betsy, я бы использовал шаблоны. пусть вводят как хотят, каким хотят шрифтом, просто потом все данные переносить в шаблон и выводить в результат.
Betsy, я бы использовал шаблоны. пусть вводят как хотят, каким хотят шрифтом, просто потом все данные переносить в шаблон и выводить в результат.Матраскин
а на мой взгляд самый идеальный вариант это запретить вообще всем менять размеры!!! Настроили всё под шаблон и будь здоров! самый правильный и проверенный способ в полевых условиях. Как вариант разграничить права доступа через диалоговое окно userform при открытии файла: Пользователь, пароль. Исходя из прочитанного выше пользователей будет 3: 1. АДМИН ВСЕЯ РУСИ 2. ГРУППА ПОЛЬЗОВАТЕЛЕЙ 1 3. ГРУППА ПОЛЬЗОВАТЕЛЕЙ 2
При открытии файла проверять кто является юзверем и задавать ширину столбцов и форматирование так как изначально настроено под данную группу с запретом дальнейших изменений форматов... ато наменяют умники и разбирайся потом, чего оно не так и почему не работает))))
а на мой взгляд самый идеальный вариант это запретить вообще всем менять размеры!!! Настроили всё под шаблон и будь здоров! самый правильный и проверенный способ в полевых условиях. Как вариант разграничить права доступа через диалоговое окно userform при открытии файла: Пользователь, пароль. Исходя из прочитанного выше пользователей будет 3: 1. АДМИН ВСЕЯ РУСИ 2. ГРУППА ПОЛЬЗОВАТЕЛЕЙ 1 3. ГРУППА ПОЛЬЗОВАТЕЛЕЙ 2
При открытии файла проверять кто является юзверем и задавать ширину столбцов и форматирование так как изначально настроено под данную группу с запретом дальнейших изменений форматов... ато наменяют умники и разбирайся потом, чего оно не так и почему не работает))))DJ_Marker_MC
Сообщение отредактировал DJ_Marker_MC - Четверг, 16.01.2014, 00:22
группа пользователей, которые должны менять заголовки столбцов и строк
Так, оставьте эти заголовки не защищенными и поменяйте пароль, что бы тот
ЦитатаBetsy
админ, который знает пароль и снимает защиту.
имел доступ только к заголовкам. На крайняк - макрос снимающий защиту только с заголовков (с паролем для такой группы пользователей). И будет Вам счастье.
группа пользователей, которые должны менять заголовки столбцов и строк
Так, оставьте эти заголовки не защищенными и поменяйте пароль, что бы тот
ЦитатаBetsy
админ, который знает пароль и снимает защиту.
имел доступ только к заголовкам. На крайняк - макрос снимающий защиту только с заголовков (с паролем для такой группы пользователей). И будет Вам счастье. Wasilich
Сообщение отредактировал Wasilic - Четверг, 16.01.2014, 10:55
пример - лист, на нем столбцы и строки, красиво расположенные. Надо либо запретить менять их расположение (при снятой защите листа!!), либо при активировании лисьа запомнить как они расположены и восстановить при деактивировании листа.
пример - лист, на нем столбцы и строки, красиво расположенные. Надо либо запретить менять их расположение (при снятой защите листа!!), либо при активировании лисьа запомнить как они расположены и восстановить при деактивировании листа.
Betsy, А я шаблоны и не предлагал)))) Предложил шаблоны Матраскин Я предлагаю создать логин пароль через USERFORM и при входе проверять какой пользователь входить, если пользователь из группы 1 то для него устанавливать ширину столбцов и высоту строк как ему угодно, когда пользователь группы 2, то при входе меня эти параметры так как удобно данной группе.
Betsy, А я шаблоны и не предлагал)))) Предложил шаблоны Матраскин Я предлагаю создать логин пароль через USERFORM и при входе проверять какой пользователь входить, если пользователь из группы 1 то для него устанавливать ширину столбцов и высоту строк как ему угодно, когда пользователь группы 2, то при входе меня эти параметры так как удобно данной группе.DJ_Marker_MC
Я предлагаю создать логин пароль через USERFORM и при входе проверять какой пользователь входить,
это уже есть для самой бесправной группы установлена защита листа с некоторыми разрешенными ячейками для средней группы защита снимается и дальше нужно только изменение внешнего вида запретить, а все ячейки оставить открытыми (или я тут не права и это можно как то реализовать не снимая защиту с листа а только как то ее модифицируя?) ну и старшая группа - суперадмину можно все разумеется) - просто снимается защита и все
Я предлагаю создать логин пароль через USERFORM и при входе проверять какой пользователь входить,
это уже есть для самой бесправной группы установлена защита листа с некоторыми разрешенными ячейками для средней группы защита снимается и дальше нужно только изменение внешнего вида запретить, а все ячейки оставить открытыми (или я тут не права и это можно как то реализовать не снимая защиту с листа а только как то ее модифицируя?) ну и старшая группа - суперадмину можно все разумеется) - просто снимается защита и всеBetsy
Сообщение отредактировал Betsy - Четверг, 16.01.2014, 12:39
вы хотите сказать что можно каким то образом иметь 2 пароля на защиту листа с разными параметрами защиты?
Я хотел сказать так, что бы меня поняли. Не получилось. Просто, снимите защиту с ячеек нужного диапазона - выделив ячейки заголовка, не знаю как в 2010-м, у меня - Правая Кнопка Мыши > Формат ячеек > Защита > снять галку в "Защищаемая ячейка" > ОК. Поставьте защиту на лист с паролем. И пусть "админы" в незащищенных ячейках делают что хотят. Остальное им будет недоступно.
ЗЫ. Но быстрее всего нужен вариант с макросом, который снимает защиту с определенных ячеек по определенному паролю не снимая защиту с листа.
вы хотите сказать что можно каким то образом иметь 2 пароля на защиту листа с разными параметрами защиты?
Я хотел сказать так, что бы меня поняли. Не получилось. Просто, снимите защиту с ячеек нужного диапазона - выделив ячейки заголовка, не знаю как в 2010-м, у меня - Правая Кнопка Мыши > Формат ячеек > Защита > снять галку в "Защищаемая ячейка" > ОК. Поставьте защиту на лист с паролем. И пусть "админы" в незащищенных ячейках делают что хотят. Остальное им будет недоступно.
ЗЫ. Но быстрее всего нужен вариант с макросом, который снимает защиту с определенных ячеек по определенному паролю не снимая защиту с листа.Wasilich
Сообщение отредактировал Wasilic - Четверг, 16.01.2014, 12:56
Просто, снимите защиту с ячеек нужного диапазона - выделив ячейки заголовка
дело в том, что защита уже снята с других ячеек для самой бесправной группы пользователей, и если я теперь сниму защиту еще и с заголовков, то та первая группа пользователей тоже ведь получит доступ к заголовкам, а им то нельзя трогать заголовки.
Просто, снимите защиту с ячеек нужного диапазона - выделив ячейки заголовка
дело в том, что защита уже снята с других ячеек для самой бесправной группы пользователей, и если я теперь сниму защиту еще и с заголовков, то та первая группа пользователей тоже ведь получит доступ к заголовкам, а им то нельзя трогать заголовки.Betsy
Wasilic, мой Excel к сожалению не понимает русский язык защиту снять не смогла потому что мне пришлось переименовать макрос в латинские буквы а вызов его я к стыду своему вообще не нашла поэтому переименовать также не могу ну и естесственно он не вызывается(( вы не могли бы переназвать все латиницей, если не сложно PS очень удобно у вас реализованы права доступа для 3х групп
Wasilic, мой Excel к сожалению не понимает русский язык защиту снять не смогла потому что мне пришлось переименовать макрос в латинские буквы а вызов его я к стыду своему вообще не нашла поэтому переименовать также не могу ну и естесственно он не вызывается(( вы не могли бы переназвать все латиницей, если не сложно PS очень удобно у вас реализованы права доступа для 3х группBetsy
Сообщение отредактировал Betsy - Четверг, 16.01.2014, 15:36
я вот тут хоть и корявенько, но попыталась реализовать запоминание и восстановление ширины столбцов через массив (ну если кому интересно)):
[vba]
Код
Private Sub Worksheet_Activate() Dim myRange As Range Set myRange = Range("A1:AY1") Dim col As Range Dim i As Integer If myRange.Count <= NumberOfColumns Then i = 0 For Each col In myRange.Columns arr(i) = col.ColumnWidth i = i + 1 Next col End If End Sub
Private Sub Worksheet_Deactivate() Dim myRange As Range Set myRange = Range("A1:AY1") Dim col As Range Dim i As Integer i = 0 For Each col In myRange.Columns If arr(i) > 0 Then col.ColumnWidth = arr(i) i = i + 1 End If Next col End Sub
[/vba]
я вот тут хоть и корявенько, но попыталась реализовать запоминание и восстановление ширины столбцов через массив (ну если кому интересно)):
[vba]
Код
Private Sub Worksheet_Activate() Dim myRange As Range Set myRange = Range("A1:AY1") Dim col As Range Dim i As Integer If myRange.Count <= NumberOfColumns Then i = 0 For Each col In myRange.Columns arr(i) = col.ColumnWidth i = i + 1 Next col End If End Sub
Private Sub Worksheet_Deactivate() Dim myRange As Range Set myRange = Range("A1:AY1") Dim col As Range Dim i As Integer i = 0 For Each col In myRange.Columns If arr(i) > 0 Then col.ColumnWidth = arr(i) i = i + 1 End If Next col End Sub