Страницы: 1
RSS
как сделать занос данных в ячейку одноразовым?
 
Всем доброго дня!  
возникла необходимость сделать так чтобы в ячейку таблицы (в моем вложенном файле я обозначил эти ячейки бледнозеленой заливкой) данные можно было вносить только 1 раз (эдакий прожиг) чтобы макрос не давал повторный (изменение) занос данных. Данные заносятся в ячейку в виде цифры (у меня это сумма в рублях) и еще не маловажно чтобы "след" оставался кто внес данные, лучше в виде заполненного Примечания (или соседней ячейки в качестве примечания), да так чтобы внести данные в ячейку не заполнив Примечание(соседнюю ячейку) не возможно было.  
Помогите пожалуйста обиграть этот момент.
 
А если пользователь ввел данные, а потом схватился за голову, что ошибся? Не? Исправить не дадим?  
А чем инструменты совместной работы не устраивают?
Кому решение нужно - тот пример и рисует.
 
В модуль листа:  
Option Explicit  
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)  
   If Target.Cells.Count > 1 Then Exit Sub  
   If Not Application.Intersect(Range("M2:Z83"), Target) Is Nothing Then  
       If ActiveCell <> "" Then  
           Range("M1").Select  
           MsgBox "А по рукам не хотите?", vbQuestion  
       End If  
   End If  
End Sub  
При выделении заполненных ячеек диапазона активируется М1
 
Мой способ:  
выделяете бледно-зеленые ячейки. через формат убираете галочку "защищаемая ячейка". Защищаете лист. пишете событие на лист  
 
Private Sub Worksheet_Change(ByVal Target As Range)  
   If Not Intersect(Range("M2:Z83"), Target) Is Nothing Then  
       ActiveSheet.Unprotect  
       Target.Locked = True  
       ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:=False  
   End If  
End Sub  
 
Если защита с паролем, то в макросе прописываете этот пароль, а макрос скрываете.  
 
Посмотрите пример (тут лист без пароля)  
________________________  
khafizovtt@gmail.com
Учимся сами и помогаем другим...
 
замечательно, спасибо большое!  
только вот как бы еще реализовать момент чтобы остался след, кто и когда внес данные. (можно в соседней с активной ячейкой по строчке ячейке) Можно сделать так чтобы после ввода данных в ячейку, автоматом в соседнюю ячейку вносились бы текущие дата и время?
 
{quote}{login=gogy913}{date=07.09.2012 11:01}{thema=}{post}как бы еще реализовать момент чтобы остался след, кто и когда внес данные. (можно в соседней с активной ячейкой по строчке ячейке){/post}{/quote}Виктор (vikttur) вчера, кажется, делал - кто и когда. А вообще этот вопрос неоднократно уже обсуждался.
 
{quote}{login=gogy913}{date=07.09.2012 11:01}{thema=}{post} автоматом в соседнюю ячейку вносились бы текущие дата и время?{/post}{/quote}А какая ячейка будет соседней, например, для N2?
 
Попробуйте так:  
 
Private Sub Worksheet_Change(ByVal Target As Range)  
   If Not Intersect(Range("M2:Z83"), Target) Is Nothing Then  
       ActiveSheet.Unprotect  
       Target.Locked = True  
       Target.AddComment.Text "Автор последних изменений: " & Application.UserName & vbCrLf & "Дата последних изменений: " & CStr(Now)  
       ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:=False  
   End If  
End Sub  
________________________  
khafizovtt@gmail.com
Учимся сами и помогаем другим...
 
Имя компьютера:  
CreateObject("WScript.Network").ComputerName  
Дата и время:  
Now  
Имя пользователя:  
Application.UserName  
 
А ведь достаточно воспользоваться окошком поиска...
 
ber$erk, и остальные спасибо большое!    
Теперь буду сдруживать другие макросы с защищенными ячейками.
 
Доброго всем времени суток. подскажите пожалуйста, как сделать чтобы запретить повторное изменение только в одном столбце (стоимость), а в остальных местах на странице можно было производить повторные изменения.  
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
 
прошу прощения за большой размер файла. вопрос остается открыт. как запретить повторное редактирование всего одного столбца в файле.  за помощь в долгу не останусь
Страницы: 1
Читают тему
Наверх