Страницы: 1
RSS
Открытие сроки защищенного листа для редактирования по условию.
 
Лист наполнен формулами и защищён, надо разрешить редактирование строки по условию и удалить формулы. файлик прилагаю

записано рекордером
Код
'в этом месте надо как то вставить код чтоб он искал в списке женское имя и если находил то далее снятие защиты и ....
    ActiveSheet.Unprotect
    Range("A8:B8,D8:L8").Select
    Range("D8").Activate
    Selection.ClearContents
    Selection.Locked = False
    Selection.FormulaHidden = False
    Range("C9").Select
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowInsertingRows:=True, AllowDeletingRows:=True
End Sub[CODE][/CODE]
Изменено: Серёжа - 13.02.2018 18:25:08
 
вот что смог самостоятельно сделать, хоть и работает но все же немного не так как хочется. что тут поправить чтобы макрос запускался сразу после появления данных в активной ячейке?



Код
[CODE]Sub Test1()
Dim Rng As Range, iVal As Variant 
    iVal = ActiveCell 
   Set Rng = Sheets("Лист3").Columns(1).Find(iVal, , xlFormulas, xlWhole)
   If Rng Is Nothing Then 
    MsgBox ""
    Exit Sub
   End If  
   Set TmpCell = ActiveCell
   TmpCell.Offset(0, -2).Select
   Selection.ClearContents
   Selection.Locked = False
   Selection.FormulaHidden = False
   TmpCell.Offset(0, -1).Select
   Selection.ClearContents
   Selection.Locked = False
   Selection.FormulaHidden = False
   TmpCell.Offset(0, 1).Select
   Selection.ClearContents
   Selection.Locked = False
   Selection.FormulaHidden = False
   TmpCell.Offset(0, 2).Select
   Selection.ClearContents
   Selection.Locked = False
   Selection.FormulaHidden = False
   TmpCell.Offset(0, 3).Select
   Selection.ClearContents
   Selection.Locked = False
   Selection.FormulaHidden = False
   ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
       , AllowInsertingRows:=True, AllowDeletingRows:=True
End Su
Изменено: Серёжа - 13.02.2018 18:23:51
 
Серёжа, Вы не заметили, как у других выглядит отформатированный код? Вот и Вы оформляйте аналогично - для это существует даже специальная кнопка: <...>. Исправьте свои сообщения.
P.S. И уходите от Select...
 
1. Если у Вас в в ячейке записано жен. имя, то формулы сотрутся. А если после этого снова муж.?
Изменено: Михаил Лебедев - 12.02.2018 09:59:49 (добавил файл-пример)
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Юрий М, Исправил сообщение, извиняюсь что не сразу правильно их оформлял) по поводу Select читал в интернете но не всегда понимаю как без него назначить ячейку...да и мало вабще понимаю в макросах..

Михаил Лебедев, спасибо за файлик с кодом, все прекрасно работает. Ваш вопрос очень правильный(и чего я сам не подумал об этом), как вариант при смене имени обратно на мужское создам скрытую строку в самом начале листа(или на отдельном скрытом листе)  и буду её копировать(если конечно осилю копирование по условию)


извиняюсь если не в тему...а можно сюда как то прикрутить чтоб в конце работы макроса активировалась ячейка следующая за заполненной(то есть первая пустая)?
Изменено: Серёжа - 13.02.2018 19:23:01
 
Цитата
Серёжа написал:
активировалась ячейка следующая за заполненной(то есть первая пустая)?
Так всё-таки, следующая или первая пустая?
Если следующая, то
Код
ActiveCell.Offset(1, 0).Select
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Цитата
Так всё-таки, следующая или первая пустая?
чтоб активной стала первая пустая  в диапазоне С8:С100


Решено (взято с интернета)
Код
Sub dd()
  Range("C101").Activate
  On Error Resume Next
  Range("C8:C100").SpecialCells(xlCellTypeBlanks)(1).Activate
End Sub
Изменено: Серёжа - 15.02.2018 11:05:41
Страницы: 1
Наверх