' 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
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, но мне так больше нравится, т.к. после отработки макроса остаются выделенными те ячейки, которые он защитил.
[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