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
:D ลองปรับ 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
:thup: ขอบคุณค่ะอาจารย์ 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
:D ที่เขียนมานั้นใช้ได้แล้ว ไม่ทราบว่ามีปัญหาอะไรครับ

Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน

Posted: Sat Mar 22, 2014 12:07 pm
by suka
ค่ะอาจารย์ เวลากด Record ที่ชีท Form แล้วหน้าจอดับวูบนิดๆค่ะ ทำให้เข้าใจไปเองว่าวางผิดที่น่ะค่ะ

ขอบพระคุณค่ะอาจารย์

Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน

Posted: Sat Mar 22, 2014 12:09 pm
by snasui
:D ถ้ามี 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: :D ถ้ามี Code อื่นที่เรียกใช้ Code นี้ก็ต้องไปใช้ Application.ScreenUpdating กับ Code นั้น ไม่ใช่นำมาใช้ที่ Code นี้ครับ
:lol: อ่านแล้วเข้าใจว่าอย่างไร ควรจะลองทำอย่างไรไหม หรือยังงงครับ :?:

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
:rz: ขออภัยที่แจมครับ

เคยงงมาตั้งนานเหมือนกัน

ใน 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
:D ไฟล์ที่แนบมากับไฟล์ใน 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 ก็สามารถใช้ได้ตามต้องการค่ะ
ปัญหานี้สามารถสรุปเองได้จากผลลัพธ์ที่ได้อยู่แล้วครับ :mrgreen:
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
:D ถ้าเป็นสูตรเดิมปรับแค่ให้ถูกต้อง ไม่น่าจะมีผลให้ฟล์เล็กหรือใหญ่ แต่หากเปลี่ยนเป็นสูตรที่ซับซ้อนน้อยลงมากหรือปรับให้กลายเป็นสูตรพื้น ๆ เช่นนี้อาจจะมีผลอยู่บ้างครับ

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
:D ไว้ให้มีปัญหานั้นก่อนแล้วค่อยถามมาครับ คุณ suka สามารถทำงานกับ Excel ในทุกๆ แบบตามที่ต้องการ ไม่มีข้อห้ามใดทั้งสิ้น เมื่อทำแล้วเกิดปัญหาใดค่อยมาแก้ไขแทน ผมไม่นิยมให้หลีกเลี่ยงที่จะทำเช่นนั้นเช่นนี้ เพราะเมื่อเจอปัญหาจะไม่สามารถแก้ไขและป้องกันได้ด้วยตนเอง หากได้ลองทำแล้วเกิดปัญหาจะได้ทราบเองว่าสิ่งใดที่ควรระมัดระวังในการใช้งานครับ

Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน

Posted: Sat Mar 29, 2014 12:07 pm
by suka
ขอบคุณค่ะอาจารย์

การมีปัญหาในครั้งนี้ ทำให้ต้องตามแก้ไฟล์หลายไฟล์ ตามแก้มาหลายวันคงจะช่วยได้บ้างค่ะ ทำให้รู้ได้มากขึ้นว่าสิ่งใดที่ควรระมัดระวังในการใช้งานค่ะ