Page 1 of 1
ช่วยแนะนำเรื่องโค้ดการค้นหาไฟล์รูป (ดึงไฟล์รูปมาแสดง)
Posted: Tue Dec 30, 2014 1:38 pm
by Bott
ขอช่วยแนะนำ Code VBA ในส่วนของการค้นหาไฟล์ภาพ และนำภาพมาแสดงในexcel
ระบบงานคือ
- จะมีการจัดเก็บภาพถ่ายไว้ในโฟลเดอร์แต่ละอัน
- โดยจะเขียนโค้ด VBA ใน Excel มาเพื่อค้นหาไฟล์ภาพ โดยการใส่ชื่อไฟล์ไปในเซลใดเซลหนึ่งแล้ว ระบบจะทำการค้นหาแล้วนำไฟล์ภาพมาแสดงในอีกคอลัมน์หนึ่ง
Re: ช่วยแนะนำเรื่องโค้ดการค้นหาไฟล์รูป (ดึงไฟล์รูปมาแสดง)
Posted: Sat Jan 03, 2015 8:31 am
by snasui

กรณีใช้ VBA ให้ทำตามกฎการใช้บอร์ดข้อ 5 ด้านบนครับ

Re: ช่วยแนะนำเรื่องโค้ดการค้นหาไฟล์รูป (ดึงไฟล์รูปมาแสดง)
Posted: Sat Jan 03, 2015 6:03 pm
by Bott
โค้ดใน Userform1 ในปุ่ม browse ต้องการให้เลือกไฟล์ภาพพอกด open ให้มันแสดงตำแหน่งของไฟล์ภาพใน textbox3 ค่ะ
Re: ช่วยแนะนำเรื่องโค้ดการค้นหาไฟล์รูป (ดึงไฟล์รูปมาแสดง)
Posted: Sat Jan 03, 2015 9:41 pm
by snasui

ตัวอย่าง 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
Re: ช่วยแนะนำเรื่องโค้ดการค้นหาไฟล์รูป (ดึงไฟล์รูปมาแสดง)
Posted: Sun Jan 04, 2015 12:14 pm
by Bott
ขอบคุณค่ะอาจารย์ แล้วถ้าต้องการแสดงภาพตัวอย่างเวลากด browse จะต้องเพิ่มเติมโค้ดตรงไหนค่ะ
โค้ด Userform1 ในปุ่ม browse ค่ะ ขอบคุณล่วงหน้าค่ะ
Re: ช่วยแนะนำเรื่องโค้ดการค้นหาไฟล์รูป (ดึงไฟล์รูปมาแสดง)
Posted: Sun Jan 04, 2015 3:13 pm
by snasui

ต้องการให้แสดงภาพตัวอย่างที่ไหน อย่างไรครับ
Code สำหรับการแสดงภาพตัวอย่างที่เขียนมาเองแล้วชื่อว่าอะไรครับ

Re: ช่วยแนะนำเรื่องโค้ดการค้นหาไฟล์รูป (ดึงไฟล์รูปมาแสดง)
Posted: Sun Jan 04, 2015 5:11 pm
by Bott
ทำได้แล้วค่ะแต่ขอช่วยอาจารย์แนะนำเรื่องโค้ดการโชว์ไฟล์ภาพ
> เมื่อใส่ชื่อภาพไปใน textbox10 แล้ว รายเอียดของภาพจะขึ้นมาตาม textbox ด้านล่าง
> เมื่อกดปุ่ม Next ก็จะเลื่อนไปยังข้อมูลภาพถัดไป
> เมื่อกดปุ่ม back ก็จะเลื่อนมายังภาพก่อนหน้า
*โค้ดจะอยู่ใน Userform2 ใน Multipage ที่ชื่อว่า ค้นหาภาพ
Re: ช่วยแนะนำเรื่องโค้ดการค้นหาไฟล์รูป (ดึงไฟล์รูปมาแสดง)
Posted: Sun Jan 04, 2015 7:25 pm
by logic
งงครับ
ปุ่ม Back กับ ปุ่ม Next ไม่เห็นมี Code

Re: ช่วยแนะนำเรื่องโค้ดการค้นหาไฟล์รูป (ดึงไฟล์รูปมาแสดง)
Posted: Wed Jan 07, 2015 9:39 am
by Bott
นี่ค่ะ คือต้องการให้พอกดค้นหาแล้วมันแสดงภาพตรง image2 แล้วเวลากดปุ่ม next ข้อมูลและรูปภาพก็จะเปลี่ยนไปเป็นอีกข้อมูลนึงอ่ะค่ะ
โค้ดอยู่ใน multi page ชื่อ ค้นหาภาพ ในปุ่มค้นหา และ ปุ่ม next ค่ะ
Re: ช่วยแนะนำเรื่องโค้ดการค้นหาไฟล์รูป (ดึงไฟล์รูปมาแสดง)
Posted: Wed Jan 07, 2015 7:42 pm
by snasui

Code ที่ปุ่ม Next กับ Back ต้องเขียนมาเอง ติดตรงไหนค่อยถามกันต่อครับ
Re: ช่วยแนะนำเรื่องโค้ดการค้นหาไฟล์รูป (ดึงไฟล์รูปมาแสดง)
Posted: Wed Jan 07, 2015 10:50 pm
by Bott
อาจารย์ค่ะตัดปุ่ม Back และ Next ออกแล้วค่ะ
ตอนนี้เขียนโค้ดในปุ่มค้นหาแล้ว การทำงานคือ
- เมื่อกรอกชื่อรูปลงไป ข้อมูลต่าง ๆ จะโชว์ใน textbox ต่าง ๆ
- แต่ต้องการให้โชว์ไฟล์ภาพของข้อมูลที่ต้องการค้นหาด้วย
โค้ดจะอยู่ใน Userform > multipage ชื่อว่าค้นหาภาพ > ปุ่มค้นหา
# ส่วนของโค้ดที่ใช้ในการโชว์ภาพของแต่ละข้อมูลอยู่ใน sub imageff1
Re: ช่วยแนะนำเรื่องโค้ดการค้นหาไฟล์รูป (ดึงไฟล์รูปมาแสดง)
Posted: Wed Jan 07, 2015 11:09 pm
by snasui
Bott wrote:ตอนนี้เขียนโค้ดในปุ่มค้นหาแล้ว การทำงานคือ
- เมื่อกรอกชื่อรูปลงไป ข้อมูลต่าง ๆ จะโชว์ใน textbox ต่าง ๆ
ค่อยๆ ถามตอบกันไปครับ
จากที่ยกมาด้านบนไม่ทราบว่าให้กรอกชื่อรูปที่ไหน กรอกแล้วคลิกปุ่มไหนหรือทำอย่างไรต่อเพื่อให้ข้อมูลมาแสดงใน Object ต่างๆ และต้องคลิกปุ่มไหนเพื่อให้แสดงภาพครับ
Re: ช่วยแนะนำเรื่องโค้ดการค้นหาไฟล์รูป (ดึงไฟล์รูปมาแสดง)
Posted: Thu Jan 08, 2015 8:34 am
by Bott
เขียนรันโค้ดเมื่อกดปุ่มบันทึกเพื่อส่วนของการแสดงเนื้อหารายละเอียดเรียบร้อยแล้วค่ะ แต่โค้ดที่เรียกภาพมันยังไม่โชว์ค่ะ.
- โค้ดแสดงข้อมูลต่างๆ อยู่ในปุ่มค้นหาค่ะ
- ติดตรงที่โค้ดเรียกไฟล์ภาพมาแสดงค่ะ อยู่ใน sub imageff1
Re: ช่วยแนะนำเรื่องโค้ดการค้นหาไฟล์รูป (ดึงไฟล์รูปมาแสดง)
Posted: Thu Jan 08, 2015 9:36 am
by snasui
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
Re: ช่วยแนะนำเรื่องโค้ดการค้นหาไฟล์รูป (ดึงไฟล์รูปมาแสดง)
Posted: Thu Jan 08, 2015 6:48 pm
by Bott
ทำได้แล้วค่ะอาจารย์ แต่ในชีทแรกปุ่มค้นหามีการแก้ไขนิดหน่อยค่ะ
ระบบงานคือ จะมีช่อง B1 และ G1 สำหรับใส่คำค้นหา ได้ลองแก้โค้ดดูแล้ว แต่รันแล้วแล้วไม่โชว์ค่าอะไรเลย
ระบบงานตอนนี้ที่ต้องการคือ ใน B1 และ G1 เมื่อกรอกค่าใดทั้งสองช่องลงไปแล้ว เมื่อกดค้นหาแล้วค่านั้นมีข้อมูลตรงกันจริง ๆ (ฐานข้อมูลจะอยู่ในชีทเพิ่ม) ให้แสดงข้อมูลที่มีค่าตรงกันในเซลล์ A3
โค้ดของการค้นหา อยู่ในชีทแรกที่ปุ่มค้นหาค่ะ
Re: ช่วยแนะนำเรื่องโค้ดการค้นหาไฟล์รูป (ดึงไฟล์รูปมาแสดง)
Posted: Thu Jan 08, 2015 9:19 pm
by snasui

ช่วยอธิบายมาเป็นข้อความว่าต้องการค้นหาในลักษณะใด
ช่วยแจ้งข้อมูลทดสอบมาด้วยว่า B1, G1 เป็นค่าใด และหากค้นหาได้ถูกต้องผลลัพธ์ควรได้เป็นค่าใด จะได้สะดวกต่อการทำความเข้าใจครับ
Re: ช่วยแนะนำเรื่องโค้ดการค้นหาไฟล์รูป (ดึงไฟล์รูปมาแสดง)
Posted: Thu Jan 08, 2015 9:23 pm
by Bott
ต้องการค้นหาในลักษณะที่ ในb1 ให้กรอก keyword หรือชื่อกิจกรรม ใน g1 ให้กรอกรุ่นของแผนกนั้น(จะอยู่ในชีทเพิ่ม)
เช่น ในB1 กรอกชื่อกิจกรรมคือ วันเด็ก และใน g1 คือ CCom57 แล้วเมื่อกดค้นหาในชีทค้นหา
ข้อมูล " วันเด็ก ของรุ่น Ccom57 " ก็จะโชว์ขึ้นมา ในเซลล์ด้านล่างค่ะ
Re: ช่วยแนะนำเรื่องโค้ดการค้นหาไฟล์รูป (ดึงไฟล์รูปมาแสดง)
Posted: Thu Jan 08, 2015 10:03 pm
by snasui

ตัวอย่าง 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