Page 3 of 3
Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน
Posted: Fri Mar 21, 2014 12:54 pm
by suka
ค่ะอาจารย์ จากไฟล์ PWbShare หากบันทึกข้อมูลต่อเนื่องจากกลุ่มเอกสารเดิมค่าตัวเลขที่คอลัมน์ F รันเลขที่ได้ถูกต้องค่ะ
หากเปลี่ยนกลุ่มเอกสารค่าตัวเลขที่ได้จะไม่เปลี่ยนกลุ่มเอกสารให้ค่ะ ยังคงรันเลขที่เดิมต่อจากกลุ่มเดิมเป็น 257003010 จากไฟล์แนบไฟล์ PWbShare ที่เซลล์ F16 ควรเป็น 157003007 ค่ะ
การเรียกลำดับที่กลุ่มเอกสารอยู่เซลล์ N2 ชีท Form ฐานข้อมูลลำดับที่เก็บที่คอลัมน์ D ไฟล์ PWbShare ค่ะ
ขอบคุณค่ะ
Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน
Posted: Sat Mar 22, 2014 7:20 am
by snasui
ลองปรับ Code เป็นด้านล่างครับ
Code: Select all
'Other code
With wbShare
'e = .Sheets("Sheet1").Range("e" & Rows.Count).End(xlUp).Value + 1
Select Case formBook.Sheets("EnterThedata").Range("o2").Value
Case "ใบกำกับภาษี"
e = formBook.Sheets("Document").Range("c2")
Case "ใบส่งสินค้าชั่วคราว"
e = formBook.Sheets("Document").Range("c3")
Case "ใบลดหนี้"
e = formBook.Sheets("Document").Range("c4")
End Select
formBook.Worksheets("Enterthedata").Range("m2").Value = e
' With wbShare
' o = .Sheets("Sheet1").Range("d" & Rows.Count).End(xlUp) = formBook.Worksheets("Enterthedata").Range("n2")
' End With
End With
'Other code
Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน
Posted: Sat Mar 22, 2014 11:50 am
by suka
ขอบคุณค่ะอาจารย์ Code ด้านบนที่ให้มาใช้ได้ตรงตามต้องการแล้วค่ะ
ขอรบกวนอีกรอบนะคะ การวาง Code
Application.ScreenUpdating = False
และ
Application.ScreenUpdating = True
นี้กับ Code ด้านล่างทั้งชุดนี้ ควรปรับวางไว้ที่ตำแหน่งใดดีคะ เพื่อเวลากด Record ที่ชีท Form หน้าจอไม่วูบค่ะ
Code: Select all
Sub PasteData()
Dim wbShare As Workbook
Dim formBook As Workbook
Dim rTarget As Range
Dim i As Integer
Dim e As Long
Dim rs As Range
Dim rt As Range
Dim rd As Range
Set formBook = ThisWorkbook
Set wbShare = Workbooks("PoWbShare.xlsx")
Application.ScreenUpdating = False
With wbShare
e = .Sheets("Sheet1").Range("f" & Rows.Count).End(xlUp).Value + 1
Select Case formBook.Sheets("EnterThedata").Range("o2").Value
Case "ใบกำกับภาษี"
e = formBook.Sheets("Document").Range("c2")
Case "ใบส่งสินค้าชั่วคราว"
e = formBook.Sheets("Document").Range("c3")
Case "ใบลดหนี้"
e = formBook.Sheets("Document").Range("c4")
End Select
formBook.Worksheets("Enterthedata").Range("m2").Value = e
End With
With formBook
i = .Worksheets("Enterthedata").Range("C225").Value
End With
wbShare.Save
With formBook
i = .Worksheets("Enterthedata").Range("C225").Value
End With
With formBook.Worksheets("Template")
Set rs = .Range(.Range("A2"), .Range("AD" & i + 1))
End With
Set rt = wbShare.Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
If formBook.Worksheets("Enterthedata").Range("C225") = True Then
End If
With formBook
i = formBook.Sheets("Enterthedata").Range("C225").Value
End With
If formBook.Worksheets("Enterthedata").Range("B204") = "" Then
MsgBox "Your data is empty. Fill your data and click record button again."
Exit Sub
End If
rs.Copy: rt.PasteSpecial xlPasteValues
wbShare.Save
formBook.Save
formBook.Activate
Range("D2").Select
Application.CutCopyMode = False
formBook.Sheets("Enterthedata").Range("D2,B204:B220,D204:D220,D222, E204:F220,O204,N204:N220").ClearContents
Application.ScreenUpdating = True
End Sub
Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน
Posted: Sat Mar 22, 2014 11:53 am
by snasui
ที่เขียนมานั้นใช้ได้แล้ว ไม่ทราบว่ามีปัญหาอะไรครับ
Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน
Posted: Sat Mar 22, 2014 12:07 pm
by suka
ค่ะอาจารย์ เวลากด Record ที่ชีท Form แล้วหน้าจอดับวูบนิดๆค่ะ ทำให้เข้าใจไปเองว่าวางผิดที่น่ะค่ะ
ขอบพระคุณค่ะอาจารย์
Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน
Posted: Sat Mar 22, 2014 12:09 pm
by snasui
ถ้ามี Code อื่นที่เรียกใช้ Code นี้ก็ต้องไปใช้ Application.ScreenUpdating กับ Code นั้น ไม่ใช่นำมาใช้ที่ Code นี้ครับ
Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน
Posted: Sat Mar 22, 2014 1:01 pm
by suka
ค่ะมีเรียกใช้ MainCode
Code: Select all
Sub MainCode()
Call AutoFilter
Call PasteData
End Sub
โดยใช้ร่วม Code ด้านล่างนี้ค่ะ
Code: Select all
Sub AutoFilter()
Windows("PoWbShare.xlsx").Activate
ActiveWindow.WindowState = xlNormal
ActiveWindow.WindowState = xlNormal
On Error Resume Next
ActiveSheet.ShowAllData
On Error GoTo 0
ActiveWorkbook.Save
End Sub
Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน
Posted: Sat Mar 22, 2014 1:04 pm
by snasui
snasui wrote: ถ้ามี Code อื่นที่เรียกใช้ Code นี้ก็ต้องไปใช้ Application.ScreenUpdating กับ Code นั้น ไม่ใช่นำมาใช้ที่ Code นี้ครับ
อ่านแล้วเข้าใจว่าอย่างไร ควรจะลองทำอย่างไรไหม หรือยังงงครับ
Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน
Posted: Sat Mar 22, 2014 1:15 pm
by suka
เข้าใจว่า Code ที่ใช้ร่วมกับ Code สั่งให้ Record ใน Form นี้น่ะค่ะ หากเข้าใจไม่ถูกยังงงค่ะ ขออภัยค่ะอาจารย์
Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน
Posted: Sat Mar 22, 2014 1:25 pm
by DhitiBank
ขออภัยที่แจมครับ
เคยงงมาตั้งนานเหมือนกัน
ใน
main code
คุณก็ใส่คำสั่งไม่ให้อัพเดทหน้าจอ ก่อน จะถึงคำสั่ง Filter
จากนั้น ก่อนจะ
End sub
ใน
main code
คุณก็ใส่คำสั่งให้อัพเดทหน้าจอ
เท่านี้ก็ไม่วูบแล้วครับ
Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน
Posted: Sat Mar 22, 2014 2:21 pm
by suka
ขอบคุณค่ะอาจารย์ ขอบคุณค่ะคุณ DhitiBank ตามที่แนะนำมาใช้ได้แล้วค่ะ หลังจัดครบทุก Code ได้ตามนี้ค่ะ
Code: Select all
Sub MainCode()
Application.ScreenUpdating = False
Call AutoFilter
Call PasteData
Application.ScreenUpdating = True
End Sub
Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน
Posted: Tue Mar 25, 2014 10:57 pm
by suka
ขอความช่วยเหลือค่ะ ขอรบกวนช่วยทดสอบโค๊ดไฟล์แนบชีท Form เซลล์ O2 เลือกเอกสาร เซลล์ M2 เป็นตัวลขสุดท้ายจากไฟล์ PWbShare Code ไม่บวกเลขเพิ่มเมื่อบันทึกข้อมูลไปที่ฐานข้อมูลเลขสุดท้ายเลขที่คอลัมน์ F ไฟล์ PWbShare ค่ะ ขอบตุณค่ะ
Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน
Posted: Thu Mar 27, 2014 9:29 pm
by snasui
ไฟล์ที่แนบมากับไฟล์ใน Code ชื่อไม่ตรงกันครับ ทำให้ตรงกันก่อนจะได้สะดวกในการทดสอบครับ
Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน
Posted: Fri Mar 28, 2014 5:23 pm
by suka
อาจารย์คะ จากโพสต์ที่ถามมาก่อนหน้านี้ สรุปปัญหาไม่ได้อยู่ที่ Code ใช่ไหมคะ เพราะแค่แก้สูตรที่คอลัมน์ C ชีท Document ไฟล์ Form ก็สามารถใช้ได้ตามต้องการค่ะ และทดลองเปลี่ยนสลับคอลัมน์ D และคอลัมน์ E ที่ฐานข้อมูลเลขที่ก็รันได้ตามต้องการค่ะ แต่มีข้อสงสัยแค่ปรับสูตรเท่านั้นทำไม่ไฟล์ Form.xlsm ถึงเล็กลงมายมายค่ะ
suka wrote:ขอความช่วยเหลือค่ะ ขอรบกวนช่วยทดสอบโค๊ดไฟล์แนบชีท Form เซลล์ O2 เลือกเอกสาร เซลล์ M2 เป็นตัวลขสุดท้ายจากไฟล์ PWbShare Code ไม่บวกเลขเพิ่มเมื่อบันทึกข้อมูลไปที่ฐานข้อมูลเลขสุดท้ายเลขที่คอลัมน์ F ไฟล์ PWbShare ค่ะ ขอบตุณค่ะ
ไฟล์ที่แนบมานี้ใช้ได้แล้วค่ะ ขอบคุณค่ะอาจารย์
Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน
Posted: Fri Mar 28, 2014 5:35 pm
by snasui
suka wrote:
อาจารย์คะ จากโพสต์ที่ถามมาก่อนหน้านี้ สรุปปัญหาไม่ได้อยู่ที่ Code ใช่ไหมคะ เพราะแค่แก้สูตรที่คอลัมน์ C ชีท Document ไฟล์ Form ก็สามารถใช้ได้ตามต้องการค่ะ
ปัญหานี้สามารถสรุปเองได้จากผลลัพธ์ที่ได้อยู่แล้วครับ
suka wrote:ทดลองเปลี่ยนสลับคอลัมน์ D และคอลัมน์ E ที่ฐานข้อมูลเลขที่ก็รันได้ตามต้องการค่ะ แต่มีข้อสงสัยแค่ปรับสูตรเท่านั้นทำไม่ไฟล์ Form.xlsm ถึงเล็กลงมายมายค่ะ
ถ้าแค่ปรับสูตรแล้วไฟล์เล็กลง ต้องสรุปมาด้วยว่าปรับกี่สูตร กี่เซลล์ ถ้าสูตรเดียว และไม่กี่เซลล์ย่อมไม่กระทบกับขนาดไฟล์ให้ใหญ่หรือเล็กลงมากจนเป็นสาระสำคัญครับ
Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน
Posted: Fri Mar 28, 2014 5:57 pm
by suka
ปรับสูตรเดียวที่คอลัมน์ C แค่ 2 เซลล์เท่านั้นค่ะ ไฟล์แนบก่อนหน้าเกิน 300 KB ต้อง ZipFile ไฟล์แนบล่าสุดทีปรับสูตรเหลิอ 80 KB เห็นว่าต่างกันมากค่ะ
Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน
Posted: Fri Mar 28, 2014 7:02 pm
by snasui
ถ้าเป็นสูตรเดิมปรับแค่ให้ถูกต้อง ไม่น่าจะมีผลให้ฟล์เล็กหรือใหญ่ แต่หากเปลี่ยนเป็นสูตรที่ซับซ้อนน้อยลงมากหรือปรับให้กลายเป็นสูตรพื้น ๆ เช่นนี้อาจจะมีผลอยู่บ้างครับ
Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน
Posted: Fri Mar 28, 2014 8:25 pm
by suka
ขอบคุณค่ะอาจารย์
suka wrote:ขอความช่วยเหลือค่ะ ขอรบกวนช่วยทดสอบโค๊ดไฟล์แนบชีท Form เซลล์ O2 เลือกเอกสาร เซลล์ M2 เป็นตัวลขสุดท้ายจากไฟล์ PWbShare Code ไม่บวกเลขเพิ่มเมื่อบันทึกข้อมูลไปที่ฐานข้อมูลเลขสุดท้ายเลขที่คอลัมน์ F ไฟล์ PWbShare ค่ะ ขอบตุณค่ะ
จากการพยายามแก้ปัญหานี้ (ซึ่งทราบสาเหตุและสามารถแก้ได้แล้ว)
ช่วงพยายามแก้ปัญหานั้นไม่ทราบว่าทำอะไรไปบ้างค่ะ จนทำให้ไปกระทบกับไฟล์อื่นที่ใช้ไฟล์แชร์ร่วมกันอีกหลายไฟล์ บางไฟล์ Record ไม่ได้เลยค่ะ ตอนนี้ได้แต่ค่อยๆหาวิธีแก้ไขค่ะ
ขอช่วยแนะนำค่ะหากมีเหตุที่ต้องแก้ไฟล์ที่มีการแชร์และเชื่อมโยงหลายๆไฟล์ เพื่อป้องกันการเสียหายของไฟล์ต่าง เช่นที่เป็นในครั้งนี้ค่ะ
Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน
Posted: Fri Mar 28, 2014 9:10 pm
by snasui
ไว้ให้มีปัญหานั้นก่อนแล้วค่อยถามมาครับ คุณ suka สามารถทำงานกับ Excel ในทุกๆ แบบตามที่ต้องการ ไม่มีข้อห้ามใดทั้งสิ้น เมื่อทำแล้วเกิดปัญหาใดค่อยมาแก้ไขแทน ผมไม่นิยมให้หลีกเลี่ยงที่จะทำเช่นนั้นเช่นนี้ เพราะเมื่อเจอปัญหาจะไม่สามารถแก้ไขและป้องกันได้ด้วยตนเอง หากได้ลองทำแล้วเกิดปัญหาจะได้ทราบเองว่าสิ่งใดที่ควรระมัดระวังในการใช้งานครับ
Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน
Posted: Sat Mar 29, 2014 12:07 pm
by suka
ขอบคุณค่ะอาจารย์
การมีปัญหาในครั้งนี้ ทำให้ต้องตามแก้ไฟล์หลายไฟล์ ตามแก้มาหลายวันคงจะช่วยได้บ้างค่ะ ทำให้รู้ได้มากขึ้นว่าสิ่งใดที่ควรระมัดระวังในการใช้งานค่ะ