Vba excel запрет редактирования ячеек

I want to stop others from editing the cell contents in my excel sheet using VBA. Is it possible to do this?

armstrhb's user avatar

armstrhb

4,0243 gold badges20 silver badges28 bronze badges

asked Jun 14, 2010 at 13:05

raam's user avatar

1

You can first choose which cells you don’t want to be protected (to be user-editable) by setting the Locked status of them to False:

Worksheets("Sheet1").Range("B2:C3").Locked = False

Then, you can protect the sheet, and all the other cells will be protected.
The code to do this, and still allow your VBA code to modify the cells is:

Worksheets("Sheet1").Protect UserInterfaceOnly:=True

or

Call Worksheets("Sheet1").Protect(UserInterfaceOnly:=True)

answered Jun 14, 2010 at 17:31

Lance Roberts's user avatar

Lance RobertsLance Roberts

22.2k32 gold badges112 silver badges129 bronze badges

5

Try using the Worksheet.Protect method, like so:

Sub ProtectActiveSheet()
    Dim ws As Worksheet
    Set ws = ActiveSheet
    ws.Protect DrawingObjects:=True, Contents:=True, _
        Scenarios:=True, Password="SamplePassword"
End Sub

You should, however, be concerned about including the password in your VBA code. You don’t necessarily need a password if you’re only trying to put up a simple barrier that keeps a user from making small mistakes like deleting formulas, etc.

Also, if you want to see how to do certain things in VBA in Excel, try recording a Macro and looking at the code it generates. That’s a good way to get started in VBA.

answered Jun 14, 2010 at 13:54

Ben McCormack's user avatar

Ben McCormackBen McCormack

31.8k46 gold badges145 silver badges221 bronze badges

Let’s say for example in one case, if you want to locked cells from range A1 to I50 then below is the code:

Worksheets("Enter your sheet name").Range("A1:I50").Locked = True
ActiveSheet.Protect Password:="Enter your Password"

In another case if you already have a protected sheet then follow below code:

ActiveSheet.Unprotect Password:="Enter your Password"
Worksheets("Enter your sheet name").Range("A1:I50").Locked = True
ActiveSheet.Protect Password:="Enter your Password"

answered Sep 18, 2013 at 9:40

Milan Sheth's user avatar

Milan ShethMilan Sheth

84412 silver badges10 bronze badges

You can also do it on the worksheet level captured in the worksheet’s change event. If that suites your needs better. Allows for dynamic locking based on values, criteria, ect…

Private Sub Worksheet_Change(ByVal Target As Range)

    'set your criteria here
    If Target.Column = 1 Then

        'must disable events if you change the sheet as it will
        'continually trigger the change event
        Application.EnableEvents = False
        Application.Undo
        Application.EnableEvents = True

        MsgBox "You cannot do that!"
    End If
End Sub

answered Jun 15, 2010 at 15:28

Fink's user avatar

FinkFink

3,31619 silver badges26 bronze badges

Sub LockCells()

Range("A1:A1").Select

Selection.Locked = True

Selection.FormulaHidden = False

ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= False, AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows:=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True

End Sub

answered Jun 14, 2010 at 21:41

krusaint's user avatar

 

Владимир С

Пользователь

Сообщений: 50
Регистрация: 01.01.1970

Добрый день. Прошу помощи в реализации запрета на изменения данных в в ячейке или диапазоне ячеек. Данный запрет должен быть реализован только макросом. Стандартные методы не подходят.

 

Пытливый

Пользователь

Сообщений: 4587
Регистрация: 22.12.2012

Добрый.
Эмм… а защитить ячейки с невозможностью выделения — тоже не подходит?

Кому решение нужно — тот пример и рисует.

 

The_Prist

Пользователь

Сообщений: 14182
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

#3

17.12.2015 13:39:11

Цитата
Владимир С написал: Данный запрет должен быть реализован только макросом

вот с этого момента поподробнее. А если я отключу работу макросов — что делать будете? Просто странное желание: не защитить нормально, а именно макросом. Поэтому хочется услышать цель, а не хотелку.
По сути запретить изменять ячейки можно таким кодом в модуле книги:

Код
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    With Application
    .EnableEvents = 0: .Undo: .EnableEvents = 1
    End With
End Sub

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Владимир С

Пользователь

Сообщений: 50
Регистрация: 01.01.1970

Есть определенный функционал(надстройка) который выполняет определенный действия ссылаясь на выделенную ячейку, запрещать стандартным способом изменения можно, но тогда остается возможность пользователю копировать все данные с листа, а это должно быть запрещено. Когда стоит запрет на выделение заблокированы ячеек тогда функционал не может работать так как не видит выделенные для него ячейки.

 

Владимир С

Пользователь

Сообщений: 50
Регистрация: 01.01.1970

#5

17.12.2015 13:53:15

Цитата
The_Prist написал:
А если я отключу работу макросов — что делать будете?

Стоит двойная защита листа для пользователя, как макросом, макросы работаю но лист остается защищен и ручная защита стандартным способом. Если отключить работу макросов тогда пользователь ничего не сделает что от него требуется.

Изменено: Владимир С17.12.2015 14:19:19

 

The_Prist

Пользователь

Сообщений: 14182
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

#6

17.12.2015 14:06:53

Цитата
Владимир С написал:
но тогда остается возможность пользователю копировать все данные с листа

так цель запретить копировать данные?
Или

Цитата
Владимир С написал:
в реализации запрета на изменения данных в в ячейке или диапазоне ячеек

?
Реализацию запрета изменения кодом я показал.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Владимир С

Пользователь

Сообщений: 50
Регистрация: 01.01.1970

#7

17.12.2015 14:07:00

Цитата
The_Prist написал:
По сути запретить изменять ячейки можно таким кодом в модуле книги:

Код супер но он запрещает изменение все ячеек, а как указать диапазон который нужно запретить?

 

The_Prist

Пользователь

Сообщений: 14182
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

#8

17.12.2015 14:09:20

Код
If intersect(target,sh.range("A1:C10")) is nothing then exit sub

вставить перед With Application
A1:C10 — диапазон ячеек, в которых необходимо запретить ввод данных.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Владимир С

Пользователь

Сообщений: 50
Регистрация: 01.01.1970

 

Владимир С

Пользователь

Сообщений: 50
Регистрация: 01.01.1970

#10

17.12.2015 14:18:39

Цитата
The_Prist написал:
так цель запретить копировать данные?

Да, этот способ проще для реализации защиты от копирования, а также защита от изменений.

0 / 0 / 0

Регистрация: 14.02.2015

Сообщений: 104

1

Макрос запрещающий редактирование текста в ячейке выделенной определенным цветом

22.07.2015, 00:08. Показов 11705. Ответов 34


Студворк — интернет-сервис помощи студентам

Добрый вечер .
пожалуйста подскажите макрос который бы запрещал редактирование ячеек определенного цвета. Именно запретить Ввод данных в них.
В документе есть ряд ячеек имеющих красный цвет заливки
Нужно сделать так чтобы при условии если ячейка имеет заливку красного цвета ее редактирование становилось не возможным.
Реально ли такое сделать?



0



chumich

2079 / 1232 / 464

Регистрация: 20.12.2014

Сообщений: 3,237

22.07.2015, 03:24

2

Цитата
Сообщение от esboy21
Посмотреть сообщение

Реально ли такое сделать?

Можно, например, так:

Visual Basic
1
2
3
4
5
6
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Interior.ColorIndex = 3 Then
    MsgBox ("Данные не вводить!")
    Range("A1").Select
End If
End Sub

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

Вложения

Тип файла: rar защита ячейки.rar (13.2 Кб, 69 просмотров)



2



15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

22.07.2015, 09:03

3

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



0



2079 / 1232 / 464

Регистрация: 20.12.2014

Сообщений: 3,237

22.07.2015, 09:34

4

Цитата
Сообщение от Казанский
Посмотреть сообщение

Способ chumich можно обойти путем копирования-вставки.

Разве? А я думал, чтобы что-то вставить в ячейку, ее нужно сначала выделить Казанский, можете продемонстрировать на приложенном файле? А то у меня не получается



0



15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

22.07.2015, 09:50

5

chumich, пожалуйста: в I2 пишем что-то, выделяем I1:I2, копируем, выделяем F3, вставляем.
Если бы еще цвет при этом не менялся, можно было бы в Worksheet_Change отследить изменение ячейки с цветом и сделать application.Undo, а так придется, например, при открытии книги запомнить диапазон красных ячеек и в Worksheet_Change сравнивать с ним.
Опять же непонятно, хочет ли esboy21 добавлять красные ячейки в процессе работы с книгой?



0



2079 / 1232 / 464

Регистрация: 20.12.2014

Сообщений: 3,237

22.07.2015, 10:20

6

Цитата
Сообщение от Казанский
Посмотреть сообщение

выделяем F3

Казанский, поверите или нет, но у меня не вставляется . Как только я выделяю F3 — вылезает сообщение и, при нажатии ОК, выделение уходит на А1. Вы каким образом выделяете?



0



chumich

2079 / 1232 / 464

Регистрация: 20.12.2014

Сообщений: 3,237

22.07.2015, 10:54

7

Ни в коем случае не отказываясь от предыдущего решения, потому что так и не получил подтверждения того, что оно не работает , сделал вариант с использованием стандартных средств (предварительно нужно снять блокировку ячеек со всего листа):

Visual Basic
1
2
3
4
5
6
7
8
9
10
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Interior.ColorIndex = 3 Then
    ActiveSheet.Unprotect
    Selection.Locked = True
    Selection.FormulaHidden = False
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Else
    ActiveSheet.Unprotect
End If
End Sub

Вложения

Тип файла: rar защита ячейки1.rar (9.7 Кб, 27 просмотров)



2



15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

22.07.2015, 13:40

8

Цитата
Сообщение от chumich
Посмотреть сообщение

поверите или нет, но у меня не вставляется . Как только я выделяю F3 — вылезает сообщение и, при нажатии ОК, выделение уходит на А1. Вы каким образом выделяете?

Почему? F3 — не красная. Выделяю как угодно — мышью, стрелками, вводя F3 в поле Имя или в Ctrl+G — ссылка.



1



2079 / 1232 / 464

Регистрация: 20.12.2014

Сообщений: 3,237

22.07.2015, 14:15

9

Цитата
Сообщение от Казанский
Посмотреть сообщение

F3 — не красная

Понял . С F4 перепутал. Но, в таком случае и стандартная защита, по-моему, не сработает. Или придется весь лист блокировать от изменений, или устанавливать заранее блокировку выделенных ячеек. В смысле, сначала снимать блокировку со всех, потом устанавливать, вручную, на красные. Потом ставить защиту на лист. Думаю, речь идет о случайных изменениях, и ТС имел ввиду обычного пользователя, который в процессе случайно выделит и изменит значение ячейки. Не думаю, что найдется злоумышленник вашего уровня знаний и сообразительности, который сделает так, как сделали вы . Так, что оба варианта сработают.



0



2079 / 1232 / 464

Регистрация: 20.12.2014

Сообщений: 3,237

22.07.2015, 15:02

10

Казанский, а так — вставите?



0



0 / 0 / 0

Регистрация: 14.02.2015

Сообщений: 104

22.07.2015, 17:45

 [ТС]

11

Ячейки выделенные красным цветом будут появляться в процессе работы с книгой.
Для них создано условие для заливки красным цветом.
Часть ячеек добавляется в конец таблицы путем копирования
Потом по результатам выполняется ли условие или нет ячейки заливается красным цветом,
Если ячейки без заливки то они должны редактироваться



0



2079 / 1232 / 464

Регистрация: 20.12.2014

Сообщений: 3,237

22.07.2015, 20:36

12

esboy21, вы еще не пояснили один момент: это защита от случайного непреднамеренного изменения данных или кто-то будет стараться и искать способы изменить данные в этих ячейках.



0



esboy21

0 / 0 / 0

Регистрация: 14.02.2015

Сообщений: 104

22.07.2015, 21:12

 [ТС]

13

Попробовал вариант .

Visual Basic
1
2
3
4
5
6
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Interior.ColorIndex = 3 Then
    MsgBox ("Данные не вводить!")
    Range("A1").Select
End If
End Sub

Но текст в ячейки залитые красным вводится .
И еще одна трудность с условным форматированием диапазона ячеек.
Нужно если дата в столбце A соответствует вызодному дню суб. или вс. залить диапазон ячеек в диапазоне от C3 до Q 12 красным.
И если выделить и скопировать диапазон от A3 до Q13 условие форматирование сохранялось для всего форматируемого диапаона.
Получается так что условие сохраняется для одной ближайшей к дате ячейке из столбца С

Вложения

Тип файла: rar Книга1.rar (9.6 Кб, 14 просмотров)



0



0 / 0 / 0

Регистрация: 14.02.2015

Сообщений: 104

22.07.2015, 21:14

 [ТС]

14

chumich, это защита от случайного ввода данных .
Если день выходной то данные в таблицу вводить нельзя . Вот чего нужно избежать



0



chumich

2079 / 1232 / 464

Регистрация: 20.12.2014

Сообщений: 3,237

22.07.2015, 21:49

15

Цитата
Сообщение от esboy21
Посмотреть сообщение

Но текст в ячейки залитые красным вводится

У вас другой индекс красного цвета. Замените 3 на 2.

Visual Basic
1
2
3
4
5
6
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Interior.ColorIndex = 2 Then
    MsgBox ("Данные не вводить!")
    Range("A1").Select
End If
End Sub

Цитата
Сообщение от esboy21
Посмотреть сообщение

И еще одна трудность с условным форматированием диапазона ячеек.

Не совсем понял, но у меня вроде скопировалось с сохранением форматирования.

Вложения

Тип файла: rar Книга2.rar (14.7 Кб, 25 просмотров)



0



0 / 0 / 0

Регистрация: 14.02.2015

Сообщений: 104

22.07.2015, 23:40

 [ТС]

16

chumich,
С запретом ввода в ячейки красного цвета все ок теперь работает .
Но если заливка не красная а например сероватая то ввод тоже не возможен выходит сообщение.
Еще бы разобраться с условным форматированием.

на примере первой даты в таблице
В столбце А указана дата .
А3 в примере первого дня
И если эта дата соответствует субботе или воскресенью то при помощи условного форматирования ячейки в диапазоне от С3 до Q12 должны окраситься в красный цвет
Для этого исполльзую формулу следующего вида в условном форматировании =ДЕНЬНЕД($A$3;2)=6 и =ДЕНЬНЕД($A$3;2)=7
и чтобы продолжать таблицу я выделяю ячейки пренадлежащие последнему заполненному дню и копирую вставляя ниже
При вставке условное форматирование срабатывает только для одной ячейки а не целого диапазона.



0



2079 / 1232 / 464

Регистрация: 20.12.2014

Сообщений: 3,237

23.07.2015, 02:15

17

Посмотрите этот вариант. Вам ничего не нужно копировать и вставлять. Просто введите в ячейку А14 следующее число, всё остальное сделается само. Затем в А25 — проверите выходные. И т. д.
Единственные ограничения для этого варианта — первый день на листе должен быть рабочим, и числа должны вводиться через 11 ячеек: А3, А14, А25 и т. д. (но вроде они у вас так и вводятся).



0



2079 / 1232 / 464

Регистрация: 20.12.2014

Сообщений: 3,237

23.07.2015, 02:22

18

Забыл написать: после ввода числа нажмите Enter. И еще — первую таблицу не удаляйте. Без нее работать не будет.



0



6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

23.07.2015, 08:04

19

Цитата
Сообщение от esboy21
Посмотреть сообщение

Ячейки выделенные красным цветом будут появляться в процессе работы с книгой.
Для них создано условие для заливки красным цветом.

так что тут никак не сработает .Interior.ColorIndex…



0



0 / 0 / 0

Регистрация: 14.02.2015

Сообщений: 104

23.07.2015, 21:07

 [ТС]

20

chumich, Протестировал последний вариант .

Если ввожу дату вручную с клавиатуры и нажимаю Enter то ничего не добавляется ниже в таблице.
Хотя первые пару раз как то получилось а потом перестало работать.
А вот если вручную выделяю нужный диапазон копирую и вставляю ниже то все срабатывает и цвета меняются .
Я в ячейку с датой вставил формулу которая берет дату из предыдущего дня и прибавляет к нему 1.

Можно ли сделать так чтобы привязать процесс добавления строк с новой датой к нажатию кнопки ?
Чтобы при этом в ячейке с датой стояла формула (Предыдущая дата +1 )



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

23.07.2015, 21:07

Помогаю со студенческими работами здесь

Выделение текста в ячейке цветом по дате и значению
Добрый день! Уважаемые Гуру, прошу помочь составить формулу по следующим параметрам:
есть 2…

Редактирование текста по разделам по определенным параметрам
Необходимо написать макрос, осуществляющий форматирование текста разделов 2,3,7,8 по определенным…

Макрос удаления текста выделенной области, удовлетворяющего заданному условию
Приветствую, знатоки VBA. Очень нужна ваша помощь. Требуется написать макрос MTextClear, который…

Макрос разбивки текста в ячейке
Добрый день!

Возникло непреодалимое желание разбить текст в 1 ячейке на несколько ячеек. Текс =…

Выделить часть текста цветом в ячейке по шаблону на всем листе(не пустые ячейки)
Всем доброго вечера.
Есть интересная задача. Нужно выделить часть текста в ячейке которая…

Макрос — удаление текста между символами в ячейке
Есть эксель файл, в определенном столбце на каждой строке текст с html тегами. Нужен макрос, чтобы…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

20

Запрет на редактирования записи

DKeT

Дата: Вторник, 23.04.2019, 11:50 |
Сообщение № 1

Группа: Пользователи

Ранг: Участник

Сообщений: 52


Репутация:

3

±

Замечаний:
20% ±


Excel 2007

Здравствуйте, подскажите пожалуйста, как в Эксель сделать запрет на редактирования записи которая уже есть. Вся суть заключается в том, что у нас есть записи, и чтоб случайно не нажать и что то не удалить, нужно что то вроде предупреждения » Что действительно хотите изменить запись», а там где пустые ячейки, запись спокойно добавлялась, и после уже сама не могла редактироваться , как вообще это можно реализовать?

К сообщению приложен файл:

4394333.xlsm
(54.7 Kb)

 

Ответить

K-SerJC

Дата: Вторник, 23.04.2019, 12:06 |
Сообщение № 2

Группа: Проверенные

Ранг: Обитатель

Сообщений: 487


Репутация:

86

±

Замечаний:
0% ±


Excel 2013

Доброго дня!
например
снимаете защиту всех ячеек листа, защищаете лист, после добавления записи, делаете нужные ячейки защищенными
[vba]

Код

Selection.Locked = True

[/vba]


Благими намерениями выстелена дорога в АД.

 

Ответить

DKeT

Дата: Вторник, 23.04.2019, 12:10 |
Сообщение № 3

Группа: Пользователи

Ранг: Участник

Сообщений: 52


Репутация:

3

±

Замечаний:
20% ±


Excel 2007

K-SerJC, это получается что при кадом занесении данных так делать нужно будет?

 

Ответить

K-SerJC

Дата: Вторник, 23.04.2019, 12:22 |
Сообщение № 4

Группа: Проверенные

Ранг: Обитатель

Сообщений: 487


Репутация:

86

±

Замечаний:
0% ±


Excel 2013

вот так можно

К сообщению приложен файл:

DKeT.xlsm
(58.4 Kb)


Благими намерениями выстелена дорога в АД.

Сообщение отредактировал K-SerJCВторник, 23.04.2019, 12:23

 

Ответить

DKeT

Дата: Вторник, 23.04.2019, 12:27 |
Сообщение № 5

Группа: Пользователи

Ранг: Участник

Сообщений: 52


Репутация:

3

±

Замечаний:
20% ±


Excel 2007

K-SerJC, а тут же получается, что все ячейки заблокированы, а как сделать чтоб, если есть пустые ячейки, то в них можно было заносить данные ?

 

Ответить

K-SerJC

Дата: Вторник, 23.04.2019, 13:55 |
Сообщение № 6

Группа: Проверенные

Ранг: Обитатель

Сообщений: 487


Репутация:

86

±

Замечаний:
0% ±


Excel 2013

а тут же получается, что все ячейки заблокированы

пустые ячейки в файле не заблокированы, в них вносите данные они блокируются


Благими намерениями выстелена дорога в АД.

 

Ответить

DKeT

Дата: Вторник, 23.04.2019, 14:05 |
Сообщение № 7

Группа: Пользователи

Ранг: Участник

Сообщений: 52


Репутация:

3

±

Замечаний:
20% ±


Excel 2007

K-SerJC, вот сейчас смотрю, и как вы говорите,то тут вообще не выдает нечего и те ячейки которые пустые или нет, заполняются, сейчас пересмотрела, и получается что оон работает через раз, где то нормально, а где то нет

К сообщению приложен файл:

3231963.png
(41.0 Kb)

Сообщение отредактировал DKeTВторник, 23.04.2019, 14:09

 

Ответить

K-SerJC

Дата: Вторник, 23.04.2019, 14:24 |
Сообщение № 8

Группа: Проверенные

Ранг: Обитатель

Сообщений: 487


Репутация:

86

±

Замечаний:
0% ±


Excel 2013

через раз, где то нормально, а где то нет

это потому что я не выделил все заполненные ячейки и не заблокировал их…

и добавил отключение макроса если защита листа не установлена.
проверяйте

К сообщению приложен файл:

9434478.xlsm
(58.1 Kb)


Благими намерениями выстелена дорога в АД.

 

Ответить

DKeT

Дата: Вторник, 23.04.2019, 16:00 |
Сообщение № 9

Группа: Пользователи

Ранг: Участник

Сообщений: 52


Репутация:

3

±

Замечаний:
20% ±


Excel 2007

K-SerJC, а можно как то сделать, чтоб если нам нужно изменить значение в этих записях которые заблокированы, чтоб выдавалась что то вроде внести изменения да нет? , а так получается что они заблокированы

 

Ответить

K-SerJC

Дата: Вторник, 23.04.2019, 16:23 |
Сообщение № 10

Группа: Проверенные

Ранг: Обитатель

Сообщений: 487


Репутация:

86

±

Замечаний:
0% ±


Excel 2013

так?

К сообщению приложен файл:

5811444.xlsm
(59.1 Kb)


Благими намерениями выстелена дорога в АД.

 

Ответить

DKeT

Дата: Вторник, 23.04.2019, 16:25 |
Сообщение № 11

Группа: Пользователи

Ранг: Участник

Сообщений: 52


Репутация:

3

±

Замечаний:
20% ±


Excel 2007

K-SerJC, Да, то что нужно,благодарю

 

Ответить

DKeT

Дата: Вторник, 23.04.2019, 16:44 |
Сообщение № 12

Группа: Пользователи

Ранг: Участник

Сообщений: 52


Репутация:

3

±

Замечаний:
20% ±


Excel 2007

K-SerJC, а можно еще вопрос, почему из за заблокированных ячеек, выдает ошибку на цветную строку?

К сообщению приложен файл:

4128124.xlsm
(63.2 Kb)

 

Ответить

DKeT

Дата: Вторник, 23.04.2019, 16:56 |
Сообщение № 13

Группа: Пользователи

Ранг: Участник

Сообщений: 52


Репутация:

3

±

Замечаний:
20% ±


Excel 2007

, а скажите еще пожалуйста, как сделать , что где пустые строки это оповещение не отображалось?

 

Ответить

K-SerJC

Дата: Вторник, 23.04.2019, 18:59 |
Сообщение № 14

Группа: Проверенные

Ранг: Обитатель

Сообщений: 487


Репутация:

86

±

Замечаний:
0% ±


Excel 2013

а скажите еще пожалуйста, как сделать , что где пустые строки это оповещение не отображалось?

в пустых ячейках не должна стоять галочка защищенная ячейка.
в том файле я выложил на пустых не отображается сообщение
вот это условие:
[vba]

Код

If Target.Locked = True Then

[/vba]


Благими намерениями выстелена дорога в АД.

 

Ответить

DKeT

Дата: Среда, 24.04.2019, 09:10 |
Сообщение № 15

Группа: Пользователи

Ранг: Участник

Сообщений: 52


Репутация:

3

±

Замечаний:
20% ±


Excel 2007

K-SerJC, а как ее убрать?

 

Ответить

K-SerJC

Дата: Среда, 24.04.2019, 09:28 |
Сообщение № 16

Группа: Проверенные

Ранг: Обитатель

Сообщений: 487


Репутация:

86

±

Замечаний:
0% ±


Excel 2013

K-SerJC, а как ее убрать?

выделяете ячейки, ПКМ, в меню «формат ячеек», Защита/снять галочку защищаемая ячейка

по умолчанию на новом файле эксель все включены


Благими намерениями выстелена дорога в АД.

Сообщение отредактировал K-SerJCСреда, 24.04.2019, 09:29

 

Ответить

NeBotan

Дата: Четверг, 13.05.2021, 19:12 |
Сообщение № 17

Группа: Пользователи

Ранг: Прохожий

Сообщений: 3


Репутация:

0

±

Замечаний:
0% ±


K-SerJC, как отключить макрос, если защита листа не установлена?

 

Ответить

Как правило, вам необходимо защитить весь рабочий лист, чтобы заблокировать ячейки от редактирования. Есть ли способ заблокировать ячейки без защиты всего рабочего листа? Эта статья рекомендует вам метод VBA.

Блокируйте указанные ячейки без защиты всего рабочего листа с помощью VBA


Блокируйте указанные ячейки без защиты всего рабочего листа с помощью VBA

Предположим, вам нужно заблокировать ячейки A3 и A5 на текущем листе, следующий код VBA поможет вам добиться этого, не защищая весь лист.

1. Щелкните правой кнопкой мыши вкладку листа и выберите Просмотреть код из контекстного меню.

2. Затем скопируйте и вставьте приведенный ниже код VBA в окно кода. Смотрите скриншот:

Код VBA: блокировка указанных ячеек без защиты всего рабочего листа

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column = 1 Then
        If Target.Row = 3 Or Target.Row = 5 Then
            Beep
            Cells(Target.Row, Target.Column).Offset(0, 1).Select
        End If
    End If
End Sub

Внимание: В коде Колонка 1, Ряд = 3 и Ряд = 5 указывает, что ячейки A3 и A5 на текущем листе будут заблокированы после запуска кода. Вы можете изменить их по своему усмотрению.

3. нажмите другой + Q клавиши одновременно, чтобы закрыть Microsoft Visual Basic для приложений окно.

Теперь ячейки A3 и A5 заблокированы на текущем листе. Если вы попытаетесь выбрать ячейку A3 или A5 на текущем листе, курсор автоматически переместится в правую соседнюю ячейку.


Статьи по теме:

  • Как заблокировать сразу все ссылки на ячейки в формулах в Excel?
  • Как заблокировать или защитить ячейки после ввода данных или ввода в Excel?
  • Как заблокировать или разблокировать ячейки на основе значений в другой ячейке в Excel?
  • Как заблокировать изображение / изображение в ячейке или внутри нее в Excel?
  • Как заблокировать ширину и высоту ячейки от изменения размера в Excel?

Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (22)


Оценок пока нет. Оцените первым!

Like this post? Please share to your friends:
  • Vba excel значение ячейки как строка
  • Vba excel значение ячейки в массив
  • Vba excel значение ячейки в код
  • Vba excel значение ячейки в закрытой книге
  • Vba excel значение по модулю