กรณีแชร์ไฟล์แล้วคีย์ข้อมูลชนกันครับ
Posted: Mon Aug 13, 2018 4:35 am
รบกวนสอบถามครับ ผมแชร์ไฟล์ DataBase ไว้ โดยให้แต่ละ user ทำการบันทึกข้อมูลต่อกันลงไปเรื่อยๆ โดยให้เปิดไฟล์ขึ้นมาแล้วทำการบันทึก เมื่อบันทึกเสร็จให้saveและปิดไฟล์ แต่มีบางครั้งที่ User บันทึกข้อมูลใน Cell เดียวกันทำให้เกิด error ไม่สามารถบันทึกไฟล์ได้ ถ้าปิดไฟล์ DataBaseไป มันก็จะไปเริ่มคำสั่งใหม่ตั้งแต่ต้น ผมต้องการว่า ถ้าเกิด Error ให้แต่ละคนกลับมาบันทึกข้อมูลใหม่ ตรงคำสั่ง บันทึกงาน Databaseแค่นั้นครับ ผมจะต้องแก้ไข code อย่างไรครับ พอดีไฟล์งานใหญ่เลยไม่ได้แนบมาด้วยครับ
Code: Select all
Sub Macro1()
' Macro1 Macro
'
'
Dim rg As Range
Set rg = Range("T9")
Set rg = Range("U17")
rg.Activate
If Application.CountA(Range("T9")) = 0 Then
MsgBox "กรุณากรอกข้อมูลให้ครบ"
Exit Sub
End If
rg.Activate
If Application.CountA(Range("U17")) = 0 Then
MsgBox "กรุณาระบุสถานที่ส่งของ"
Exit Sub
End If
Dim x As Integer
x = MsgBox("ต้องการพิมพ์ใบจ่ายงาน ใช่หรือไม่", vbOKCancel)
If x = vbCancel Then
Sheets("sheet2").Select
Else
MsgBox "ใส่ใบจ่ายงานด้วยครับ"
ActiveSheet.Unprotect Password:="1234"
Range("L56") = Range("L56") + 1
If Range("AC10").Value <> 0 Then
MsgBox ("รหัสซ้ำ กรุณาสั่งพิมพ์อีกครั้ง"), vbCritical
Exit Sub
Else
'บันทึก SaleData
Application.Goto Reference:= _
"OFFSET(R9C30,1,0,COUNTIF(C34,"">0""),COUNTA(R9)-4)"
Selection.Copy
Workbooks("SaleData.xlsx").Activate
Sheets("NOI").Select
Application.Goto Reference:="OFFSET(R1C1,COUNTA(C1),0)"
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Save
ThisWorkbook.Activate
'บันทึกงาน DataBase
Application.Goto Reference:= _
"OFFSET(R9C30,1,0,COUNTIF(C34,"">0""),COUNTA(R9)-4)"
Selection.Copy
Workbooks.Open Filename:="\\ACCOUNT\Data (D)\SALE\DataBase.xlsx"
Sheets("Sheet1").Select
Application.Goto Reference:="OFFSET(R1C1,COUNTA(C1),0)"
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWorkbook.Close
ActiveSheet.PageSetup.PrintArea = "$A$1:$W$60"
Application.ActivePrinter = "NOI on Ne00:"
ActiveWindow.SelectedSheets.PrintOut Copies:=3, ActivePrinter:= _
"NOI on Ne00:", Collate:=True, IgnorePrintAreas:=False
'ActiveWindow.SelectedSheets.PrintOut Copies:=3
Range("t9,e15,I18,P18,T18,I22,P22,T22,I26,P26,T26,I30,P30,T30,I34,P34,T34,I38,P38,T38,N44,N46,N48,N5,U17").Select
Range("t9,e15,I18,P18,T18,I22,P22,T22,I26,P26,T26,I30,P30,T30,I34,P34,T34,I38,P38,T38,N44,N46,N48,N50,U17").Activate
Selection.ClearContents
Range("i18").Select
ActiveSheet.Protect Password:="1234"
MsgBox ("บันทึกข้อมูลเรียบร้อย"), vbInformation
End If