Страницы: 1
RSS
Ошибка 1004 ячейка или диаграма защищена
 
Можно ли это как то исправить? лист должен быть защищен
Код
Sub CommandButton1_Click()
    With ActiveSheet
        LastRow = .Cells(Rows.Count, 3).End(xlUp).Row
        With .Rows(LastRow)
            .Copy
            .Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove ' на это ругается
        End With
            .Rows(LastRow + 1).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    End With
    Application.CutCopyMode = False
End Sub
 
Код
ActiveSheet.UnProtect
ActiveSheet.Protect

И вопрос решен
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
куда вставлять то их
 
Как защитить лист от пользователя, но не от макроса?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
спасибо за ответы. ни чего не получилось
 
Цитата
Thewolf911 написал:
ни чего не получилось
а что пробовалось? Вот чисто по смыслу и логике, как думаете куда надо записать строку Unprotect(снять защиту) и куда потом Protect(установить защиту)? Если снять надо перед тем как сделать что-то на листе макросом, а установить после того, как все сделали?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
а что пробовалось?
куда ток не вставлял.
 
теперь тут ругается
Код
Sub Write_in_ProtectSheet()
    With Worksheets("Ðàñ÷åò_òî÷åê_è_âåùåñòâ").Unprotect

 Sub CommandButton1_Click() [COLOR=#ED008C]теперь тут ругается[/COLOR]
    With ActiveSheet
    
        LastRow = .Cells(Rows.Count, 3).End(xlUp).Row
        With .Rows(LastRow)
            .Copy
            .Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        End With
            .Rows(LastRow + 1).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    End With
    Application.CutCopyMode = False
   With Worksheets("Ðàñ÷åò_òî÷åê_è_âåùåñòâ").Protect
    
    
End Sub
Изменено: Thewolf911 - 12.11.2019 11:12:26
 
м-да...А зачем With? И второй Sub?
В принципе, чтобы работать с макросами неплохо бы хоть какую-то теорию иметь. Хотя бы самых азов. Например, знать что такое Sub и где правильно его писать и зачем.
Код
 Sub CommandButton1_Click() 
    With ActiveSheet
        .Unprotect 'снятие защиты БЕЗ ПАРОЛЯ
        LastRow = .Cells(Rows.Count, 3).End(xlUp).Row
        With .Rows(LastRow)
            .Copy
            .Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        End With
            .Rows(LastRow + 1).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        .Protect 'установка защиты БЕЗ ПАРОЛЯ и без каких-либо параметров
    End With
    Application.CutCopyMode = False
End Sub
P.S. Не надо писать мне в личные сообщения, если не хотите в личном порядке передать мне решение Ваших проблем :)  
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Спасибо добрые люди за помощь!!!все работает. Пошел азы искать изучать.
 
а можно ли сдлать чтобы строка добавлялась на место где работаешь а не только в конец
Изменено: Thewolf911 - 12.11.2019 12:54:52
 
Цитата
Thewolf911 написал:
а можно ли сдлать чтобы
скорее всего да, только правила форума гласят, что "один вопрос - одна тема". А этот вопрос к текущей теме отношения не имеет. Но подсказку дам: ActiveCell
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Наверх