Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
 Аватар для Bazaroff
288 / 93 / 11
Регистрация: 29.05.2011
Сообщений: 2,421

Запрет на изменение файла данных

03.06.2013, 14:22. Показов 2695. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Можно ли запретить изменения файла Excel непосредственно?
Необходимо, чтобы все изменения в файле осуществлялись только при помощи юзерформы.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.06.2013, 14:22
Ответы с готовыми решениями:

Запрет на изменение системного файла
Здравствуйте всем, vista home premium не даёт мне править системный файл nettcpip.inf, хотя я зашёл в систему под учётной записью...

Запрет на изменение данных
Подскажите пожалуйста, как запретить изменение данных за прошедший месяц некоторому пользователю, группе пользователей? :impossible:

Запрет на изменение данных
Доброго времени суток. У меня такой вопрос: на форме лежит подчиненая таблица, возможно ли сделать так чтобы выделять строки можно было а...

9
693 / 99 / 10
Регистрация: 25.06.2011
Сообщений: 718
03.06.2013, 14:43
Bazaroff, можно спрятать полностю ексель
Visual Basic
1
application.visible=false
1
 Аватар для Bazaroff
288 / 93 / 11
Регистрация: 29.05.2011
Сообщений: 2,421
03.06.2013, 14:47  [ТС]
IvanOK, спасибо, это тоже нужная вещь.
Но вот нужно еще чтобы - то что описал.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,711
Записей в блоге: 14
03.06.2013, 15:03
Прямо все изменения? Можно защитить листы паролем. А в коде (в процессе модификации) снимать защиту, менять данные, снова устанавливать защиту.
1
693 / 99 / 10
Регистрация: 25.06.2011
Сообщений: 718
03.06.2013, 16:19
Цитата Сообщение от Bazaroff Посмотреть сообщение
Необходимо, чтобы все изменения в файле осуществлялись только при помощи юзерформы.
ето возможно только когда пользователь вообще не видит екселя, то есть нет смысла показывать ему таблицы если он с ними не работает
1
 Аватар для Bazaroff
288 / 93 / 11
Регистрация: 29.05.2011
Сообщений: 2,421
04.06.2013, 23:37  [ТС]
Цитата Сообщение от IvanOK Посмотреть сообщение
application.visible=false
Показывает ошибку. Наверное потому что без объявления.
А как эту штуку объявить?

Добавлено через 7 минут
Попробовал так - ошибки нет, но ничего и не изменилось!(

Visual Basic
1
2
3
Sub Workbook_Open()
Application.Visible = False
End Sub
Добавлено через 18 минут
Всем спасибо! Нашел код!
Только вот теперь иная проблема! А как же теперь мне попасть в редактор? (Нужно дальше работать с кодом).

Добавлено через 15 минут
Фуф! Пардон! Разобрался!

Добавлено через 23 минуты
Опять вопрос.
Можно ли сделать, чтобы скрытой оказалась только конкретная книга, а не приложение вообще?
Картина такая. У меня открыта некоторая иная книга эксель. Как только я открываю книгу, содержащую предлагаемый код (Application.Visible = False), пропадает и книга, открытая ранее, а на экране красуется лишь юзерформа.
0
81 / 18 / 1
Регистрация: 22.05.2013
Сообщений: 32
05.06.2013, 00:32
1) Можно хранить данные на скрытых листах. Они будут недоступны пользователю. В VBA редакторе у нужных листов сделать свойство (F4) Visible = xlVeryHidden
2) Можно вместо книги с поддержкой макросов сделать плагин - он будет без видимой книги. В Auto_Open() создавать панельку с кнопкой, кнопка запускает макрос (показывает форму). В Auto_Close() убирать панельку при выходе (чтобы не плодилась).
1
 Аватар для Bazaroff
288 / 93 / 11
Регистрация: 29.05.2011
Сообщений: 2,421
05.06.2013, 00:40  [ТС]
Цитата Сообщение от Hedge-Hog Посмотреть сообщение
1) Можно хранить данные на скрытых листах. Они будут недоступны пользователю. В VBA редакторе у нужных листов сделать свойство (F4) Visible = xlVeryHidden
Не. Сильно нравится перспектива со скрытой книгой.

Цитата Сообщение от Hedge-Hog Посмотреть сообщение
Можно вместо книги с поддержкой макросов сделать плагин - он будет без видимой книги. В Auto_Open() создавать панельку с кнопкой, кнопка запускает макрос (показывает форму). В Auto_Close() убирать панельку при выходе (чтобы не плодилась).
Что-то это мне представляется вообще неподъемной гирей. Тут бы с чем попроще разобраться.
0
81 / 18 / 1
Регистрация: 22.05.2013
Сообщений: 32
05.06.2013, 09:17
Для второго варианта нужно сохранить книгу с макросом в формате Excel Add-In (*.xlam)
Добавить в основной модуль (не модуль листа и не модуль формы):
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Const pannelName = "имя панельки"
 
Sub Auto_Open() ' выполняется в момент открытия файла
    Dim chk As Boolean
    Dim button_01 As Object
    
    chk = False
    On Error Resume Next
        chk = (Application.CommandBars(pannelName).Name <> "") ' проверяем наличие панельки
    On Error GoTo 0
    
    If Not chk Then ' панельки нет - создаем
        Application.CommandBars.Add(Name:=pannelName, Position:=msoBarTop, Temporary:=True).Visible = True
        Set button_01 = Application.CommandBars(pannelName).Controls.Add(Type:=msoControlButton)
        With button_01
            .OnAction = "имя макроса"
            .FaceId = 6703
            .Caption = "Разметить..." ' то что будет показываться при наведении курсора
        End With
    End If
End Sub
 
 
Sub auto_close() ' выполняется в момент закрытия файла
    Dim tmp As Variant
    Dim cb As Variant
    Dim funcName As String
    
    If Not ThisWorkbook.Saved Then ' защита от выхода из макроса без сохранения
        If MsgBox("Текущий макрос был изменен. Сохранить изменения?", vbYesNo) = vbYes Then
            ThisWorkbook.Save
        End If
    End If
 
    For Each cb In CommandBars
        If cb.Name = pannelName Then
            cb.Delete
            Exit For
        End If
    Next cb
 
    On Error Resume Next
        ThisWorkbook.Close ' может и не закрыться, если используется кем-то
    On Error GoTo 0
End Sub
При запуске надстройки будет появляться панелька с одной кнопкой (без книг). При нажатии на кнопку будет выполняться макрос.
2
 Аватар для Bazaroff
288 / 93 / 11
Регистрация: 29.05.2011
Сообщений: 2,421
05.06.2013, 19:07  [ТС]
Hedge-Hog, блин, конечно же огромнейшее спасибо за потраченное время...
Но все же.
Хочу остановиться на своем варианте, если конечно это возможно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.06.2013, 19:07
Помогаю со студенческими работами здесь

Запрет на изменение раннее введенных данных в Access
Добрый день, друзья. Задание звучит так: в базе access &quot;...должно допускать изменение текущей цены товара, при этом в накладных,...

Как сделать запрет на изменение данных в ДбГриде?
при двойном щелчке по записи в дбгриде выделяется содержимое ячейки и можно ввести туда что угодно. Как сделать так чтобы при двойном...

Запрет на изменение данных в поле в зависимости от наличия или отсутствия данных в другом поле
Форумчане,доброго времени суток! Помогите решить проблему: В форме &quot;frmВозвраты_Из_ОТК_ОТК_Калинин_СЮ&quot; есть поле...

Изменение цвета фона элемента управления формы при запуске процедуры. Запрет на заполнение поля в зав-ти от наличия данных в другом поле
Доброго всем здоровья! Помогите решить проблему! Есть форма &quot; frmВыпуск_Приборов_Из_ОТК_Ковалевский_ВЕ_1 &quot;. На ней есть...

Чтение из файла (отображение и изменение данных)
Есть текстовый файл следующего содержания: Volume=0 Mic=1 .....=0 .....=1 .....=2 Нужно прочитать параметры из файла и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru