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

Вход

Регистрация

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

 

= Мир MS Excel/Защита формул - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Защита формул (Формулы/Formulas)
Защита формул
gidrademon Дата: Воскресенье, 16.05.2021, 06:51 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Выдает ошибку 1004 подскажите как исправить?

[vba]
Код
Sub Макрос3()
'
' Макрос3 Макрос
'

'
Set App = CreateObject("excel.application")
App.Visible = False
App.Workbooks.Open ("C:\Users\GIDRADemon\Desktop\Заготовки Смет")
Workbooks.Open Filename:="Формулы.xls"
Windows("Формулы.xls").Activate
Range("C4:C16").Select
Selection.Copy
Windows("Сибит-Кирпич.xlsm").Activate
Range("C4:C16").Select
ActiveSheet.Paste
End Sub
[/vba]

Вообще пытаюсь сделать так чтобы на время расчета формулы вставлялись, а на конец расчета когда люди будут нажимать сохранить чтобы сохраняло без формул в файле, а формулу брались с того файла который находиться в обменнике, просто сейчас все формулы в файле которых пользуются многие и делать там что-то новое не хочется так как он может уйти за пределы компании, если знаете как можно по другому защитить, то пожалуйста поделитесь советом
 
Ответить
СообщениеВыдает ошибку 1004 подскажите как исправить?

[vba]
Код
Sub Макрос3()
'
' Макрос3 Макрос
'

'
Set App = CreateObject("excel.application")
App.Visible = False
App.Workbooks.Open ("C:\Users\GIDRADemon\Desktop\Заготовки Смет")
Workbooks.Open Filename:="Формулы.xls"
Windows("Формулы.xls").Activate
Range("C4:C16").Select
Selection.Copy
Windows("Сибит-Кирпич.xlsm").Activate
Range("C4:C16").Select
ActiveSheet.Paste
End Sub
[/vba]

Вообще пытаюсь сделать так чтобы на время расчета формулы вставлялись, а на конец расчета когда люди будут нажимать сохранить чтобы сохраняло без формул в файле, а формулу брались с того файла который находиться в обменнике, просто сейчас все формулы в файле которых пользуются многие и делать там что-то новое не хочется так как он может уйти за пределы компании, если знаете как можно по другому защитить, то пожалуйста поделитесь советом

Автор - gidrademon
Дата добавления - 16.05.2021 в 06:51
Alex_ST Дата: Пятница, 21.05.2021, 22:08 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Про защиту формул посмотрите пост Макрос "Formula_Protect"



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеПро защиту формул посмотрите пост Макрос "Formula_Protect"

Автор - Alex_ST
Дата добавления - 21.05.2021 в 22:08
Alex_ST Дата: Пятница, 21.05.2021, 22:18 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
[vba]
Код
Sub Formula_Protect_with_CellValidation()
   If ActiveWindow.RangeSelection.SpecialCells(xlCellTypeFormulas) Is Nothing Then Exit Sub
   ActiveWindow.RangeSelection.SpecialCells(xlCellTypeFormulas).Select
   With Selection.Validation
      .Delete
      .Add Type:=xlValidateCustom, Formula1:="="""""
      .ErrorTitle = "В ячейке формула!": .ErrorMessage = "Ввод данных запрещён" & vbCrLf & "Нажмите ""ОТМЕНА"""
      .ShowError = True
   End With
End Sub

Sub Formula_Protect_with_CellValidation_Delete()
   If ActiveWindow.RangeSelection.SpecialCells(xlCellTypeFormulas) Is Nothing Then Exit Sub
   ActiveWindow.RangeSelection.SpecialCells(xlCellTypeFormulas).Select
   With Selection.Validation
      .Delete
   End With
End Sub
[/vba]Можно, конечно, и немного соркратить, убрав Select, но мне так больше нравится, т.к. после отработки макроса остаются выделенными те ячейки, которые он защитил.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение[vba]
Код
Sub Formula_Protect_with_CellValidation()
   If ActiveWindow.RangeSelection.SpecialCells(xlCellTypeFormulas) Is Nothing Then Exit Sub
   ActiveWindow.RangeSelection.SpecialCells(xlCellTypeFormulas).Select
   With Selection.Validation
      .Delete
      .Add Type:=xlValidateCustom, Formula1:="="""""
      .ErrorTitle = "В ячейке формула!": .ErrorMessage = "Ввод данных запрещён" & vbCrLf & "Нажмите ""ОТМЕНА"""
      .ShowError = True
   End With
End Sub

Sub Formula_Protect_with_CellValidation_Delete()
   If ActiveWindow.RangeSelection.SpecialCells(xlCellTypeFormulas) Is Nothing Then Exit Sub
   ActiveWindow.RangeSelection.SpecialCells(xlCellTypeFormulas).Select
   With Selection.Validation
      .Delete
   End With
End Sub
[/vba]Можно, конечно, и немного соркратить, убрав Select, но мне так больше нравится, т.к. после отработки макроса остаются выделенными те ячейки, которые он защитил.

Автор - Alex_ST
Дата добавления - 21.05.2021 в 22:18
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Защита формул (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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