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

Вход

Регистрация

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

 

= Мир MS Excel/Получение старой значении до изменений в Worksheet_Change - Мир MS Excel

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

10
Добрый день. Я новичок в excel, в интернете много прочел, но не смогу решить. Сделал как умею. В общем, в столбце F можно вписать данные "Карта" "Наличка" "Долг",
Я сделал проверку на то чтобы если вписать долг, в столбце A добавится номер текущей строки (для последующей проверки). А когда в столбце F изменяю "Долг" на "Наличка" или "Карта", нужно вызывать код, но не используя столбец A.
Нужно именно при изменении с ДОЛГ!
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)

    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False
    Application.EnableEvents = False ' Отключаем обработку событий
    For Each cell In Target
  If Target.Cells.Count = 1 Then
            If Not Intersect(cell, Range("F2:F10000")) Is Nothing Then ' Должники
            
                If Target.Column = 6 And (Target.Value = "Наличка" Or Target.Value = "Карта") And cell.Offset(0, -5) > 0 Then
                    Target.CurrentRegion.Rows(Target.Row).Cut
                    Cells(Rows.Count, 2).End(xlUp).Offset(1, -1).Select
                    ActiveCell.Insert Shift:=xlDown
                    cell.Offset(0, -3).Value = Time
                    cell.Offset(0, -4).Value = Date
                    cell.Offset(0, -5).Value = ""
                Else
                    Dim PosLedN As Long
                    Dim ids As Long
                    PosLedN = Cells(Rows.Count, "F").End(xlUp).Row
                    For ids = PosLedN To 2 Step -1
                        If Cells(ids, "F") = "Долг" Then
                            Cells(ids, "A").Value = ids
                        Else
                            Cells(ids, "A").Value = ""
                        End If
                    Next ids
                End If
            End If
        End If
    next cell
End Sub
[/vba]
 
Ответить
СообщениеДобрый день. Я новичок в excel, в интернете много прочел, но не смогу решить. Сделал как умею. В общем, в столбце F можно вписать данные "Карта" "Наличка" "Долг",
Я сделал проверку на то чтобы если вписать долг, в столбце A добавится номер текущей строки (для последующей проверки). А когда в столбце F изменяю "Долг" на "Наличка" или "Карта", нужно вызывать код, но не используя столбец A.
Нужно именно при изменении с ДОЛГ!
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)

    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False
    Application.EnableEvents = False ' Отключаем обработку событий
    For Each cell In Target
  If Target.Cells.Count = 1 Then
            If Not Intersect(cell, Range("F2:F10000")) Is Nothing Then ' Должники
            
                If Target.Column = 6 And (Target.Value = "Наличка" Or Target.Value = "Карта") And cell.Offset(0, -5) > 0 Then
                    Target.CurrentRegion.Rows(Target.Row).Cut
                    Cells(Rows.Count, 2).End(xlUp).Offset(1, -1).Select
                    ActiveCell.Insert Shift:=xlDown
                    cell.Offset(0, -3).Value = Time
                    cell.Offset(0, -4).Value = Date
                    cell.Offset(0, -5).Value = ""
                Else
                    Dim PosLedN As Long
                    Dim ids As Long
                    PosLedN = Cells(Rows.Count, "F").End(xlUp).Row
                    For ids = PosLedN To 2 Step -1
                        If Cells(ids, "F") = "Долг" Then
                            Cells(ids, "A").Value = ids
                        Else
                            Cells(ids, "A").Value = ""
                        End If
                    Next ids
                End If
            End If
        End If
    next cell
End Sub
[/vba]

Автор - fotostudiyaneo
Дата добавления - 09.03.2024 в 10:37
fotostudiyaneo Дата: Суббота, 09.03.2024, 11:19 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 20% ±

10
Проблему решили. Спасибо
 
Ответить
СообщениеПроблему решили. Спасибо

Автор - fotostudiyaneo
Дата добавления - 09.03.2024 в 11:19
MikeVol Дата: Суббота, 09.03.2024, 13:14 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 315
Репутация: 61 ±
Замечаний: 0% ±

Excel LTSC 2021 EN
Цитата fotostudiyaneo, 09.03.2024 в 11:19, в сообщении № 2 ()
Проблему решили

Надо указать где вам помогли! Может кто будет искать решение.


Ученик.
 
Ответить
Сообщение
Цитата fotostudiyaneo, 09.03.2024 в 11:19, в сообщении № 2 ()
Проблему решили

Надо указать где вам помогли! Может кто будет искать решение.

Автор - MikeVol
Дата добавления - 09.03.2024 в 13:14
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Получение старой значении до изменений в Worksheet_Change (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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