Не сохранять лист, если условие не соответствует - PullRequest
0 голосов
/ 23 декабря 2018

У меня есть рабочая книга с двумя листами с именами «Ежедневная цель» и «Цель персонала».

Мне нужен код, который позволяет мне сохранять рабочую книгу, если я работаю с таблицей «Ежедневная цель» независимо от каких-либо условий.,Но если я работаю над таблицей «Целевая задача персонала» и хотел бы сохранить, разрешите сохранение, если условие соответствует, в противном случае не сохраните.

Option Explicit

'I wrote that code within "Staff Target" sheet.

Sub NotSave()
    Dim WB As Workbook
    Set WB = Workbooks("Target Sales Tmplate")
    Dim ST As Worksheet
    Set ST = Worksheets("Staff Targets")        
        With ST
            If ST.Range("C" & Rows.Count).End(xlUp) <> Range("B4") Then
                WB.Close SaveChanges:=False
                MsgBox "Total Staff Target Amount is not equal to Total Monthly Target!", vbCritical, "ERROR"
            End If
        End With

End Sub

1 Ответ

0 голосов
/ 23 декабря 2018

Поместите этот код в модуль ThisWorkbook:

Option Explicit

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

    Dim staffTargets As Worksheet
    Set staffTargets = Worksheets("Staff Targets")

    With staffTargets

        If ActiveSheet.Name = .name Then

            If .Range("C" & .Rows.Count).End(xlUp) <> .Range("B4") Then
                MsgBox "Workbook Not Saved. Total Staff Target Amount is not equal to Total Monthly Target!", vbCritical, "ERROR"
                Cancel = True
            End If

        End If

    End With

End Sub
...