snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
Bott
Member
Posts: 9 Joined: Tue Dec 30, 2014 1:29 pm
#1
Post
by Bott » Tue Dec 30, 2014 1:38 pm
ขอช่วยแนะนำ Code VBA ในส่วนของการค้นหาไฟล์ภาพ และนำภาพมาแสดงในexcel
ระบบงานคือ
- จะมีการจัดเก็บภาพถ่ายไว้ในโฟลเดอร์แต่ละอัน
- โดยจะเขียนโค้ด VBA ใน Excel มาเพื่อค้นหาไฟล์ภาพ โดยการใส่ชื่อไฟล์ไปในเซลใดเซลหนึ่งแล้ว ระบบจะทำการค้นหาแล้วนำไฟล์ภาพมาแสดงในอีกคอลัมน์หนึ่ง
snasui
Site Admin
Posts: 31159 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#2
Post
by snasui » Sat Jan 03, 2015 8:31 am
กรณีใช้ VBA ให้ทำตามกฎการใช้บอร์ดข้อ 5 ด้านบนครับ
Bott
Member
Posts: 9 Joined: Tue Dec 30, 2014 1:29 pm
#3
Post
by Bott » Sat Jan 03, 2015 6:03 pm
โค้ดใน Userform1 ในปุ่ม browse ต้องการให้เลือกไฟล์ภาพพอกด open ให้มันแสดงตำแหน่งของไฟล์ภาพใน textbox3 ค่ะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31159 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#4
Post
by snasui » Sat Jan 03, 2015 9:41 pm
ตัวอย่าง Code ตามด้านล่างครับ
Code: Select all
Private Sub CommandButton3_Click()
Dim p As String
p = Application.GetOpenFilename(filefilter:="Picture (*.*),*.*")
If p = "False" Then
MsgBox "Please select file."
Else
TextBox3.Text = p
End If
End Sub
Bott
Member
Posts: 9 Joined: Tue Dec 30, 2014 1:29 pm
#5
Post
by Bott » Sun Jan 04, 2015 12:14 pm
ขอบคุณค่ะอาจารย์ แล้วถ้าต้องการแสดงภาพตัวอย่างเวลากด browse จะต้องเพิ่มเติมโค้ดตรงไหนค่ะ
โค้ด Userform1 ในปุ่ม browse ค่ะ ขอบคุณล่วงหน้าค่ะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31159 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#6
Post
by snasui » Sun Jan 04, 2015 3:13 pm
ต้องการให้แสดงภาพตัวอย่างที่ไหน อย่างไรครับ
Code สำหรับการแสดงภาพตัวอย่างที่เขียนมาเองแล้วชื่อว่าอะไรครับ
Bott
Member
Posts: 9 Joined: Tue Dec 30, 2014 1:29 pm
#7
Post
by Bott » Sun Jan 04, 2015 5:11 pm
ทำได้แล้วค่ะแต่ขอช่วยอาจารย์แนะนำเรื่องโค้ดการโชว์ไฟล์ภาพ
> เมื่อใส่ชื่อภาพไปใน textbox10 แล้ว รายเอียดของภาพจะขึ้นมาตาม textbox ด้านล่าง
> เมื่อกดปุ่ม Next ก็จะเลื่อนไปยังข้อมูลภาพถัดไป
> เมื่อกดปุ่ม back ก็จะเลื่อนมายังภาพก่อนหน้า
*โค้ดจะอยู่ใน Userform2 ใน Multipage ที่ชื่อว่า ค้นหาภาพ
You do not have the required permissions to view the files attached to this post.
logic
Gold
Posts: 1511 Joined: Thu Mar 18, 2010 1:57 pm
Excel Ver: 365
#8
Post
by logic » Sun Jan 04, 2015 7:25 pm
งงครับ
ปุ่ม Back กับ ปุ่ม Next ไม่เห็นมี Code
Bott
Member
Posts: 9 Joined: Tue Dec 30, 2014 1:29 pm
#9
Post
by Bott » Wed Jan 07, 2015 9:39 am
นี่ค่ะ คือต้องการให้พอกดค้นหาแล้วมันแสดงภาพตรง image2 แล้วเวลากดปุ่ม next ข้อมูลและรูปภาพก็จะเปลี่ยนไปเป็นอีกข้อมูลนึงอ่ะค่ะ
โค้ดอยู่ใน multi page ชื่อ ค้นหาภาพ ในปุ่มค้นหา และ ปุ่ม next ค่ะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31159 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#10
Post
by snasui » Wed Jan 07, 2015 7:42 pm
Code ที่ปุ่ม Next กับ Back ต้องเขียนมาเอง ติดตรงไหนค่อยถามกันต่อครับ
Bott
Member
Posts: 9 Joined: Tue Dec 30, 2014 1:29 pm
#11
Post
by Bott » Wed Jan 07, 2015 10:50 pm
อาจารย์ค่ะตัดปุ่ม Back และ Next ออกแล้วค่ะ
ตอนนี้เขียนโค้ดในปุ่มค้นหาแล้ว การทำงานคือ
- เมื่อกรอกชื่อรูปลงไป ข้อมูลต่าง ๆ จะโชว์ใน textbox ต่าง ๆ
- แต่ต้องการให้โชว์ไฟล์ภาพของข้อมูลที่ต้องการค้นหาด้วย
โค้ดจะอยู่ใน Userform > multipage ชื่อว่าค้นหาภาพ > ปุ่มค้นหา
# ส่วนของโค้ดที่ใช้ในการโชว์ภาพของแต่ละข้อมูลอยู่ใน sub imageff1
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31159 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#12
Post
by snasui » Wed Jan 07, 2015 11:09 pm
Bott wrote: ตอนนี้เขียนโค้ดในปุ่มค้นหาแล้ว การทำงานคือ
- เมื่อกรอกชื่อรูปลงไป ข้อมูลต่าง ๆ จะโชว์ใน textbox ต่าง ๆ
ค่อยๆ ถามตอบกันไปครับ
จากที่ยกมาด้านบนไม่ทราบว่าให้กรอกชื่อรูปที่ไหน กรอกแล้วคลิกปุ่มไหนหรือทำอย่างไรต่อเพื่อให้ข้อมูลมาแสดงใน Object ต่างๆ และต้องคลิกปุ่มไหนเพื่อให้แสดงภาพครับ
Bott
Member
Posts: 9 Joined: Tue Dec 30, 2014 1:29 pm
#13
Post
by Bott » Thu Jan 08, 2015 8:34 am
เขียนรันโค้ดเมื่อกดปุ่มบันทึกเพื่อส่วนของการแสดงเนื้อหารายละเอียดเรียบร้อยแล้วค่ะ แต่โค้ดที่เรียกภาพมันยังไม่โชว์ค่ะ.
- โค้ดแสดงข้อมูลต่างๆ อยู่ในปุ่มค้นหาค่ะ
- ติดตรงที่โค้ดเรียกไฟล์ภาพมาแสดงค่ะ อยู่ใน sub imageff1
snasui
Site Admin
Posts: 31159 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#14
Post
by snasui » Thu Jan 08, 2015 9:36 am
Bott wrote: - ติดตรงที่โค้ดเรียกไฟล์ภาพมาแสดงค่ะ อยู่ใน sub imageff1
ควรจะแจ้งมาด้วยว่าติดตรงบรรทัดใด เพื่อให้เข้าถึงข้อมูลโดยไว
สำหรับ Code ที่เขียนมาเป็นการเรียกใช้
Sub Imageff1
จาก
CommandButton13_Click
โดยการคลิกปุ่ม ค้นหา
และเมื่อค้นหาแล้วสมมุติว่าที่อยู่ของภาพอยู่ที่ TextBox11 และให้ Show ภาพที่ Image2 ตามที่อยู่ภาพใน TextBox11
ซึ่งหากเป็นไปตามด้านบน Code ที่
Sub Imageff1
จะเป็นตามด้านล่าง
Code: Select all
Sub Imageff1()
UserForm2.Image2.Picture = LoadPicture(UserForm2.TextBox11.Text)
End Sub
Bott
Member
Posts: 9 Joined: Tue Dec 30, 2014 1:29 pm
#15
Post
by Bott » Thu Jan 08, 2015 6:48 pm
ทำได้แล้วค่ะอาจารย์ แต่ในชีทแรกปุ่มค้นหามีการแก้ไขนิดหน่อยค่ะ
ระบบงานคือ จะมีช่อง B1 และ G1 สำหรับใส่คำค้นหา ได้ลองแก้โค้ดดูแล้ว แต่รันแล้วแล้วไม่โชว์ค่าอะไรเลย
ระบบงานตอนนี้ที่ต้องการคือ ใน B1 และ G1 เมื่อกรอกค่าใดทั้งสองช่องลงไปแล้ว เมื่อกดค้นหาแล้วค่านั้นมีข้อมูลตรงกันจริง ๆ (ฐานข้อมูลจะอยู่ในชีทเพิ่ม) ให้แสดงข้อมูลที่มีค่าตรงกันในเซลล์ A3
โค้ดของการค้นหา อยู่ในชีทแรกที่ปุ่มค้นหาค่ะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31159 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#16
Post
by snasui » Thu Jan 08, 2015 9:19 pm
ช่วยอธิบายมาเป็นข้อความว่าต้องการค้นหาในลักษณะใด
ช่วยแจ้งข้อมูลทดสอบมาด้วยว่า B1, G1 เป็นค่าใด และหากค้นหาได้ถูกต้องผลลัพธ์ควรได้เป็นค่าใด จะได้สะดวกต่อการทำความเข้าใจครับ
Bott
Member
Posts: 9 Joined: Tue Dec 30, 2014 1:29 pm
#17
Post
by Bott » Thu Jan 08, 2015 9:23 pm
ต้องการค้นหาในลักษณะที่ ในb1 ให้กรอก keyword หรือชื่อกิจกรรม ใน g1 ให้กรอกรุ่นของแผนกนั้น(จะอยู่ในชีทเพิ่ม)
เช่น ในB1 กรอกชื่อกิจกรรมคือ วันเด็ก และใน g1 คือ CCom57 แล้วเมื่อกดค้นหาในชีทค้นหา
ข้อมูล " วันเด็ก ของรุ่น Ccom57 " ก็จะโชว์ขึ้นมา ในเซลล์ด้านล่างค่ะ
snasui
Site Admin
Posts: 31159 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#18
Post
by snasui » Thu Jan 08, 2015 10:03 pm
ตัวอย่าง Code ตามด้านล่างครับ
Code: Select all
Sub find()
Dim input1 As Range, input2 As Range
Dim rall As Range, cell As Range
Set input1 = Worksheets(1).Range("b1")
Set input2 = Worksheets(1).Range("g1")
Worksheets("ค้นหา").Range("a4").Resize(1000, 10).ClearContents
With Sheets("เพิ่ม")
Set rall = .Range("a3", .Range("a" & .Rows.Count).End(xlUp))
End With
For Each cell In rall
If Application.CountIf(cell.Resize(1, 7), input1) > 0 Or _
Application.CountIf(cell.Resize(1, 7), input2) Then
With Sheets("ค้นหา").Range("a" & Rows.Count).End(xlUp)
.Offset(1, 0).Value = cell.Offset(0, 5).Value
.Offset(1, 1).Value = cell.Value
.Offset(1, 4).Value = cell.Offset(0, 4).Value
.Offset(1, 5).Value = cell.Offset(0, 5).Value
.Offset(1, 6).Value = cell.Offset(0, 6).Value
End With
End If
Next cell
End Sub