:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

สอบถามโค้ด Excel VBA ผมเขียนโค้ด Userform เพื่อบันทึกข้อมูลลงในตาราง excel

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
thammarat0
Member
Member
Posts: 5
Joined: Tue Apr 28, 2015 2:41 pm

สอบถามโค้ด Excel VBA ผมเขียนโค้ด Userform เพื่อบันทึกข้อมูลลงในตาราง excel

#1

Post by thammarat0 »

สอบถามโค้ด Excel VBA ผมเขียนโค้ด Userform เพื่อบันทึกข้อมูลลงในตาราง excel ซึ่งต่องบันทึเป็นรายเดือน 12 เดือน คือ 12 table และอิงตำแหน่งตาม combobox
ที่ทำไว้ ซึ่งสสามารถบันทึกตามตำแหน่ง combobox ชื่อโครงการได้ แต่เมื่อเปลี่ยน tabel ไปเดือนถัดไปตาม combobox ที่กำหนดไว้ ตำแหน่งที่บันทึกตาม combobox ชื่อโครงการ ไม่เปลี่ยนตาม ผมติดปัญหาอยู่ตรงนี้อะครับ อาจายร์ ช่ายผมหน่อยนะครับผมต้องส่งงานสิ้นเดือนนี้แล้วอะครับ ช่วยหน่อยนะครับ
นี่โค้ดที่ผมเขียนไว้ครับ

Code: Select all

Private Sub Cboproject_Change()
Dim Rw As Range
If Me.Cboproject.ListIndex < 0 Then Exit Sub
 With MyRange.Cells(1).Offset(Cboproject.ListIndex)
    txtแผน.Value = .Offset(, 0).Value
    txtผล.Value = .Offset(, 1).Value
    txtเบิกจ่าย.Value = .Offset(, 2).Value
    End With
For Each Rw In Range(Cboproject.RowSource)
        If Cboproject.Value = Rw Then
            txtProducer.Value = Rw.Next.Next.Next.Next
         
         End If
         Next Rw
End Sub

Private Sub cboSheets_Change()
  Worksheets(cboSheets.Value).Activate
  cboTables.Clear
  Dim lo As ListObject
  For Each lo In ActiveSheet.ListObjects
    cboTables.AddItem lo.Name
  On Error Resume Next
  Next
  If ActiveCell.ListObject.Name = "" Then
    cboTables.ListIndex = 0
  Else
    cboTables.Value = ActiveCell.ListObject.Name
  End If
End Sub

Private Sub cboTables_Change()
  On Error Resume Next 'When Clear()
  Dim Rw As Range
  Dim lo As ListObject
  Set lo = ActiveSheet.ListObjects(cboTables.Value)
  lo.Range.Activate
  
End Sub

Private Sub CmdºÑ¹·Ö¡_Click()
Dim lo As ListObject
Set lo = ActiveSheet.ListObjects(cboTables.Value)

 If Me.Cboproject.ListIndex < 0 Then Exit Sub
 With MyRange.Cells(1).Offset(Cboproject.ListIndex)
    .Offset(, 0).Value = txtแผน.Value
    .Offset(, 1).Value = txtผล.Value
    .Offset(, 2).Value = txtเบิกจ่าย.Value
    End With
 
End Sub
Private Sub Cmd¡àÅÔ¡_Click()
txtแผน.Value = ""
txtผล.Value = ""
txtเบิกจ่าย.Value = ""

End Sub

Private Sub UserForm_Initialize()
Dim myTable As ListObject
Dim MyRng    As Range
  Cboproject.Clear
 
  Set MyRng = MyRange
  
  If Not MyRng Is Nothing Then
    If MyRng.Count = 1 Then
      Cboproject.AddItem MyRng.Value
    Else
      Cboproject.List = MyRange.Value
      
    End If
  End If

With Cboproject
Cboproject.BorderStyle = fmBorderStyleSingle
.RowSource = " °Ò¹¢éÍÁÙÅ!D3:D344"

End With

With cboSheets
  For Each ws In Worksheets
    .AddItem
    If ws Is ActiveSheet Then .Value = ws.Name
  Next ws
  
End With
End Sub

Function MyRange() As Range
  Dim myTable As ListObject
  
  With Sheet1
  
    Set myTable = ActiveSheet.ListObjects("Á¡ÃÒ¤Á2558")
    Set MyRange = .Cells(Rows.Count, "K").End(xlUp)
    If MyRange.Row > 2 Then
      Set MyRange = .Range(.[k3], MyRange)
      On Error Resume Next
  End If
  
    Set myTable = ActiveSheet.ListObjects("¡ØÁÀҾѹ¸ì2558")
    Set MyRange = .Cells(Rows.Count, "N").End(xlUp)
    If MyRange.Row > 2 Then
      Set MyRange = .Range(.[n3], MyRange)
      On Error Resume Next
  End If
  
End With

End Function
ช่วยผมหน่อยนะครับได้โปรด ติดต่อผมได้ที่ https://www.facebook.com/thammarat.mongyoo นะครับ
You do not have the required permissions to view the files attached to this post.
Last edited by thammarat0 on Tue Apr 28, 2015 4:17 pm, edited 3 times in total.
User avatar
snasui
Site Admin
Site Admin
Posts: 30920
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: สอบถามโค้ด Excel VBA ผมเขียนโค้ด Userform เพื่อบันทึกข้อมูลลงในตาราง excel

#2

Post by snasui »

:D อ่านกฎการใช้บอร์ดข้อ 4, 5 ด้านบนแล้วโพสต์มาใหม่อีกรอบครับ

สำหรับการวาง Code ให้แสดงเป็น Code ดูจากโสพต์นี้ครับ viewtopic.php?f=6&t=1187
User avatar
snasui
Site Admin
Site Admin
Posts: 30920
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: สอบถามโค้ด Excel VBA ผมเขียนโค้ด Userform เพื่อบันทึกข้อมูลลงในตาราง excel

#3

Post by snasui »

:D ช่วยยกตัวอย่างข้อมูลพร้อมวิธีทดสอบมาด้วยจะได้สะดวกกับเพื่อน ๆ ในการทดสอบ และชี้ให้เห็นด้วยว่า หากโปรแกรมทำงานถูกต้องข้อมูลดังกล่าวจะบันทึกอยู่ที่ไหน อย่างไร จะได้เข้าถึงปัญหาโดยไวครับ
thammarat0
Member
Member
Posts: 5
Joined: Tue Apr 28, 2015 2:41 pm

Re: สอบถามโค้ด Excel VBA ผมเขียนโค้ด Userform เพื่อบันทึกข้อมูลลงในตาราง excel

#4

Post by thammarat0 »

รูปหน้าตาโปรแกรมครับ
Image
รูปตาราง excel ที่ต้องการบัททึกข้อมูล ถ้าดูจากรูปโปรแกรม ช่อง"ผลงานประจำเดือน" จะอิงตำแหน่งตาม tabal ชื่อเดือนครับ 12 tabal คือ 12 เดือนครับ
Image
และช้่องชื่อโครงการจะอิงตำแหนงตาม ช่องตาราง "บ้าน" ซึ่งจะเป็นชื่อโครงการตามรูปด้านร้างครับ
Image
เมื่อใส้ข้อมูลและกดบันทึกจากโปรแกรมที่ผมทำไว้ จะบันทึกข้อมูลลงตาม ชื่อโครงการและเดือนที่กำหนดไว้ ดังรูปด้านล่างนี้ครับ
Image
ปัญหาคือเมือเปลื่ยนเดือน หรือ tableเดือน ตำแหนงที่บันทึกไม่เปลี่ยนตาม เดือน หรือ tableเดือน ครับ คือประมาณว่าใส้ข้อมูลเลือกชื่อโครงการเลือกเดือนเสร็จกดบันทึก
จะบันทึกได้แค่เดือนเดียวครับ
User avatar
logic
Gold
Gold
Posts: 1510
Joined: Thu Mar 18, 2010 1:57 pm
Excel Ver: 365

Re: สอบถามโค้ด Excel VBA ผมเขียนโค้ด Userform เพื่อบันทึกข้อมูลลงในตาราง excel

#5

Post by logic »

แนบภาพมาที่นี่ดีกว่า ภาพที่ลิ้งก์มา ในเครื่องผมติด Policy เห็นเป็นด้านล่าง :(
You do not have the required permissions to view the files attached to this post.
thammarat0
Member
Member
Posts: 5
Joined: Tue Apr 28, 2015 2:41 pm

Re: สอบถามโค้ด Excel VBA ผมเขียนโค้ด Userform เพื่อบันทึกข้อมูลลงในตาราง excel

#6

Post by thammarat0 »

แนบรูปให้แล้วครับ
You do not have the required permissions to view the files attached to this post.
thammarat0
Member
Member
Posts: 5
Joined: Tue Apr 28, 2015 2:41 pm

Re: สอบถามโค้ด Excel VBA ผมเขียนโค้ด Userform เพื่อบันทึกข้อมูลลงในตาราง excel

#7

Post by thammarat0 »

แนบรูปให้แล้วครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30920
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: สอบถามโค้ด Excel VBA ผมเขียนโค้ด Userform เพื่อบันทึกข้อมูลลงในตาราง excel

#8

Post by snasui »

:D ตัวอย่างการปรับ Code ให้บันทึกตามคอลัมน์ทีกำหนดครับ

Code: Select all

Private Sub Cmdบันทึก_Click()
    Dim lo As Range
    Set lo = Range(ActiveSheet.ListObjects(cboTables.Value))
     If Me.Cboproject.ListIndex < 0 Then Exit Sub
     With lo.Cells(1).Offset(Cboproject.ListIndex)
        .Offset(, 0).Value = txtแผน.Value
        .Offset(, 1).Value = txtผล.Value
        .Offset(, 2).Value = txtเบิกจ่าย.Value
    End With
End Sub
Post Reply