返回列表 上一主題 發帖

符合兩筆資料自行顯示地區

符合兩筆資料自行顯示地區

本帖最後由 周大偉 於 2014-12-9 11:26 編輯

前輩們, 早晨
小弟有一問題, 請各前輩協助, 問題是一個符合兩筆資料自行傳回地區, 現小弟把檔案上傳, 先行謝過前輩們,
祝願快樂, 謝!!
活頁簿1.rar (9.52 KB)

謝謝樓上兩位大大,  想請教一個問題,
一般資料按自行顯示都會用上下列指令,
Private Sub Worksheet_Change(ByVal Target As Range)
可否會有其他開語法取代這句語法, 或有相同效果, 因小弟本身工作表已有程式, 而開頭第一句便是這句,
故程式便出現重複指令, 煩請大大們教導, 謝謝!!

TOP

本帖最後由 周大偉 於 2014-12-10 18:46 編輯

感謝兩位樓主回應, 先行謝過,
小弟真的沒法把現使用的程式與兩位大大所供的程式融合, 現把使用開的程式貼上, 請兩位樓主協助, 謝謝!!
Private Sub Worksheet_Change(ByVal T As Range)
Dim Rng As Range, A As Range, Dha As Workbook, pp
Application.EnableEvents = False
Set Dha = Workbooks("sss倉庫資料.xlsm")
Set Rng = Dha.Sheets(1).UsedRange
Select Case T.Column
Case 2
   If IsDate(T) Then T.Offset(, -1) = Month(T)
Case 3
   Set A = Rng.Columns(2).Find(T, lookat:=xlWhole)
   If A Is Nothing Then MsgBox "無此貨物編號": GoTo 10
   T.Offset(, 1) = A.Offset(, 1)
   T.Offset(, 2) = A.Offset(, 2)
   T.Offset(, 3) = A.Offset(, 3)
   T.Offset(, 5) = A.Offset(, 4)
Case 7
    Set A = Rng.Columns(2).Find(T.Offset(, -4), lookat:=xlWhole)
    pp = Application.SumIf(Range("C:G"), A, Range("G:G")) '計算倉庫提取總數
    If pp > (A.Offset(, 8) + A.Offset(, 10)) Then
        MsgBox T.Offset(, -3) & "存量不足重新填寫"
        T.Interior.ColorIndex = 26
        GoTo 10
    End If
    T.Interior.ColorIndex = xlNone
    pp = Application.SumIf(Range("C:G"), T.Offset(, -4), Range("G:G")) '計算倉庫提取總數
    A.Offset(, 8) = pp
    A.Offset(, 10) = A.Offset(, 7) + A.Offset(, 9) - A.Offset(, 8)
    T.Offset(, 2) = T * T.Offset(, 1)
    Dha.Save
End Select
10
Application.EnableEvents = True
End Sub

Private Sub Worksheet_BeforeRightClick(ByVal T As Range, Cancel As Boolean)
    Dim A As Range
    If Not Application.Intersect(T, Range("A3:L" & Application.CountA([A3:A6]) + 2)) Is Nothing Then
        Cancel = True
        With Workbooks("sss倉庫資料.xlsm")
            Set A = .Sheets(1).UsedRange.Columns(2).Find(Range("C" & T.Row), lookat:=xlWhole)
            If A.Column <> 2 Or A = "" Then
                MsgBox "資料不正確 請查明"
                Range(Cells(T.Row, "A"), Cells(T.Row, "L")).Select
                Exit Sub
            End If
            If MsgBox(Range("C" & T.Row) & " " & Range("D" & T.Row) & Chr(10) _
                    & "取消 " & [G2] & " " & Range("G" & T.Row) & Chr(10) & "請注意 [本紀錄] 取消後無法復原", vbYesNo) = vbYes Then
                Application.ScreenUpdating = False
                Application.EnableEvents = False
                A.Offset(, 8) = Application.SumIf(Range("C:C"), A, Range("G:G")) - Range("G" & T.Row) '變更入貨總數於資料庫
                A.Offset(, 10) = A.Offset(, 7) + A.Offset(, 9) - A.Offset(, 8)
                .Save
                Range(Cells(T.Row, "A"), Cells(T.Row, "L")).Delete (3)
                Application.EnableEvents = True
                ActiveWorkbook.Save
                Application.ScreenUpdating = True
            End If
        End With
    End If
End Sub

TOP

回復 8# GBKEE
謝謝樓主教導, 已成功, 感謝大大, 祝快樂,
謝謝!!

TOP

        靜思自在 : 有多少力量就做多少事,不要心存等待,等待才會落空。
返回列表 上一主題