Page 1 of 1

เซียน VBA ช่วยด้วยครับ

Posted: Mon Jan 17, 2011 5:32 pm
by smashclub
สวัสดีครับพี่น้องชาวไทยแอดมินทุกท่าน

คือแบบว่าผมเป็นคนนึงที่สนใจเรื่องการเขียนโปรแกรมแต่ไม่มีประสบการณ์เลยอ่ะ
และที่ต้องการถามเพราะว่างานที่ทำอยู่ครับมันมีปัญหาบ่อยเรื่องการใช้งาน Excel นี่แหละ
ไม่ค่อยจะเก่งเลย จึงอยากได้อะไรมาช่วยผ่อนแรงครับ
คือจะต้อง Export จากอีกโปรแกรมนึงออกมาทำสรุปรายงานประจำเดือนและประจำปี
และมีข้อมูลภายนอกอีกที่ต้องคีย์ลงไปเอง (คือนำข้อมูลทั้ง2อัน มาใช้ร่วมกัน)
แบบว่าถ้าหากคีย์ข้อมูลลงไปเองมันมีโอกาสผิดพลาด (อันที่จริงพอทำเสร็จมาตรวจอีกที
ก็มีผิดอยู่หลายที่ต้องมานั่งแก้ไขอีก เอาเป็นว่าเริ่มเลยก็แล้วกันนะครับ

1. ต้องการหน้าโปรแกรมรับข้อมูลครับ (รู้สึกว่ามันเขียนเป็น Vba ได้อะไรประมาณนี้อ่ะครับ เพื่อนแนะนำมาอีกที)
2. ข้อมูลมีอยู่ 5 ส่วนด้วยกันครับ แต่ละส่วนจะมีหน้ารับข้อมูลแยกกันไป หรือจะเหมือนกันก็ได้ (แล้วแต่คนที่จะ

กรุณาเขียนมาให้)
คร่าวๆก็มีแค่นี้แหละครับ

ส่งไฟล์ที่จะรับข้อมูลมาด้วยครับ รายละเอียดอื่นๆ อยู่ในนั้นครับ

ขอขอบคุณล่วงหน้านะครับสำหรับผู้ที่ต้องการช่วยหรือเข้ามาอ่านและให้คำแนะนำ
ถือว่าช่วยผู้ด้อยความรู้นิดนึง หากได้อธิบายด้วยจะยิ่งดีมากเลยครับ
แบบว่าชอบนั่งอ่านและศึกษาตาม

ขอบคุณครับทุกท่าน

Re: เซียน VBA ช่วยด้วยครับ

Posted: Mon Jan 17, 2011 7:53 pm
by snasui
:D ไม่มีคำอธิบายในไฟล์ครับ ปัญหาคืออะไรครับ ต้องการผลลัพธ์ที่ชีทไหน, เซลล์ไหน เงื่อนไขเป็นอย่างไรระบุมาด้วยครับ :mrgreen:

Re: เซียน VBA ช่วยด้วยครับ

Posted: Tue Jan 18, 2011 11:50 am
by smashclub
อธิบายไม่ถูกครับ เพราะไม่ค่อยรู้เรื่องเอาเป็นว่าผมส่งข้อมูลมาเพิ่มยังงัยก็ขอความช่วยเหลือด้วยนะครับ
ข้อมูลเก็บเข้าตามแถวและคอลัมน์ที่ระบุเลยครับแบบว่าบันทึกลงไปเรื่อยๆ
ไม่มีการแทนที่ คือ ต่อจากบรรทัดสุดท้ายไปเรื่อยๆ
ขอบคุณมากครับท่าน webmaster

Re: เซียน VBA ช่วยด้วยครับ

Posted: Tue Jan 18, 2011 1:23 pm
by snasui
:D ดูแล้วไม่ยากครับ ค่อย ๆ ทำไปก่อนจะได้คุ้นเลย สิ่งที่ต้องทำมาเพิ่มคือ

ออกแบบฟอร์มสำหรับกรอกข้อมูล ตามตัวอย่างที่ส่งมามี 5 Database ก็ออกแบบมา 5 แบบฟอร์มครับ หน้าตาเหมือนกับ Database จะ Copy มาเลยก็ได้ จำนวนบรรทัดในแต่ละฟอร์มที่ทำมาใหม่ก็แล้วแต่กำหนดว่าจะให้บันทึกได้ครั้งละกี่คนครับ จากนั้นส่งตัวอย่างไฟล์มาให้ใหม่ผมจะได้เขียน Code ในการบันทึกข้อมูลต่อท้ายข้อมูลเดิมให้ครับ :mrgreen:

Re: เซียน VBA ช่วยด้วยครับ

Posted: Tue Jan 18, 2011 3:54 pm
by smashclub
ขอบคุณครับท่าน Admin
ออกแบบเรียบร้อยแล้วครับ เฮ้อกว่าจะได้
ชื่อlabel ในแต่ละฟอร์มจะตรงกับที่อยู่ใน worksheet เลยนะครับ
คือ ค่าที่บันทึกจะถูกบันทึกลงไปในคอลัมน์นั้นๆเลยแบบต่อกันไปด้านล่างเรื่อยๆ

Re: เซียน VBA ช่วยด้วยครับ

Posted: Wed Jan 19, 2011 11:23 am
by snasui
:D ฟอร์มที่ผมพูดถึงหมายถึงเป็นการแทรก Worksheet เข้ามา ซึ่งสามารถทำได้ง่ายและเร็วครับ สำหรับฟอร์มที่ออกแบบมาให้นั้นต้องเขียน Code ในการแสดงข้อมูลในช่อง ListBox ซึ่งในฟอรั่มนี้ก็ได้แสดงตัวอย่าง Code ไว้ให้บ้างแล้ว กรณีมีหลายฟอร์ม จะใช้เวลา Coding ค่อนข้างมาก ลองศึกษาต่อยอดด้วยตนเองดูก่อนครับ ติดปัญหาตรงไหนก็ถามมาได้เรื่อย ๆ

สำหรับที่ผมจะแนะนำคือทำฟอร์มขึ้นมาในเซลล์เลย สามารถ Link จากหน้า Main เข้ามา เมื่อบันทึกเสร็จก็วิ่งกลับไปยังหน้า Main ข้อมูลจะวิ่งลงไปยังตารางต่าง ๆ ตามแต่ละประเภท ตัวอย่าง Code ตามด้านล่างครับ

Code: Select all

Sub NewEmpRec()
Dim rs As Range
Dim rt As Range
Set rt = Worksheets("à¢éÒãËÁè").Range("A65536").End(xlUp).Offset(1, 0)
Set rs = Worksheets("Form_à¢éÒãËÁè").Range("A8:J8")
    rs.Copy
    rt.PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    MsgBox "Paste Finish"
    Worksheets("Menu").Select
End Sub
ดูไฟล์แนบประกอบซึ่งทำมาเป็นตัวอย่างเฉพาะชีทเข้าใหม่ครับ

Re: เซียน VBA ช่วยด้วยครับ

Posted: Mon Jan 24, 2011 4:00 pm
by smashclub
ขอบคุณครับ เดี๋ยวจะลองนำไปศึกษาดูครับ
หากมีข้อสงสัยตรงใหนเดี๋ยวจะกลับมาสอบถามอีกครับ
ขอให้ท่าน Admin ร่ำรวยๆๆ มีความสุขตลอดไป
เหมือนกับที่ท่านมอบความรู้ให้พวกเรา