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

Вход

Регистрация

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

 

= Мир MS Excel/автоматически стираются данные в ячейках - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
автоматически стираются данные в ячейках
garbol Дата: Вторник, 21.05.2024, 17:18 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 44
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Добрый всем. В очередной раз прошу помощи. На создавал макросов, точнее насобирал из различных источников. Макросы созданы для защиты файла с множеством формул для расчета. Проблема в том, что при закрытии файла, и его открытии, листы защищаются, но при шаге на определенную ячейку, там автоматически стираются данные содержащиеся в ней. Если с листа сразу снять защиту, то данные не стираются. Помогите, проверте пожалуйста собранные макросы, они записаны в книге. Где ошибка. Заранее благодарен.
[vba]
Код
Sub Enable_AccessVBOM_and_Macro()
On Error Resume Next
Key$ = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & Application.Version & _
"\Excel\Security\"

' включаем программный доступ к объектной модели проекта VBA
CreateObject("WScript.Shell").RegWrite Key$ & "AccessVBOM", 1, "REG_DWORD"

' ставим низкий уровень безопасности (применится после перезапуска Excel)
CreateObject("WScript.Shell").RegWrite Key$ & "VBAWarnings", 1, "REG_DWORD"
End Sub
Private Sub Workbook_Open()
UserForm2.Show
If Date >= "30/04/2024" Then
MsgBox "Срок использования истек" 'всплывающее окно
ActiveWindow.Close False
End If
Sheets("график").Activate
sn = CreateObject("Scripting.FileSystemObject").GetDrive("C").SerialNumber 'назначение переменной sn текущего серийного номера диска
If sn = -900811744 Or sn = -900811744 Or sn = 456 Then 'проверка допустимых серийников
Else 'если серийник неверный
MsgBox "Доступ запрещен, программа не активирована" 'всплывающее окно
ActiveWindow.Close False
End If
Dim wsSh As Worksheet
For Each wsSh In ThisWorkbook.Sheets
wsSh.Visible = -1
Next wsSh
ThisWorkbook.Sheets("WARNING").Visible = 2
ThisWorkbook.Sheets("НЗТ1").Visible = 2
ThisWorkbook.Sheets("НЗТ2").Visible = 2
ThisWorkbook.Sheets("НЗТ3").Visible = 2
ThisWorkbook.Sheets("НЗТ4").Visible = 2
ThisWorkbook.Sheets("НЗТ5").Visible = 2
ThisWorkbook.Sheets("НЗТ6").Visible = 2
ThisWorkbook.Sheets("НЗТ7").Visible = 2
ThisWorkbook.Sheets("НЗТ8").Visible = 2
ThisWorkbook.Sheets("НЗТ9").Visible = 2
ThisWorkbook.Sheets("НЗТ10").Visible = 2
ThisWorkbook.Sheets("прогнозные (смр)").Visible = 2
Dim sh As Worksheet
For Each sh In Worksheets
With sh
.Unprotect Password:="1111" 'Задайте свой пароль
.Cells.FormulaHidden = True
.EnableOutlining = True
.Protect Password:="1111", UserInterfaceOnly:=True
End With
Next sh
End Sub
Sub Enable_AccessVBOM_and_Macro()
On Error Resume Next
Key$ = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & Application.Version & _
"\Excel\Security\"

' включаем программный доступ к объектной модели проекта VBA
CreateObject("WScript.Shell").RegWrite Key$ & "AccessVBOM", 1, "REG_DWORD"

' ставим низкий уровень безопасности (применится после перезапуска Excel)
CreateObject("WScript.Shell").RegWrite Key$ & "VBAWarnings", 1, "REG_DWORD"
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim s As String
If SaveAsUI Then
s = Application.GetSaveAsFilename(Me.Name, fileFilter:="Macro Enabled Workbooks (*.xlsm), *.xlsm")
If s <> "False" Then
If s = Me.FullName Then
Me.Save
Else
Application.EnableEvents = 0
Me.SaveAs s, 52
Application.EnableEvents = 1
Workbooks.Open s
Me.Close 0
End If
End If
Cancel = True
End If
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ScreenUpdating = False
Dim wsSh As Worksheet
Sheets("WARNING").Visible = -1
For Each wsSh In ThisWorkbook.Sheets
If wsSh.Name <> "WARNING" Then wsSh.Visible = 2
Next wsSh
ThisWorkbook.Save
End Sub
[/vba]
К сообщению приложен файл: tekstovyj_dokument.txt (3.9 Kb)


Сообщение отредактировал garbol - Вторник, 21.05.2024, 17:19
 
Ответить
СообщениеДобрый всем. В очередной раз прошу помощи. На создавал макросов, точнее насобирал из различных источников. Макросы созданы для защиты файла с множеством формул для расчета. Проблема в том, что при закрытии файла, и его открытии, листы защищаются, но при шаге на определенную ячейку, там автоматически стираются данные содержащиеся в ней. Если с листа сразу снять защиту, то данные не стираются. Помогите, проверте пожалуйста собранные макросы, они записаны в книге. Где ошибка. Заранее благодарен.
[vba]
Код
Sub Enable_AccessVBOM_and_Macro()
On Error Resume Next
Key$ = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & Application.Version & _
"\Excel\Security\"

' включаем программный доступ к объектной модели проекта VBA
CreateObject("WScript.Shell").RegWrite Key$ & "AccessVBOM", 1, "REG_DWORD"

' ставим низкий уровень безопасности (применится после перезапуска Excel)
CreateObject("WScript.Shell").RegWrite Key$ & "VBAWarnings", 1, "REG_DWORD"
End Sub
Private Sub Workbook_Open()
UserForm2.Show
If Date >= "30/04/2024" Then
MsgBox "Срок использования истек" 'всплывающее окно
ActiveWindow.Close False
End If
Sheets("график").Activate
sn = CreateObject("Scripting.FileSystemObject").GetDrive("C").SerialNumber 'назначение переменной sn текущего серийного номера диска
If sn = -900811744 Or sn = -900811744 Or sn = 456 Then 'проверка допустимых серийников
Else 'если серийник неверный
MsgBox "Доступ запрещен, программа не активирована" 'всплывающее окно
ActiveWindow.Close False
End If
Dim wsSh As Worksheet
For Each wsSh In ThisWorkbook.Sheets
wsSh.Visible = -1
Next wsSh
ThisWorkbook.Sheets("WARNING").Visible = 2
ThisWorkbook.Sheets("НЗТ1").Visible = 2
ThisWorkbook.Sheets("НЗТ2").Visible = 2
ThisWorkbook.Sheets("НЗТ3").Visible = 2
ThisWorkbook.Sheets("НЗТ4").Visible = 2
ThisWorkbook.Sheets("НЗТ5").Visible = 2
ThisWorkbook.Sheets("НЗТ6").Visible = 2
ThisWorkbook.Sheets("НЗТ7").Visible = 2
ThisWorkbook.Sheets("НЗТ8").Visible = 2
ThisWorkbook.Sheets("НЗТ9").Visible = 2
ThisWorkbook.Sheets("НЗТ10").Visible = 2
ThisWorkbook.Sheets("прогнозные (смр)").Visible = 2
Dim sh As Worksheet
For Each sh In Worksheets
With sh
.Unprotect Password:="1111" 'Задайте свой пароль
.Cells.FormulaHidden = True
.EnableOutlining = True
.Protect Password:="1111", UserInterfaceOnly:=True
End With
Next sh
End Sub
Sub Enable_AccessVBOM_and_Macro()
On Error Resume Next
Key$ = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & Application.Version & _
"\Excel\Security\"

' включаем программный доступ к объектной модели проекта VBA
CreateObject("WScript.Shell").RegWrite Key$ & "AccessVBOM", 1, "REG_DWORD"

' ставим низкий уровень безопасности (применится после перезапуска Excel)
CreateObject("WScript.Shell").RegWrite Key$ & "VBAWarnings", 1, "REG_DWORD"
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim s As String
If SaveAsUI Then
s = Application.GetSaveAsFilename(Me.Name, fileFilter:="Macro Enabled Workbooks (*.xlsm), *.xlsm")
If s <> "False" Then
If s = Me.FullName Then
Me.Save
Else
Application.EnableEvents = 0
Me.SaveAs s, 52
Application.EnableEvents = 1
Workbooks.Open s
Me.Close 0
End If
End If
Cancel = True
End If
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ScreenUpdating = False
Dim wsSh As Worksheet
Sheets("WARNING").Visible = -1
For Each wsSh In ThisWorkbook.Sheets
If wsSh.Name <> "WARNING" Then wsSh.Visible = 2
Next wsSh
ThisWorkbook.Save
End Sub
[/vba]

Автор - garbol
Дата добавления - 21.05.2024 в 17:18
garbol Дата: Среда, 22.05.2024, 14:40 | Сообщение № 2
Группа: Пользователи
Ранг: Новичок
Сообщений: 44
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Нашел ответ на свой вопрос, если попытаться отредактировать ячейку в столбце, который разрешено редактировать, после двойного щелчка мышью по ячейке, имеющийся в ней текст исчезает. Проблема в том что текст исчезает, т.к. в формате ячейки стоит флажок "Скрыть формулы" после автоматической защиты.

Помогите, в каком месте прописать и что что бы нужные ячейки не становились с флажком "Скрыть формулы". Благодарю.
 
Ответить
СообщениеНашел ответ на свой вопрос, если попытаться отредактировать ячейку в столбце, который разрешено редактировать, после двойного щелчка мышью по ячейке, имеющийся в ней текст исчезает. Проблема в том что текст исчезает, т.к. в формате ячейки стоит флажок "Скрыть формулы" после автоматической защиты.

Помогите, в каком месте прописать и что что бы нужные ячейки не становились с флажком "Скрыть формулы". Благодарю.

Автор - garbol
Дата добавления - 22.05.2024 в 14:40
Pelena Дата: Среда, 22.05.2024, 14:50 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 19403
Репутация: 4555 ±
Замечаний: ±

Excel 365 & Mac Excel
Здравствуйте.
Вот эта строчка скрывает формулы
[vba]
Код
Cells.FormulaHidden = True
[/vba]
либо убрать её, либо оставить False вместо True


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЗдравствуйте.
Вот эта строчка скрывает формулы
[vba]
Код
Cells.FormulaHidden = True
[/vba]
либо убрать её, либо оставить False вместо True

Автор - Pelena
Дата добавления - 22.05.2024 в 14:50
  • Страница 1 из 1
  • 1
Поиск:

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