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

Вход

Регистрация

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

 

= Мир MS Excel/Дата СЕГОДНЯ при определенном значении в ячейке соседнего ст - Мир MS Excel

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

Excel 2019
уважаемые специалисты, подскажите пожалуйста как подправить макрос чтоб не просто при изменении в ячейках столбца3 менялась дата в столбце1 на текущую, а только при определенном значении допустим " 2 "
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    
    For Each cell In Target   'проходим по всем измененным ячейкам
       If Not Intersect(cell, Range("Столбец3")) Is Nothing Then  'если изменененная ячейка попадает в диапазон Столбец3
            With cell.Offset(0, -2)         'вводим в соседнюю слева ячейку дату
               .Value = Date
               End With
       End If
    Next cell
End Sub
[/vba]
спасибо заранее
К сообщению приложен файл: 0592847.xlsb (14.5 Kb)
 
Ответить
Сообщениеуважаемые специалисты, подскажите пожалуйста как подправить макрос чтоб не просто при изменении в ячейках столбца3 менялась дата в столбце1 на текущую, а только при определенном значении допустим " 2 "
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    
    For Each cell In Target   'проходим по всем измененным ячейкам
       If Not Intersect(cell, Range("Столбец3")) Is Nothing Then  'если изменененная ячейка попадает в диапазон Столбец3
            With cell.Offset(0, -2)         'вводим в соседнюю слева ячейку дату
               .Value = Date
               End With
       End If
    Next cell
End Sub
[/vba]
спасибо заранее

Автор - Extybr
Дата добавления - 23.09.2020 в 19:11
Hugo Дата: Среда, 23.09.2020, 19:14 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3252
Репутация: 707 ±
Замечаний: 0% ±

2019
Так добавьте проверку cell, только вот пробел+двойка вряд ли Эксель позволит ввести без допухищрений пользователя...
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    For Each cell In Target   'проходим по всем измененным ячейкам
        If Not Intersect(cell, Range("Столбец3")) Is Nothing Then  'если изменененная ячейка попадает в диапазон Столбец3
            If cell = 2 Then
                With cell.Offset(0, -2)         'вводим в соседнюю слева ячейку дату
                    .Value = Date
                End With
            End If
        End If
    Next cell
End Sub
[/vba]


excel@nxt.ru
webmoney: E265281470651 Z422237915069


Сообщение отредактировал Hugo - Среда, 23.09.2020, 19:16
 
Ответить
СообщениеТак добавьте проверку cell, только вот пробел+двойка вряд ли Эксель позволит ввести без допухищрений пользователя...
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    For Each cell In Target   'проходим по всем измененным ячейкам
        If Not Intersect(cell, Range("Столбец3")) Is Nothing Then  'если изменененная ячейка попадает в диапазон Столбец3
            If cell = 2 Then
                With cell.Offset(0, -2)         'вводим в соседнюю слева ячейку дату
                    .Value = Date
                End With
            End If
        End If
    Next cell
End Sub
[/vba]

Автор - Hugo
Дата добавления - 23.09.2020 в 19:14
Extybr Дата: Среда, 23.09.2020, 19:16 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 120
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
я тугой в макросах....все интуитивно.
можете написать? а то сам не справлюсь
 
Ответить
Сообщениея тугой в макросах....все интуитивно.
можете написать? а то сам не справлюсь

Автор - Extybr
Дата добавления - 23.09.2020 в 19:16
Hugo Дата: Среда, 23.09.2020, 19:16 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3252
Репутация: 707 ±
Замечаний: 0% ±

2019
Написал. См. выше.


excel@nxt.ru
webmoney: E265281470651 Z422237915069


Сообщение отредактировал Hugo - Среда, 23.09.2020, 19:24
 
Ответить
СообщениеНаписал. См. выше.

Автор - Hugo
Дата добавления - 23.09.2020 в 19:16
Extybr Дата: Среда, 23.09.2020, 19:26 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 120
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
спасибо. то что нужно
 
Ответить
Сообщениеспасибо. то что нужно

Автор - Extybr
Дата добавления - 23.09.2020 в 19:26
Extybr Дата: Среда, 23.09.2020, 22:48 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 120
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Hugo, подскажите пожалуйста еще момент....как подружить эти два макроса?
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    
    For Each cell In Target   'проходим по всем измененным ячейкам
       If Not Intersect(cell, Range("Столбец3")) Is Nothing Then  'если изменененная ячейка попадает в диапазон Столбец3
            With cell.Offset(0, -2)         'вводим в соседнюю слева ячейку дату
               .Value = Date
               End With
       End If
    Next cell
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("Диапазон1", "Диапазон2")) Is Nothing Then Cells(Target.Row, 4) = "1"
    
End Sub
[/vba]
один макрос ставит дату при изменении а другой ставит отметку для пересчета другим макросом измененных и отмеченных строк
К сообщению приложен файл: 2454846.xlsb (13.1 Kb)


Сообщение отредактировал Extybr - Среда, 23.09.2020, 23:02
 
Ответить
СообщениеHugo, подскажите пожалуйста еще момент....как подружить эти два макроса?
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    
    For Each cell In Target   'проходим по всем измененным ячейкам
       If Not Intersect(cell, Range("Столбец3")) Is Nothing Then  'если изменененная ячейка попадает в диапазон Столбец3
            With cell.Offset(0, -2)         'вводим в соседнюю слева ячейку дату
               .Value = Date
               End With
       End If
    Next cell
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("Диапазон1", "Диапазон2")) Is Nothing Then Cells(Target.Row, 4) = "1"
    
End Sub
[/vba]
один макрос ставит дату при изменении а другой ставит отметку для пересчета другим макросом измененных и отмеченных строк

Автор - Extybr
Дата добавления - 23.09.2020 в 22:48
Pelena Дата: Четверг, 24.09.2020, 16:06 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 19178
Репутация: 4417 ±
Замечаний: ±

Excel 365 & Mac Excel
Это зависит от того, как эти макросы должны отрабатывать. По видимому, друг за другом, т.к. "Диапазон1" пересекается с "Столбец3". А вот что в первую очередь, а что потом, не понятно.
Как вариант
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    For Each cell In Target   'проходим по всем измененным ячейкам
        If Not Intersect(cell, Range("Столбец3")) Is Nothing Then  'если изменененная ячейка попадает в диапазон Столбец3
            With cell.Offset(0, -2)         'вводим в соседнюю слева ячейку дату
                .Value = Date
            End With
        End If
    Next cell
    Application.EnableEvents = False
    If Not Intersect(Target, Range("Диапазон1", "Диапазон2")) Is Nothing Then Cells(Target.Row, 4) = "1"
    Application.EnableEvents = True
End Sub
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЭто зависит от того, как эти макросы должны отрабатывать. По видимому, друг за другом, т.к. "Диапазон1" пересекается с "Столбец3". А вот что в первую очередь, а что потом, не понятно.
Как вариант
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    For Each cell In Target   'проходим по всем измененным ячейкам
        If Not Intersect(cell, Range("Столбец3")) Is Nothing Then  'если изменененная ячейка попадает в диапазон Столбец3
            With cell.Offset(0, -2)         'вводим в соседнюю слева ячейку дату
                .Value = Date
            End With
        End If
    Next cell
    Application.EnableEvents = False
    If Not Intersect(Target, Range("Диапазон1", "Диапазон2")) Is Nothing Then Cells(Target.Row, 4) = "1"
    Application.EnableEvents = True
End Sub
[/vba]

Автор - Pelena
Дата добавления - 24.09.2020 в 16:06
micholap_denis Дата: Четверг, 24.09.2020, 16:14 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 341
Репутация: 0 ±
Замечаний: 60% ±

Excel 2013
Pelena, вы как всегда ВСЕ ЧЕТКО
СПАСИБО
 
Ответить
СообщениеPelena, вы как всегда ВСЕ ЧЕТКО
СПАСИБО

Автор - micholap_denis
Дата добавления - 24.09.2020 в 16:14
Extybr Дата: Четверг, 24.09.2020, 16:47 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 120
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Pelena, СПАСИБО
как сказали выше-все работает
спасибо
 
Ответить
СообщениеPelena, СПАСИБО
как сказали выше-все работает
спасибо

Автор - Extybr
Дата добавления - 24.09.2020 в 16:47
Extybr Дата: Понедельник, 28.09.2020, 14:40 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 120
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Pelena, подскажите пожалуйста
в таблице другим макросом выполняется вставка формул и пересчет,как отключить обработчик изменения таблицы Worksheet_Change при работе макроса пересчета, что бы работал только при ручном редактировании страницы?
начинает тормозить виснет....
 
Ответить
СообщениеPelena, подскажите пожалуйста
в таблице другим макросом выполняется вставка формул и пересчет,как отключить обработчик изменения таблицы Worksheet_Change при работе макроса пересчета, что бы работал только при ручном редактировании страницы?
начинает тормозить виснет....

Автор - Extybr
Дата добавления - 28.09.2020 в 14:40
Extybr Дата: Вторник, 29.09.2020, 09:12 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 120
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
вопрос снялся
[vba]
Код
application.enableevents=false
' ... макрос
application.enableevents=true
[/vba]
 
Ответить
Сообщениевопрос снялся
[vba]
Код
application.enableevents=false
' ... макрос
application.enableevents=true
[/vba]

Автор - Extybr
Дата добавления - 29.09.2020 в 09:12
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Дата СЕГОДНЯ при определенном значении в ячейке соседнего ст (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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