Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Фиксация значения формулы - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Фиксация значения формулы (Макросы/Sub)
Фиксация значения формулы
mikeret Дата: Среда, 26.04.2017, 11:09 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Помогите с приведенным примером, как сделать, чтоб при вводе автора - автоматически формула слева преобразовывалась бы в значение?
К сообщению приложен файл: 4273191.xlsx (8.9 Kb)
 
Ответить
СообщениеПомогите с приведенным примером, как сделать, чтоб при вводе автора - автоматически формула слева преобразовывалась бы в значение?

Автор - mikeret
Дата добавления - 26.04.2017 в 11:09
китин Дата: Среда, 26.04.2017, 11:13 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 7014
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
в модуль листа
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim dat&
dat = Cells(Rows.Count, 1).End(xlUp).Row
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("B2:B" & dat)) Is Nothing Then
    
    If Target <> "" And Target.Offset(0, -1) = "" Then Target.Offset(0, -1) = Now
    End If
End Sub
[/vba]
К сообщению приложен файл: mikeret.xlsm (14.3 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщениев модуль листа
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim dat&
dat = Cells(Rows.Count, 1).End(xlUp).Row
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("B2:B" & dat)) Is Nothing Then
    
    If Target <> "" And Target.Offset(0, -1) = "" Then Target.Offset(0, -1) = Now
    End If
End Sub
[/vba]

Автор - китин
Дата добавления - 26.04.2017 в 11:13
_Boroda_ Дата: Среда, 26.04.2017, 11:13 | Сообщение № 3
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Посмотрите здесь
http://www.excelworld.ru/forum/10-19690-1#161947

Второй макрос четвертого поста как раз для Вас
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = 0
    For i = 1 To Target.Count
        If Target(i).Column = 2 Then
            If Target(i).Value <> "" Then
                Target(i).Offset(, -1) = Now
            Else
                Target(i).Offset(, -1).ClearContents
            End If
        End If
    Next i
Application.EnableEvents = 1
End Sub
[/vba]
К сообщению приложен файл: 4273191_1.xlsm (14.0 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПосмотрите здесь
http://www.excelworld.ru/forum/10-19690-1#161947

Второй макрос четвертого поста как раз для Вас
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = 0
    For i = 1 To Target.Count
        If Target(i).Column = 2 Then
            If Target(i).Value <> "" Then
                Target(i).Offset(, -1) = Now
            Else
                Target(i).Offset(, -1).ClearContents
            End If
        End If
    Next i
Application.EnableEvents = 1
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 26.04.2017 в 11:13
mikeret Дата: Среда, 26.04.2017, 12:02 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Спасибо большое, второй макрос у меня заработал, а как сделать чтоб он работал с защищенными ячейками?
 
Ответить
СообщениеСпасибо большое, второй макрос у меня заработал, а как сделать чтоб он работал с защищенными ячейками?

Автор - mikeret
Дата добавления - 26.04.2017 в 12:02
mikeret Дата: Среда, 26.04.2017, 22:10 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Возможно, что этот вопрос невозможно реализовать в данной программе, но все таки, жду резюме профи, чтоб окончательно в этом убедиться


Сообщение отредактировал mikeret - Среда, 26.04.2017, 22:15
 
Ответить
СообщениеВозможно, что этот вопрос невозможно реализовать в данной программе, но все таки, жду резюме профи, чтоб окончательно в этом убедиться

Автор - mikeret
Дата добавления - 26.04.2017 в 22:10
_Boroda_ Дата: Среда, 26.04.2017, 23:04 | Сообщение № 6
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Очень просто - вначале макроса снимаем защиту, делаем свои дела и ставим защиту. Или снимаем защиту, сразу же ставим защиту, но с разрешением макросу работать с защищенными ячейками, а потом делаем свои дела.
Если нужно подробнее, то на форуме множество подобных тем.
Если все-таки не поборете самостоятельно, то создавайте отдельную тему - это совершенно другой вопрос уже.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеОчень просто - вначале макроса снимаем защиту, делаем свои дела и ставим защиту. Или снимаем защиту, сразу же ставим защиту, но с разрешением макросу работать с защищенными ячейками, а потом делаем свои дела.
Если нужно подробнее, то на форуме множество подобных тем.
Если все-таки не поборете самостоятельно, то создавайте отдельную тему - это совершенно другой вопрос уже.

Автор - _Boroda_
Дата добавления - 26.04.2017 в 23:04
mikeret Дата: Четверг, 27.04.2017, 10:43 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Я вот нашел что то похожее на форуме, макрос с защитой ячеек, но в виду своих скудных знаний не могу понять как его подогнать под мой макрос (2 вариант в данном посте), помогите вставить куда нужно, заранее благодарен.

Private Sub Worksheet_Change(ByVal Target As Range)
For Each cell In Target 'проходим по всем измененным ячейкам
If Not Intersect(cell, Range("A2:F65536")) Is Nothing Then
With Range("G" & cell.Row)
ActiveSheet.Unprotect Password:="1234" 'если ячейки защищены паролем - разблокируем их для макроса
.Value = Now
ActiveSheet.Protect Password:="1234" 'восстанавливаем защиту ячеек
End With
End If
Next cell
End Sub
 
Ответить
СообщениеЯ вот нашел что то похожее на форуме, макрос с защитой ячеек, но в виду своих скудных знаний не могу понять как его подогнать под мой макрос (2 вариант в данном посте), помогите вставить куда нужно, заранее благодарен.

Private Sub Worksheet_Change(ByVal Target As Range)
For Each cell In Target 'проходим по всем измененным ячейкам
If Not Intersect(cell, Range("A2:F65536")) Is Nothing Then
With Range("G" & cell.Row)
ActiveSheet.Unprotect Password:="1234" 'если ячейки защищены паролем - разблокируем их для макроса
.Value = Now
ActiveSheet.Protect Password:="1234" 'восстанавливаем защиту ячеек
End With
End If
Next cell
End Sub

Автор - mikeret
Дата добавления - 27.04.2017 в 10:43
китин Дата: Четверг, 27.04.2017, 11:00 | Сообщение № 8
Группа: Модераторы
Ранг: Экселист
Сообщений: 7014
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
mikeret, про тэги то забыли?


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщениеmikeret, про тэги то забыли?

Автор - китин
Дата добавления - 27.04.2017 в 11:00
mikeret Дата: Четверг, 27.04.2017, 11:09 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Не знаю, что вы имеете в виду, но вот ссылка, сообщение №59

http://www.excelworld.ru/forum/10-348-3
 
Ответить
СообщениеНе знаю, что вы имеете в виду, но вот ссылка, сообщение №59

http://www.excelworld.ru/forum/10-348-3

Автор - mikeret
Дата добавления - 27.04.2017 в 11:09
китин Дата: Четверг, 27.04.2017, 11:14 | Сообщение № 10
Группа: Модераторы
Ранг: Экселист
Сообщений: 7014
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
что вы имеете в виду

Как оформлять сообщения?
посмотрите на посты мои и _Boroda_, и на свой. найдете одно отличие: получите ответ :D


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщение
что вы имеете в виду

Как оформлять сообщения?
посмотрите на посты мои и _Boroda_, и на свой. найдете одно отличие: получите ответ :D

Автор - китин
Дата добавления - 27.04.2017 в 11:14
mikeret Дата: Четверг, 27.04.2017, 11:17 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
For Each cell In Target 'проходим по всем измененным ячейкам
If Not Intersect(cell, Range("A2:F65536")) Is Nothing Then
With Range("G" & cell.Row)
ActiveSheet.Unprotect Password:="1234" 'если ячейки защищены паролем - разблокируем их для макроса
.Value = Now
ActiveSheet.Protect Password:="1234" 'восстанавливаем защиту ячеек
End With
End If
Next cell
End Sub
[/vba]


Сообщение отредактировал mikeret - Четверг, 27.04.2017, 11:22
 
Ответить
Сообщение[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
For Each cell In Target 'проходим по всем измененным ячейкам
If Not Intersect(cell, Range("A2:F65536")) Is Nothing Then
With Range("G" & cell.Row)
ActiveSheet.Unprotect Password:="1234" 'если ячейки защищены паролем - разблокируем их для макроса
.Value = Now
ActiveSheet.Protect Password:="1234" 'восстанавливаем защиту ячеек
End With
End If
Next cell
End Sub
[/vba]

Автор - mikeret
Дата добавления - 27.04.2017 в 11:17
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Фиксация значения формулы (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!