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

บันทึกข้อมูล

ฟอรั่มถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถาม-ตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบ ต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. อธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. ควรแนบตัวอย่างไฟล์มาที่ฟอรั่มนี้เพื่อเพิ่มความสะดวกในการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่น นอกจากนี้ไม่ควรแนบไฟลที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. สำหรับคำถามเกี่ยวกับ VBA ให้ลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน ควรโพสต์ Code ให้แสดงเป็น Code เพื่อสะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. แจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
Benmore
Member
Member
Posts: 212
Joined: Tue Sep 05, 2017 9:51 am

บันทึกข้อมูล

#1

Postby Benmore » Thu Nov 09, 2017 8:17 pm

ขอสอบถามหน่อยค่ะ พอดีตอนนี้ติดปัญหาในการบันทึกข้อมูลค่ะ
เมื่อบันทึกข้อมูลลงไป ข้อมูลจะถูกบันทึกลงในชีท excel แทนที่กันไปเรื่อยๆไม่บันทึกลงมาเรื่อยๆค่ะ ต้องแก้ตรงไหนค่ะ

Code: Select all

'Save
Private Sub btsave_Click()
On Error Resume Next
Dim emptyRow As Integer
Dim strTb1 As Variant
Dim strTb3 As Variant
emptyRow = WorksheetFunction.Count("A3:A10000") + 1
If emptyRow = 0 Then
    emptyRow = 2
Else
   emptyRow = emptyRow + 2
   Sheet9.Activate
   strTb1 = Split(TextBox1.Text, vbCrLf)
strTb3 = TextBox3.Text & vbCrLf
strTb3 = strTb3 & vbCrLf
strTb3 = strTb3 & vbCrLf
strTb3 = Split(strTb3, vbCrLf)
Cells(emptyRow, 1).Value = VBA.Mid(strTb1(0), InStr(strTb1(0), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 2).Value = VBA.Mid(strTb1(1), InStr(strTb1(1), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 3).Value = VBA.Mid(strTb1(2), InStr(strTb1(2), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 4).Value = VBA.Mid(strTb1(3), InStr(strTb1(3), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 6).Value = strTb3(0) & "," & strTb3(1) & "," & strTb3(2) & vbCrLf & strTb3(3) & "," & strTb3(4) & "," & strTb3(5) 'TextBox3.Value
Cells(emptyRow, 7).Value = VBA.Mid(strTb3(6), InStr(strTb3(6), ":") + 1) & vbCrLf & VBA.Mid(strTb3(7), InStr(strTb3(7), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 5).Value = comday.Value & "/" & commonth.Value & "/" & comyear.Value
   MsgBox "บันทึกข้อมูลเรียบร้อยแล้ว"
     Unload Me
     Sheet1.Activate
End If
End Sub
You do not have the required permissions to view the files attached to this post.

User avatar
snasui
Site Admin
Site Admin
Posts: 22234
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: บันทึกข้อมูล

#2

Postby snasui » Fri Nov 10, 2017 6:47 am

:D ช่วยกลับไปแจ้งผลในกระทู้เหล่านี้ก่อนครับ search.php?keywords=&terms=all&author=Benmore&sc=1&sf=all&sr=topics&sk=t&sd=d&st=0&ch=300&t=0&submit=Search

Benmore
Member
Member
Posts: 212
Joined: Tue Sep 05, 2017 9:51 am

Re: บันทึกข้อมูล

#3

Postby Benmore » Sun Nov 12, 2017 9:56 am

Benmore wrote:ขอสอบถามหน่อยค่ะ พอดีตอนนี้ติดปัญหาในการบันทึกข้อมูลค่ะ
เมื่อบันทึกข้อมูลลงไป ข้อมูลจะถูกบันทึกลงในชีท excel แทนที่กันไปเรื่อยๆไม่บันทึกลงมาเรื่อยๆค่ะ ต้องแก้ตรงไหนค่ะ

Code: Select all

'Save
Private Sub btsave_Click()
On Error Resume Next
Dim emptyRow As Integer
Dim strTb1 As Variant
Dim strTb3 As Variant
emptyRow = WorksheetFunction.Count("A3:A10000") + 1
If emptyRow = 0 Then
    emptyRow = 2
Else
   emptyRow = emptyRow + 2
   Sheet9.Activate
   strTb1 = Split(TextBox1.Text, vbCrLf)
strTb3 = TextBox3.Text & vbCrLf
strTb3 = strTb3 & vbCrLf
strTb3 = strTb3 & vbCrLf
strTb3 = Split(strTb3, vbCrLf)
Cells(emptyRow, 1).Value = VBA.Mid(strTb1(0), InStr(strTb1(0), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 2).Value = VBA.Mid(strTb1(1), InStr(strTb1(1), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 3).Value = VBA.Mid(strTb1(2), InStr(strTb1(2), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 4).Value = VBA.Mid(strTb1(3), InStr(strTb1(3), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 6).Value = strTb3(0) & "," & strTb3(1) & "," & strTb3(2) & vbCrLf & strTb3(3) & "," & strTb3(4) & "," & strTb3(5) 'TextBox3.Value
Cells(emptyRow, 7).Value = VBA.Mid(strTb3(6), InStr(strTb3(6), ":") + 1) & vbCrLf & VBA.Mid(strTb3(7), InStr(strTb3(7), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 5).Value = comday.Value & "/" & commonth.Value & "/" & comyear.Value
   MsgBox "บันทึกข้อมูลเรียบร้อยแล้ว"
     Unload Me
     Sheet1.Activate
End If
End Sub

รบกวนขอผู้รู้ช่วยหน่อยค่ะ

User avatar
snasui
Site Admin
Site Admin
Posts: 22234
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: บันทึกข้อมูล

#4

Postby snasui » Sun Nov 12, 2017 3:53 pm

:D ตัวอย่างการปรับ Code ครับ emptyRow = WorksheetFunction.CountA(Sheet9.Range("A3:A10000")) + 1

Benmore
Member
Member
Posts: 212
Joined: Tue Sep 05, 2017 9:51 am

Re: บันทึกข้อมูล

#5

Postby Benmore » Mon Nov 13, 2017 9:03 am

snasui wrote::D ตัวอย่างการปรับ Code ครับ emptyRow = WorksheetFunction.CountA(Sheet9.Range("A3:A10000")) + 1

ตรงบันทึกทำได้แล้วขอบคุณมากค่ะ (ติดตรงนี้มานานมากกกกกกก55555)
ขอสอบถามเพิ่มเติ่มค่ะ
ถ้าต้องการให้เลือกข้อมูลในวงกลมแล้วไม่ให้ข้อมูลแสดงใน textbox3 แต่เมื่อบันทึกข้อมูลลงไปให้ข้อมูลถูกบันทึกในชีทตามที่กำหนดต้องแก้โค้ดเพิ่มตรงไหนบ้างค่ะ
รูป.png
You do not have the required permissions to view the files attached to this post.

User avatar
snasui
Site Admin
Site Admin
Posts: 22234
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: บันทึกข้อมูล

#6

Postby snasui » Mon Nov 13, 2017 7:53 pm

:D ได้กลับไปแจ้งผลตามที่ผมแจ้งไปในความเห็น #2 แล้วหรือไม่ ผมพบว่ามีการแจ้งแค่ไม่กี่กระทู้จากกระทู้ทั้งหมด

กรณีติดขัดตรงไหน อย่างไร หรือรอทดสอบ หรือเปลี่ยนวิธีการ หรือด้วยเหตุอื่น กรุณาแจ้งเอาไว้ด้วยจะได้ทราบว่ากำลังดำเนินการครับ

Benmore
Member
Member
Posts: 212
Joined: Tue Sep 05, 2017 9:51 am

Re: บันทึกข้อมูล

#7

Postby Benmore » Tue Nov 14, 2017 12:41 pm

Benmore wrote:
snasui wrote::D ตัวอย่างการปรับ Code ครับ emptyRow = WorksheetFunction.CountA(Sheet9.Range("A3:A10000")) + 1

ตรงบันทึกทำได้แล้วขอบคุณมากค่ะ (ติดตรงนี้มานานมากกกกกกก55555)
ขอสอบถามเพิ่มเติ่มค่ะ
ถ้าต้องการให้เลือกข้อมูลในวงกลมแล้วไม่ให้ข้อมูลแสดงใน textbox3 แต่เมื่อบันทึกข้อมูลลงไปให้ข้อมูลถูกบันทึกในชีทตามที่กำหนดต้องแก้โค้ดเพิ่มตรงไหนบ้างค่ะ
รูป.png

รบกวนขอผู้รู้ช่วยหน่อยค่ะ

kio2002
Member
Member
Posts: 149
Joined: Thu Sep 20, 2012 8:40 am

Re: บันทึกข้อมูล

#8

Postby kio2002 » Tue Nov 14, 2017 8:32 pm

กระทู้ของคุณ benmore เยอะมากครับ ผมตามไม่ทันเลย
Project ของคุณ benmore ที่กำลังทำอยู่ ถือว่าค่อนข้างซับซ้อนครับ ต้องมีพื้นฐานและความเข้าใจและชำนาญเกี่ยวกับ VBA เป็นอย่างมาก
ก่อนหน้านี้ ผมมี Project ยากๆที่ผมเคยลองดันตัวเองแล้ว1ครั้ง แต่ไปไม่รอด เพราะยังมีความเข้าใจเกี่ยวกับ VBA น้อย

Benmore
Member
Member
Posts: 212
Joined: Tue Sep 05, 2017 9:51 am

Re: บันทึกข้อมูล

#9

Postby Benmore » Tue Nov 14, 2017 10:10 pm

kio2002 wrote:กระทู้ของคุณ benmore เยอะมากครับ ผมตามไม่ทันเลย
Project ของคุณ benmore ที่กำลังทำอยู่ ถือว่าค่อนข้างซับซ้อนครับ ต้องมีพื้นฐานและความเข้าใจและชำนาญเกี่ยวกับ VBA เป็นอย่างมาก
ก่อนหน้านี้ ผมมี Project ยากๆที่ผมเคยลองดันตัวเองแล้ว1ครั้ง แต่ไปไม่รอด เพราะยังมีความเข้าใจเกี่ยวกับ VBA น้อย

พอดีว่ากระทู้อื่นทำได้หมดแล้วค่ะ เลยรายงานผลให้ผู้ที่ตอบให้ค่ะว่าทำได้แล้วค่ะ

User avatar
snasui
Site Admin
Site Admin
Posts: 22234
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: บันทึกข้อมูล

#10

Postby snasui » Wed Nov 15, 2017 6:37 am

Benmore wrote:
snasui wrote::D ตัวอย่างการปรับ Code ครับ emptyRow = WorksheetFunction.CountA(Sheet9.Range("A3:A10000")) + 1

ตรงบันทึกทำได้แล้วขอบคุณมากค่ะ (ติดตรงนี้มานานมากกกกกกก55555)
ขอสอบถามเพิ่มเติ่มค่ะ
ถ้าต้องการให้เลือกข้อมูลในวงกลมแล้วไม่ให้ข้อมูลแสดงใน textbox3 แต่เมื่อบันทึกข้อมูลลงไปให้ข้อมูลถูกบันทึกในชีทตามที่กำหนดต้องแก้โค้ดเพิ่มตรงไหนบ้างค่ะ
รูป.png


:D ขั้นตอนการเลือกแล้วไม่เพิ่มใน Textbox3 ไม่ควรจะเป็นปัญหาเพราะไปยกเลิก Change Event เมื่อเลือกไม่ให้ดำเนินการใด ๆ ได้ ปัญหาน่าจะอยู่ที่การบันทักข้อมูลลงในชีตแล้วให้ข้อมูลใน Control เหล่าสนั้นนำไปวางด้วย ได้เขียนการทำงานส่วนนี้เพิ่มเข้าไปแล้วหรือไม่ ติดขัดบรรทัดใด หากยังไม่เขียน กุณาเขียนมาเองก่อน ถามเฉพาะที่ติดปัญหา แจ้งตัวอย่างผลลัพธ์ที่ต้องการเอาไว้ด้วยว่าหากบันทึกถูกต้องจะแสดงรายการที่ชีตใด เซลล์ใด ด้วยค่าเท่าใด จะได้สะดวกในการทดสอบครับ

Benmore
Member
Member
Posts: 212
Joined: Tue Sep 05, 2017 9:51 am

Re: บันทึกข้อมูล

#11

Postby Benmore » Wed Nov 15, 2017 4:21 pm

Code: Select all

'Save
Private Sub btsave_Click()
On Error Resume Next
 If TextBox1 = "" Or TextBox3 = "" Then
                MsgBox "กรุณากรอกข้อมูลให้ครบถ้วน"
        Exit Sub
    End If
Dim emptyRow As Integer
Dim strTb1 As Variant
Dim strTb3 As Variant
emptyRow = WorksheetFunction.CountA(Sheet9.Range("A3:A10000")) + 1
'emptyRow = WorksheetFunction.Count("A3:A10000") + 1
If emptyRow = 0 Then
    emptyRow = 2
Else
   emptyRow = emptyRow + 2
   Sheet9.Activate
   strTb1 = Split(TextBox1.Text, vbCrLf)
strTb3 = TextBox3.Text & vbCrLf
strTb3 = strTb3 & vbCrLf
strTb3 = strTb3 & vbCrLf
strTb3 = Split(strTb3, vbCrLf)
Cells(emptyRow, 1).Value = VBA.Mid(strTb1(0), InStr(strTb1(0), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 2).Value = VBA.Mid(strTb1(1), InStr(strTb1(1), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 3).Value = VBA.Mid(strTb1(2), InStr(strTb1(2), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 4).Value = VBA.Mid(strTb1(3), InStr(strTb1(3), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 6).Value = strTb3(0) & "," & strTb3(1) & "," & strTb3(2) & vbCrLf & strTb3(3) & "," & strTb3(4) & "," & strTb3(5) 'TextBox3.Value
Cells(emptyRow, 7).Value = OptionButton
'Cells(emptyRow, 7).Value = VBA.Mid(strTb3(6), InStr(strTb3(6), ":") + 1) & vbCrLf & VBA.Mid(strTb3(7), InStr(strTb3(7), ":") + 1) 'TextBox1.Value
 'Cells(emptyRow, 8).Value = VBA.Mid(strTb3(8), InStr(strTb3(8), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 5).Value = comday.Value & "/" & commonth.Value & "/" & comyear.Value
   MsgBox "บันทึกข้อมูลเรียบร้อย"
     Unload Me
   UserForm1.Show
End If
Sheet1.Activate
End Sub

ลองแก้โค้ดเองแล้วค่ะก็ยังทำไม่ได้ค่ะ รบกวนสอบถามว่าต้องแก้ไขตรงไหนเพิ่มค่ะ
Uniform_EGAS(Ex).xlsm
You do not have the required permissions to view the files attached to this post.

User avatar
snasui
Site Admin
Site Admin
Posts: 22234
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: บันทึกข้อมูล

#12

Postby snasui » Thu Nov 16, 2017 5:40 am

:D ตัวอย่างการ Loop Option Button ทีมีการเลือกแล้ววางลงในชีตครับ

Code: Select all

'Other code
dim ct as object
'Other code
For Each ct In Me.Frame2.Controls
    If VBA.Left(ct.Name, 3) = "Opt" And ct.Value = True Then
        Debug.Print ct.Name
        Cells(emptyRow, 7).Value = ct.Caption
        Exit For
    End If
Next ct


ปรับให้ใช้ได้กับ Option Button ตัวสุดท้ายที่เป็นตัวเลือกอื่น ๆ ที่ไม่ได้นำ Caption ของ Option Button มาใช้แต่เป็นการตำค่าใน TextBox ที่ผู้ใช้งานคีย์เข้าไปเองมาใช้แทนครับ

Benmore
Member
Member
Posts: 212
Joined: Tue Sep 05, 2017 9:51 am

Re: บันทึกข้อมูล

#13

Postby Benmore » Thu Nov 16, 2017 8:54 am

snasui wrote::D ตัวอย่างการ Loop Option Button ทีมีการเลือกแล้ววางลงในชีตครับ

Code: Select all

'Other code
dim ct as object
'Other code
For Each ct In Me.Frame2.Controls
    If VBA.Left(ct.Name, 3) = "Opt" And ct.Value = True Then
        Debug.Print ct.Name
        Cells(emptyRow, 7).Value = ct.Caption
        Exit For
    End If
Next ct


ปรับให้ใช้ได้กับ Option Button ตัวสุดท้ายที่เป็นตัวเลือกอื่น ๆ ที่ไม่ได้นำ Caption ของ Option Button มาใช้แต่เป็นการตำค่าใน TextBox ที่ผู้ใช้งานคีย์เข้าไปเองมาใช้แทนครับ


[code][/'Save
Private Sub btsave_Click()
On Error Resume Next
If TextBox1 = "" Or TextBox3 = "" Then
MsgBox "กรุณากรอกข้อมูลให้ครบถ้วน"
Exit Sub
End If
Dim emptyRow As Integer
Dim ct As Object
Dim strTb1 As Variant
Dim strTb3 As Variant

For Each ct In Me.Frame2.Controls
If VBA.Left(ct.Name, 3) = "Opt" And ct.Value = True Then
Debug.Print ct.Name
Cells(emptyRow, 7).Value = ct.Caption
Exit For
End If
Next ct
For Each ct In Me.Frame5.Controls
If VBA.Left(ct.Name, 4) = "Opt" And ct.Value = True Then
Debug.Print ct.Name
Cells(emptyRow, 8).Value = ct.Caption
Exit For
End If
Next ct
emptyRow = WorksheetFunction.CountA(Sheet9.Range("A3:A10000")) + 1
'emptyRow = WorksheetFunction.Count("A3:A10000") + 1
If emptyRow = 0 Then
emptyRow = 2
Else
emptyRow = emptyRow + 2
Sheet9.Activate
strTb1 = Split(TextBox1.Text, vbCrLf)
strTb3 = TextBox3.Text & vbCrLf
strTb3 = strTb3 & vbCrLf
strTb3 = strTb3 & vbCrLf
strTb3 = Split(strTb3, vbCrLf)
Cells(emptyRow, 1).Value = VBA.Mid(strTb1(0), InStr(strTb1(0), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 2).Value = VBA.Mid(strTb1(1), InStr(strTb1(1), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 3).Value = VBA.Mid(strTb1(2), InStr(strTb1(2), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 4).Value = VBA.Mid(strTb1(3), InStr(strTb1(3), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 6).Value = strTb3(0) & "," & strTb3(1) & "," & strTb3(2) & vbCrLf & strTb3(3) & "," & strTb3(4) & "," & strTb3(5) 'TextBox3.Value
'Cells(emptyRow, 7).Value = OptionButton
'Cells(emptyRow, 7).Value = VBA.Mid(strTb3(6), InStr(strTb3(6), ":") + 1) & vbCrLf & VBA.Mid(strTb3(7), InStr(strTb3(7), ":") + 1) 'TextBox1.Value
'Cells(emptyRow, 8).Value = VBA.Mid(strTb3(8), InStr(strTb3(8), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 5).Value = comday.Value & "/" & commonth.Value & "/" & comyear.Value
MsgBox "บันทึกข้อมูลเรียบร้อยแล้ว"
Unload Me
UserForm1.Show
End If
Sheet1.Activate
End Sub{code]
ปรับโค้ดแล้วก็ยังไม่ได้ค้ะ ต้องปรับตรงไหนเพิ่มค่ะ

User avatar
snasui
Site Admin
Site Admin
Posts: 22234
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: บันทึกข้อมูล

#14

Postby snasui » Thu Nov 16, 2017 9:03 am

:D โพสต์ Code ให้แสดงเป็น Code แนบไฟล์เฉพาะที่เกี่ยวข้องกับปัญหานี้มาด้วย ไม่จำเป็นต้องแนบส่วนที่ไม่เกี่ยวข้อง แจ้งตัวอย่างข้อมูลทดสอบ ระบุคำตอบปลายทางที่ต้องการ จะได้สะดวกต้องการเข้าถึงปัญหาครับ

Benmore
Member
Member
Posts: 212
Joined: Tue Sep 05, 2017 9:51 am

Re: บันทึกข้อมูล

#15

Postby Benmore » Thu Nov 16, 2017 9:53 am

Code: Select all

'Save
Private Sub btsave_Click()
On Error Resume Next
 If TextBox1 = "" Or TextBox3 = "" Then
 MsgBox "กรุณากรอกข้อมูลให้ครบถ้วน"
Exit Sub
 End If
Dim emptyRow As Integer
Dim ct As Object
Dim strTb1 As Variant
Dim strTb3 As Variant

For Each ct In Me.Frame2.Controls
 If VBA.Left(ct.Name, 3) = "Opt" And ct.Value = True Then
 Debug.Print ct.Name
 Cells(emptyRow, 7).Value = ct.Caption
 Exit For
 End If
Next ct
For Each ct In Me.Frame5.Controls
 If VBA.Left(ct.Name, 4) = "Opt" And ct.Value = True Then
 Debug.Print ct.Name
 Cells(emptyRow, 8).Value = ct.Caption
 Exit For
 End If
Next ct
emptyRow = WorksheetFunction.CountA(Sheet9.Range("A3:A10000")) + 1
'emptyRow = WorksheetFunction.Count("A3:A10000") + 1
If emptyRow = 0 Then
 emptyRow = 2
Else
 emptyRow = emptyRow + 2
 Sheet9.Activate
 strTb1 = Split(TextBox1.Text, vbCrLf)
strTb3 = TextBox3.Text & vbCrLf
strTb3 = strTb3 & vbCrLf
strTb3 = strTb3 & vbCrLf
strTb3 = Split(strTb3, vbCrLf)
Cells(emptyRow, 1).Value = VBA.Mid(strTb1(0), InStr(strTb1(0), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 2).Value = VBA.Mid(strTb1(1), InStr(strTb1(1), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 3).Value = VBA.Mid(strTb1(2), InStr(strTb1(2), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 4).Value = VBA.Mid(strTb1(3), InStr(strTb1(3), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 6).Value = strTb3(0) & "," & strTb3(1) & "," & strTb3(2) & vbCrLf & strTb3(3) & "," & strTb3(4) & "," & strTb3(5) 'TextBox3.Value
'Cells(emptyRow, 7).Value = OptionButton
Cells(emptyRow, 5).Value = comday.Value & "/" & commonth.Value & "/" & comyear.Value
 MsgBox "บันทึกข้อมูลเรียบร้อยแล้ว"
Unload Me
 UserForm1.Show
End If
Sheet1.Activate
End Sub

ตัวอย่างโค้ดค่ะ
You do not have the required permissions to view the files attached to this post.

User avatar
snasui
Site Admin
Site Admin
Posts: 22234
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: บันทึกข้อมูล

#16

Postby snasui » Thu Nov 16, 2017 10:04 am

:D กรุณาอ่านที่ผมโพสต์และแจ้งมาตามนั้นให้ครบถ้วนทุกข้อความที่ผมเขียนแจ้งไป โดยเขียนมาในช่องความเห็นนี้ด้วยครับ

Benmore
Member
Member
Posts: 212
Joined: Tue Sep 05, 2017 9:51 am

Re: บันทึกข้อมูล

#17

Postby Benmore » Thu Nov 16, 2017 10:16 am

snasui wrote::D กรุณาอ่านที่ผมโพสต์และแจ้งมาตามนั้นให้ครบถ้วนทุกข้อความที่ผมเขียนแจ้งไป โดยเขียนมาในช่องความเห็นนี้ด้วยครับ

:arrow: ให้เลือกข้อมูลใน option button แล้วข้อมูลที่เราเลือกก็จะถูกบันทึกลงในชีทการเบิกในคอลลัมตามที่เราต้องการค่ะ

User avatar
snasui
Site Admin
Site Admin
Posts: 22234
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: บันทึกข้อมูล

#18

Postby snasui » Thu Nov 16, 2017 10:56 am

:D อ่านโพสต์ #14 ซ้ำอีกรอบแล้วตอบมาให้ครบตามที่ผมแจ้งไปครับ

Benmore
Member
Member
Posts: 212
Joined: Tue Sep 05, 2017 9:51 am

Re: บันทึกข้อมูล

#19

Postby Benmore » Thu Nov 16, 2017 11:14 am

snasui wrote::D กรุณาอ่านที่ผมโพสต์และแจ้งมาตามนั้นให้ครบถ้วนทุกข้อความที่ผมเขียนแจ้งไป โดยเขียนมาในช่องความเห็นนี้ด้วยครับ

Code: Select all

Private Sub btsave_Click()
On Error Resume Next
 If TextBox1 = "" Or TextBox3 = "" Then
 MsgBox "กรุณากรอกข้อมูลให้ครบถ้วน"
Exit Sub
 End If
Dim emptyRow As Integer
Dim ct As Object
Dim strTb1 As Variant
Dim strTb3 As Variant

For Each ct In Me.Frame2.Controls
 If VBA.Left(ct.Name, 3) = "Opt" And ct.Value = True Then
 Debug.Print ct.Name
 Cells(emptyRow, 7).Value = ct.Caption
 Exit For
 End If
Next ct
For Each ct In Me.Frame5.Controls
 If VBA.Left(ct.Name, 4) = "Opt" And ct.Value = True Then
 Debug.Print ct.Name
 Cells(emptyRow, 8).Value = ct.Caption
 Exit For
 End If
Next ct
emptyRow = WorksheetFunction.CountA(Sheet9.Range("A3:A10000")) + 1
'emptyRow = WorksheetFunction.Count("A3:A10000") + 1
If emptyRow = 0 Then
 emptyRow = 2
Else
 emptyRow = emptyRow + 2
 Sheet9.Activate
 strTb1 = Split(TextBox1.Text, vbCrLf)
strTb3 = TextBox3.Text & vbCrLf
strTb3 = strTb3 & vbCrLf
strTb3 = strTb3 & vbCrLf
strTb3 = Split(strTb3, vbCrLf)
Cells(emptyRow, 1).Value = VBA.Mid(strTb1(0), InStr(strTb1(0), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 2).Value = VBA.Mid(strTb1(1), InStr(strTb1(1), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 3).Value = VBA.Mid(strTb1(2), InStr(strTb1(2), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 4).Value = VBA.Mid(strTb1(3), InStr(strTb1(3), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 6).Value = strTb3(0) & "," & strTb3(1) & "," & strTb3(2) & vbCrLf & strTb3(3) & "," & strTb3(4) & "," & strTb3(5) 'TextBox3.Value
'Cells(emptyRow, 7).Value = OptionButton
Cells(emptyRow, 5).Value = comday.Value & "/" & commonth.Value & "/" & comyear.Value
 MsgBox "บันทึกข้อมูลเรียบร้อยแล้ว"
Unload Me
 UserForm1.Show
End If
Sheet1.Activate
End Sub

:arrow: เมื่อเลือกข้อมูลใน option button ในส่วนของ Reason แล้วพอกดปุ่มบันทึกให้ข้อมูลถูกบันทึกลงในคอลลัมน์ Reason ในชีทการเบิกค่ะ
:arrow: เมื่อเลือกข้อมูลใน option button ในส่วนของ Status แล้วพอกดปุ่มบันทึกให้ข้อมูลถูกบันทึกลงในคอลลัมน์ Status ในชีทการเบิกค่ะ
:ard:
ปัญหาที่แจ้งอยู่ที่ UserForm1 ค่ะ
:aru:
You do not have the required permissions to view the files attached to this post.

User avatar
snasui
Site Admin
Site Admin
Posts: 22234
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: บันทึกข้อมูล

#20

Postby snasui » Thu Nov 16, 2017 11:20 am

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


Return to “Excel”

Who is online

Users browsing this forum: Google Feedfetcher, hoon, puriwutpokin, sooksun2009 and 35 guests