Страницы: Пред. 1 2
RSS
Изменить способ вставки по умолчанию
 
Простите сразу если что не так....Я новенький)
 
Еще раз.
- вставляем что либо в столбец Q
- в ячейку Q+7 (столбец X) вставляем текущую дату
- в ячейку Q-12 (столбец E) вставляем День
- в ячейку Q-11 (столбец F) вставляем номер следующег месяца
Так?
Согласие есть продукт при полном непротивлении сторон
 
В модуль листа 'Отсюда'. Вместо всего, что у Вас там есть
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cell As Range
On Error Resume Next
Application.EnableEvents = False
    For Each cell In Target
       If Not Intersect(cell, Range("Q:Q")) Is Nothing Then
            With cell
               .Offset(0, 7).Value = Date
               .Offset(0, -12).Value = Day(Date)
               .Offset(0, -11).Value = Month(Date) + 1
            End With
       End If
    Next cell
Application.EnableEvents = True
End Sub
Согласие есть продукт при полном непротивлении сторон
 
Я понял что вы хотите мне сделать) Спасибо Вам ОГРОМНОЕ за помощь!


Все так.
Только:
1. В столбец Q мы что-либо не вставляем, а именно пишем. (не знаю надо это или нет))
2. Ячейка Q-12. Нужен день который будет через 30 дней после даты ввода в Q. Т.е. если сегодня 16.10 то через 30 дней будет 15.11 (В ячейке Q-12 должно быть 15)...Это если в месяце 31 день...А если б было 30 то 16.
2. Если в столбце Q что-нибудь случайно, а может и не случайно захотят отредактировать - то это приведет к смене дат чего нельзя допустить. Надо сделать так чтобы ячейка Q после всего этого стала защищаемой. Соответственно еще добавив снятие и постановку листа с защиты.
3. У меня там, посмотрите, на странице "отсюда" два макроса на автоматическую вставку дат так же со снятием и установкой защиты. Один, который вы мне редактируете и еще один. С этим еще одним ничего не случится?) Он нужен отдельно)
Изменено: Александр К - 08.06.2019 14:19:12
 
Пробуйте так
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Application.EnableEvents = False
On Error Resume Next
For Each cell In Target
    With cell
        If Not Intersect(cell, Range("N:N")) Is Nothing Then
            Me.Unprotect Password:="1708159357"
            .Offset(0, 1).Value = Date
            Me.Protect Password:="1708159357"
        ElseIf Not Intersect(cell, Range("Q:Q")) Is Nothing Then
            .Offset(0, 7).Value = Date
            .Offset(0, -12).Value = Day(Date + 30)
            .Offset(0, -11).Value = Month(Date + 30)
        End If
    End With
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
З.Ы. Если к 31 января прибавить 30, то это будет уже 01 марта, а не февраль. Так, для информации  
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Sanja написал:
З.Ы. Если к 31 января прибавить 30, то это будет уже 01 марта, а не февраль. Так, для информации
Ну да)
Цитата
Sanja написал:
Пробуйте так
Ячейка Q в которую вписали что-либо - не защищается...  
Изменено: Александр К - 16.10.2016 14:18:12
 
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Application.EnableEvents = False
On Error Resume Next
For Each cell In Target
    With cell
        If Not Intersect(cell, Range("N:N")) Is Nothing Then
            Me.Unprotect Password:="1708159357"
            .Offset(0, 1).Value = Date
            Me.Protect Password:="1708159357"
        ElseIf Not Intersect(cell, Range("Q:Q")) Is Nothing Then
        Me.Unprotect Password:="1708159357"
            .Offset(0, 7).Value = Date
            .Offset(0, -12).Value = Day(Date + 30)
            .Offset(0, -11).Value = Month(Date + 30)
            .Locked = True
            Me.Protect Password:="1708159357"
        End If
    End With
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Во) сделал...
Вам за помощь - во вложении)))
Изменено: Александр К - 16.10.2016 14:33:30
 
еще один малюсенький вопросик. Почему когда вручную ставишь защиту, устанавливаешь разрешение на изменение формата ячеек - тогда работает, а когда макрос ставит защиту то делать вообще ничего нельзя)))???
 
Цитата
Александр К написал: Ячейка Q ...не защищается...
Вы ее защитите правильно
Уровень 1. Защита ячеек листа от изменений
См.файл. Изменять можно только столбец N. Все остальное через снятие защиты листа
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Александр К написал: еще один малюсенький вопросик.
Ваши вопросы стали уже слишком далеки от заявленной темы. Модераторы этого не любят - влетит всем
Есть вопросы - создавайте свои темы (предварительно воспользовавшись ПОИСКОМ)
На этом здесь все. Удачи  
Согласие есть продукт при полном непротивлении сторон
 
Цитата
aliador написал:
чтобы по умолчанию сохранялось форматирование конечного документа. Это возможно?
Возможно!
В модуль "эта книга".

Код
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  With Target
    .NumberFormat = "General"
    .HorizontalAlignment = xlLeft
    .VerticalAlignment = xlCenter
    .WrapText = True
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder = xlContext
    .MergeCells = False
    ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
        False, NoHTMLFormatting:=True
     End With
End Sub
 
Как макрос ZVI из сообщения №13 переделать для определенной ячейки на определенном листе?
макрос
Изменено: rene33 - 17.10.2019 23:10:38
Страницы: Пред. 1 2
Наверх