: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

เลือกข้อมูลใน List Box แล้วกดปุ่มปริ๊น

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

เลือกข้อมูลใน List Box แล้วกดปุ่มปริ๊น

#1

Post by piman »

สวัสดีครับ
เดิมที่เมื่อกดปุ่มปริ๊นแล้วให้ข้อมูลใน Textbox แต่ละช่อง ไปอยู่ใน Cell ที่จัดเตรียมไว้ทำเป็นฟอร์มสำหรับปริ๊นครับ

ทีนี้ผมต้องการให้เลือกข้อมูลใน List box แล้วก็กดปุ่มปริ๊น ให้ส่งค่า ใน List box ไปใส่ไว้ใน Cell ที่กำหนดไว้ครับ

ผมลองทดสอบส่งข้อมูลจาก Textbox สามารถรันได้ปกติครับ

ผมเลยลองนำมาปรับเป็นส่งค่าจาก List box แล้วเกิด error ครับ

Code: Select all

Sub Print_Form()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Dim sh As Worksheet
    Set sh = ThisWorkbook.Sheets("Historyemp")
    With Userform1

        sh.Range("I2").Value = Me.lstData.List(Me.lstData.ListIndex, 1)
        sh.Range("I4").Value = Me.lstData.List(Me.lstData.ListIndex, 2)
        sh.Range("D8").Value = Me.lstData.List(Me.lstData.ListIndex, 3)

 
        sh.PageSetup.PrintArea = "$A$1:$K$48"
       
       sh.ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & Application.PathSeparator & Userform1.Me.lstData.List(Me.lstData.ListIndex, 4).Value & ".pdf"
       
MsgBox "ปริ๊นข้อมูลเรียบร้อยแล้ว.", vbOKOnly + vbInformation, "Print"
Application.ScreenUpdating = True
Application.DisplayAlerts = True

    End With
End Sub
User avatar
logic
Gold
Gold
Posts: 1510
Joined: Thu Mar 18, 2010 1:57 pm
Excel Ver: 365

Re: เลือกข้อมูลใน List Box แล้วกดปุ่มปริ๊น

#2

Post by logic »

ขอไฟล์แนบที่ใส่โค้ดมาแล้ว ไม่มีไฟล์ให้ดูคนไม่ชำนาญจะคลำทางลำบากครับ
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: เลือกข้อมูลใน List Box แล้วกดปุ่มปริ๊น

#3

Post by piman »

ไฟล์แนบครับผม
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: เลือกข้อมูลใน List Box แล้วกดปุ่มปริ๊น

#4

Post by snasui »

:D Procedure ที่ชื่อ Print_Form มี Code ไม่ตรงกับที่โพสต์มาในความเห็น #1 กรุณาแนบไฟล์มาใหม่ครับ
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: เลือกข้อมูลใน List Box แล้วกดปุ่มปริ๊น

#5

Post by piman »

ผมแนบไฟล์มาให้ใหม่แล้วครับผม

ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: เลือกข้อมูลใน List Box แล้วกดปุ่มปริ๊น

#6

Post by snasui »

:D ตัวอย่างการ Loop ครับ

Code: Select all

With Userform1
    For i = 0 To .lstData.ListCount - 1
        For j = 0 To .lstData.ColumnCount - 1
            sh.Range("I2").Offset(i, j).Value = .lstData.List(i, j)
        Next j
    Next i
End With
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: เลือกข้อมูลใน List Box แล้วกดปุ่มปริ๊น

#7

Post by piman »

ขอบคุณครับ
ผมลองนำ Code ที่อาจารย์แนะนำใช้
ส่วนที่ 1 ผมลองรันก่อนหน้านี้ มีขึ้น error ที่ i j ครับ ผมเลยเพิ่ม

Code: Select all

 Dim i As Long, j As Long
รันผ่าน ไม่แน่ใจว่าถูกหรือไม่ครับอาจารย์

ส่วนที่ 2 ทีนี้ลองรัน มีขึ้น error ที่

Code: Select all

Set sh = ThisWorkbook.Sheets("Historyemp")
ส่วนที่ 3 กรณี ที่รันผ่านครับ

Code: Select all

sh.ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & Application.PathSeparator & Userform1.txtName.Value & ".pdf"
ส่วน Code นี้เดิมที จะตั้งชื่อไฟล์จาก txtName ครับ แต่ถ้าดึงข้อมูลจาก ListBox จะดึงข้อมูลส่วนไหนมาตั้งเป็นชื่อไฟล์ PDF ครับ

ขอบคุณครับ

Code: Select all

Sub Print_Form()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Dim sh As Worksheet
    Dim i As Long, j As Long
    Set sh = ThisWorkbook.Sheets("Historyemp")
    With Userform1
    For i = 0 To .lstData.ListCount - 1
        For j = 0 To .lstData.ColumnCount - 1
            sh.Range("I2").Offset(i, j).Value = .lstData.List(i, j)
            sh.Range("I4").Offset(i, j).Value = .lstData.List(i, j)
            sh.Range("D8").Offset(i, j).Value = .lstData.List(i, j)
        Next j
        Next i
        
        sh.PageSetup.PrintArea = "$A$1:$K$48"

       sh.ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & Application.PathSeparator & Userform1.txtName.Value & ".pdf"
       
MsgBox "»ÃÔê¹¢éÍÁÙÅàÃÕºÃéÍÂáÅéÇ.", vbOKOnly + vbInformation, "Print"
Application.ScreenUpdating = True
Application.DisplayAlerts = True

    End With
End Sub
You do not have the required permissions to view the files attached to this post.
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: เลือกข้อมูลใน List Box แล้วกดปุ่มปริ๊น

#8

Post by piman »

แก้ไขครับอาจารย์

เนื่องจาก Sheet ที่ชื่อ Historyemp ไม่มีจึงเกิด Error ครับ

ตอนนี้กดรัน แล้วเจอ Error ในส่วนที่ 3 ครับ
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: เลือกข้อมูลใน List Box แล้วกดปุ่มปริ๊น

#9

Post by piman »

แก้ไขครับอาจารย์

เนื่องจาก Sheet ที่ชื่อ Historyemp ไม่มีจึงเกิด Error ครับ

ตอนนี้กดรัน แล้วเจอ Error ในส่วนที่ 3 ครับ
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: เลือกข้อมูลใน List Box แล้วกดปุ่มปริ๊น

#10

Post by piman »

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

Re: เลือกข้อมูลใน List Box แล้วกดปุ่มปริ๊น

#11

Post by snasui »

:D ในส่วนของการดึงค่าจาก TextBox คือ Userform1.txtName.Value ได้แก้แล้วยัง แก้เป็นอะไรครับ :?:

ในส่วนนี้ต้องทราบเองว่าจะใช้อะไรเป็นชื่อของไฟล์ หากจะใช้ค่าใน ListBox ก็ต้องทราบว่าเอามาจากบรรทัดไหน คอลัมน์ไหน ซึ่งต้องปรับมาเองก่อน ติดแล้วค่อยถามกันต่อครับ
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: เลือกข้อมูลใน List Box แล้วกดปุ่มปริ๊น

#12

Post by piman »

ผมนำข้อมูลใน List Box ช่องที่ 4 คือชื่อ - นามสกุลครับ มาตั้งเป็นชื่อไฟล์

Code: Select all

 sh.ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & Application.PathSeparator & Userform1.lstData.List(Userform1.lstData.ListIndex, 4) & ".pdf" 
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: เลือกข้อมูลใน List Box แล้วกดปุ่มปริ๊น

#13

Post by snasui »

:D ได้ผลเป็นอย่างไรหรือติดปัญหาอะไร หรือแค่แจ้งเพื่อทราบว่าทำงานได้ปกติแล้วครับ :?:
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: เลือกข้อมูลใน List Box แล้วกดปุ่มปริ๊น

#14

Post by piman »

ขึ้น error ที่บรรทัดนี้ครับ

และข้อมูลที่ไปแสดงที่ชีท Historyemp มาทั้งหมดเลย ไม่ได้มาเฉพาะข้อมูลที่เราเลือก และไม่อยู่ในตำแหน่งที่เรากำหนดครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: เลือกข้อมูลใน List Box แล้วกดปุ่มปริ๊น

#15

Post by snasui »

:D ลักษณะการแสดงที่ไม่ตรงกับตำแหน่งเป้าหมาย ต้องเข้าไปปรับใน Code ให้วางข้อมูลให้ตรงกับตำแหน่งปลายทางที่ต้องการครับ

ในภาพไม่ใช่ Error ของ Code แต่อย่างใด ขึ้นอยู่กับการกำหนดของเราเองครับ
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: เลือกข้อมูลใน List Box แล้วกดปุ่มปริ๊น

#16

Post by piman »

ครับอาจารย์ ส่วนของการตั้งชื่อ PDF ขึ้น error ที่บรรทัดนี้ครับ

Code: Select all

 sh.ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & Application.PathSeparator & Userform1.lstData.List(Userform1.lstData.ListIndex, 4) & ".pdf" 
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: เลือกข้อมูลใน List Box แล้วกดปุ่มปริ๊น

#17

Post by snasui »

:D แนบตัวอย่างไฟล์พร้อม Code ที่มีปัญหามาด้วยครับ
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: เลือกข้อมูลใน List Box แล้วกดปุ่มปริ๊น

#18

Post by piman »

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

Re: เลือกข้อมูลใน List Box แล้วกดปุ่มปริ๊น

#19

Post by snasui »

:D ชื่อ สกุลไม่ได้เหมือนกันทุกบรรทัด จะเลือกบรรทัดไหน ใช้หลักเกณฑ์ใดในการเลือกบรรทัดนั้นครับ :?:
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: เลือกข้อมูลใน List Box แล้วกดปุ่มปริ๊น

#20

Post by piman »

ขอบคุณครับอาจารย์ ผมขอไปหาข้อมูลเพิ่มเติมในส่วนนี้ก่อนครับ

ผมเลยลองกลับไปใช้แบบเดิมก่อน คือ รันโปรแกรม แล้วเลือกข้อมูลใน List Box แล้วกดปุ่มแก้ไข เพื่อให้ข้อมูลไปแสดงใน Text Box ก่อนครับ

หลังจากนั้นจึงค่อยกดปุ่มปริ๊นครับ สามารถแสดงผลได้ปกติครับ

***ผมได้ทำก่อนซ่อนชีท Historyemp ที่สร้างเป็นฟอร์มสำหรับปริ๊นไว้ พอกดรัน ขึ้น Error ที่บรรทัดนี้ครับ***

Code: Select all

 sh.ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & Application.PathSeparator & Userform1.txtName.Value & ".pdf"
โปรแกรมน่าจะหา Sheet Historyemp ที่ต้องนำข้อมูลไปกรอกใช่หรือไม่ครับอาจารย์
Post Reply