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
:D กรณีใช้ VBA ให้ทำตามกฎการใช้บอร์ดข้อ 5 ด้านบนครับ :roll:

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
:D ตัวอย่าง 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
:D ต้องการให้แสดงภาพตัวอย่างที่ไหน อย่างไรครับ

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
งงครับ :cry:

ปุ่ม Back กับ ปุ่ม Next ไม่เห็นมี Code :flw:

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
:D 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
:D ควรจะแจ้งมาด้วยว่าติดตรงบรรทัดใด เพื่อให้เข้าถึงข้อมูลโดยไว

สำหรับ 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
:D ช่วยอธิบายมาเป็นข้อความว่าต้องการค้นหาในลักษณะใด

ช่วยแจ้งข้อมูลทดสอบมาด้วยว่า 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
:D ตัวอย่าง 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