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] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
widtara
Member
Posts: 76 Joined: Tue Jun 29, 2010 11:27 am
#1
Post
by widtara » Tue Jan 18, 2011 2:56 pm
สวัสดดีค่ะอ้อยมีปัญหามาถามต่อค่ะ เป็นภาคต่อจากคำถามเรื่องการแยก sheet โดยเขียน VBA ค่ะ ซึ่งเป็นงานที่ต่อเนื่องกันค่ะ
ตอนนี้อ้อยยังศึกษาพื้นฐาน VBA อยู่ยังไม่เก่งและยังไม่ค่อยเข้าใจการทำงานมากนัก คือว่า มี excel อยู่หน้าหนึ่ง
เช่นสมุมติว่า ที่ A1 มีรหัส 92217 ซึ่งจะมี Folders ชื่อ 92217 อยู่และมีไฟล์ภาพอยู่ 3 ไฟล์ ซึ่งชื่อจะมาจากกล้องที่ถ่าย ส่วนใหญ่ภาพที่ต้องการจะเป็นภาพที่ 2 กับ ภาพที่ 3 คราวนี้อ้อย กำหนดให้ อาจเป็น B1 โชว์ภาพที่ 2 ใน Folders 92217
และ อาจให้ B2 โชว์ภาพที่ 3 ใน Folder 92217 โดยระบุขนาดภาพที่แน่นอนเพื่อลดขนาดไฟล์ ลักษณะแบบนี้ค่ะ อาจจะต้องใช้ VBA แต่ไม่รู้จะเริ่มยังงัยค่ะ อ้อยแนบตัวอย่างมาให้ดูค่ะ และแนบ ไฟล์ โครงการที่คิดจะทำมาให้ดูค่ะ ช่วยแนะนำหน่อยนะค่ะ หรือหากไม่ใช้ VBA จะต้องมีวิธีทำอย่างอื่นไหมค่ะ 2 ไฟล์ที่แนบมา เป็นงานเดียวกัน ค่ะ ไฟล์แรกเป็นวิธีการทำให้ได้ภาพมาจริง ส่วนไฟล์ที่ 2 เป็นแนวคิดปรับงานโดยใช้วิธีดึงภาพมานะค่ะ เป็นงานที่ทำอยู่เลยค่ะ
You do not have the required permissions to view the files attached to this post.
widtara
Member
Posts: 76 Joined: Tue Jun 29, 2010 11:27 am
#2
Post
by widtara » Tue Jan 18, 2011 3:16 pm
ไฟล์ที่ 2 แต่ว่ามันใหญ่เลยสับออกเป็น 6 ไฟล์ค่ะ
Update Sub NCR1.1.xls
Update Sub NCR1.2.xls
Update Sub NCR1.3.xls
Update Sub NCR1.4.xls
Update Sub NCR1.5.xls
Main.Sub Form.xls
You do not have the required permissions to view the files attached to this post.
widtara
Member
Posts: 76 Joined: Tue Jun 29, 2010 11:27 am
#3
Post
by widtara » Tue Jan 18, 2011 3:19 pm
ไฟล์ที่เหลือ รวมแล้ว เป็นโครงการที่คิดไว้นะค่ะ มันค่อนข้างเยอะและยาว อาจเป็นเพราะยังหาวิธีการจัดเรียงที่ดีกว่านี้ยังไม่ได้ ตอนนี้จะค่อยดูและค้นหาวิธีที่ดีที่สุดไปเรื่อยค่ะ ตอนนี้อยากรู้คำสั่งที่ทำให้ภาพโชว์ได้ก่อน แล้วค่อยไปทีละขั้นนะค่ะ
You do not have the required permissions to view the files attached to this post.
sdmania
Bronze
Posts: 320 Joined: Tue Sep 07, 2010 11:38 am
Location: นครสวรรค์
#4
Post
by sdmania » Tue Jan 18, 2011 3:53 pm
ผมมาเสนอว่าให้ไปรวมกระทู้เกี่ยวกับการเขียนโปรแกรมเพื่อให้ได้งานประมาณนี้ที่กระทู้นี้ครับ
http://www.snasui.com/viewtopic.php?f=3&t=632
หากคุณอ้อยรีบ ผมก็ขอเสนอให้อาจารย์ช่วยแก้ หรือยกตัวอย่างปัญหาคุณอ้อยก่อนครับ เดี๋ยวผมกับคุณ sup จะได้เรียนรู้ตามกันทีหลังจากตัวอย่างคุณอ้อย
ผมว่าค่อยๆอ่านพื้นฐาน VBE ให้เข้าใจนะครับ แล้วจะได้แกะตัวอย่างมาปรับใช้ได้(อันนี้วิธีผมครับ มือใหม่เหมือนกัน)
sup
Member
Posts: 136 Joined: Mon Sep 13, 2010 11:36 am
#5
Post
by sup » Tue Jan 18, 2011 5:01 pm
แสดงว่ามีผู้ที่มีปัยหากับงานที่อยากนำเสนอแบบเดียวกับผมอยู่ทั้งที่ ออกตัวมาแล้วและที่ยังไม่ออกตัวมาก็คงมากนะครับ
มือใหม่ๆทั้งนั้น ก็มาช่วยกันครับ
widtara
Member
Posts: 76 Joined: Tue Jun 29, 2010 11:27 am
#6
Post
by widtara » Tue Jan 18, 2011 7:47 pm
ขอบคุณค่ะที่เข้ามาเป็นกำลังใจ หนุนกันไป หุหุ คือช่วงนี้ทำโอทุกวันมาศึกษาเรื่องนี้ละค่ะ ไม่คิดอะไรแบบเป็นระบบมากๆ กลัวสมอง มันจะฟองเสียก่อน เลยหาเรื่องมาใส่หัวสมองซะหน่อย แต่ก็ดีนะค่ะ รู้สึกว่า ไม่ค่อยได้ทำคนเดียวเท่าไร ยังมีเพื่อนๆค่อยเป็นกำลังใจอยู่ ที่จริงก็ควรคิดได้นานแล้วละค่ะ น่าเสียดาย ปล่อยเวลามาตั้งนาน ทั้งนี้เป็นงานรูทีน ประจำวันเลย ถ้าสามารถทำ หัวข้อนี้สำเสร็จ คงได้เป็นอาจารย์กะเขาบ้าง อิอิ จารย์สอนแถวนี้นะค่ะ ไม่ใช่ในบอร์ดนี้ ในบอร์ดนี้ขอเป็นลูกศิษย์พอ
widtara
Member
Posts: 76 Joined: Tue Jun 29, 2010 11:27 am
#7
Post
by widtara » Tue Jan 18, 2011 7:57 pm
ขอบคุณ คุณ sdmania อ่านมาแล้วค่ะ ลิงค์ค่ะ แต่ยังมึน เหมือนโดน ไม้หน้าสามทุบหัวเลยค้าๆๆๆๆๆ มึนอย่างแรง ขอออกตัวเลยนะค่ะ ที่อยู่พึ่งมาใช้ 2007 ได้ 1 อาทิตย์ เป็นการเปลี่ยนแปลงของบริษัทนะค่ะ แต่จุน สมอง จาก 2003 มา 2007 ยังมึนไม่หาย
เลยค๊าๆๆๆๆๆ ขอบอก มาเจอ 2007 ไอ้ที่คิดว่าตัวเองเก่งกว่าแถวนี้แล้วนะ ยังหาอะไร ใช้ไม่ได้ดังใจเลย มันไม่เคยๆ หันหน้าหันหลัง เจอบ้างไม่เจอ เหมือนนับ1 ใหม่ๆ ตลอดๆ เลยค๊า
sdmania
Bronze
Posts: 320 Joined: Tue Sep 07, 2010 11:38 am
Location: นครสวรรค์
#8
Post
by sdmania » Wed Jan 19, 2011 9:50 am
ผมเองก็ไม่ได้เก่งอะไรเลยครับ เพียงแต่มาเข้าบอร์ดนี้บ่อย แถมอาจารย์คนควนใจดี สอนในแบบที่มือใหม่เข้าใจได้เลยครับ
ขอขอบคุณอาจารย์ไว้ ณ ที่นี้อีกครั้งครับ อาจารย์มีความเป็นครูเต็มเปี่ยมครับ
เอาละ เข้าเรื่องๆ คุณอ้อย กับคุณ sup ลองเขียนแผนผังการทำงาน ว่ากันตั้งแต่เปิดโปรแกรมเข้ามาน่ะ(อ่านว่า หนะ)ครับ
จะได้ลองดูงานเราสามคนว่าใกล้เคียงกันแค่ไหน
มาว่ากันด้วยเรื่อง เปิดโปรแกรมแล้วจะดึงภาพมาดูกันได้ยังไงดีกว่า คือจะลำดับดูว่ามีขั้นตอนอะไรกันบ้าง เรียกข้อมูลยังไง เก็บภาพยังไงน่ะครับ มันอาจจะคาบเกี่ยวไปเรื่องอื่นน่ะครับ ผมยังมึนยังลำดับไม่ถูกช่วงนี้ออกไปทำงานข้างนอกบ่อย ไม่ค่อยได้นั่งหน้าจอต่องานexcel เลย ก็เลยมาหาเพื่อนช่วยๆกันทำงานขึ้นมาจะได้ดึงcodeมาใช้ หลายๆคนช่วยพัฒนาโปรแกรมมันจะได้ไปได้ค่อนข้างเร็วครับ
sup
Member
Posts: 136 Joined: Mon Sep 13, 2010 11:36 am
#9
Post
by sup » Wed Jan 19, 2011 11:44 am
ของผมเป็นการดึงภาพโฟลเดอร์ที่ใช้เป็นคลังเก็บ ซึ่งคิดว่าเก็บได้เยอะดี ในโฟลเดอร์ก็แยกโฟลเดอร์ย่อยๆมีชื่อตามรหัสสินค้าซึ่งเก็บภาพที่มีชื่อเดียวกับโฟลเดอร์นั้นๆ แต่มี -1, -2 ฯลฯ ต่อไปได้เรื่อยๆ เพื่ออาจจะมีเติมในอนาคต แล้วผมทำ User Form มีช่องรับข้อมูลโดยกรอกรหัสเข้าไป แล้วคลิกปุ่มให้ค้นหา เข้าไป แล้วสามารถไล่หาไปได้เรื่อยทุกภาพที่มีอยู่ในโฟลเดอร์นั้นๆ เดินหน้าถอยหลังได้ และมีช่องแสดงผลลัพธ์ คือจำนวนภาพที่มีทั้งหมด และลำดับของภาพที่กำลังดู
ตามไฟล์แบบที่เคยแนบมาก่อนหน้าครับ
อาจารญืบอกว่ายากต้องใช้เวลานาน
widtara
Member
Posts: 76 Joined: Tue Jun 29, 2010 11:27 am
#10
Post
by widtara » Wed Jan 19, 2011 5:42 pm
ของผมเป็นการดึงภาพโฟลเดอร์ที่ใช้เป็นคลังเก็บ ซึ่งคิดว่าเก็บได้เยอะดี ในโฟลเดอร์ก็แยกโฟลเดอร์ย่อยๆมีชื่อตามรหัสสินค้าซึ่งเก็บภาพที่มีชื่อเดียวกับโฟลเดอร์นั้นๆ แต่มี -1, -2 ฯลฯ ต่อไปได้เรื่อยๆ เพื่ออาจจะมีเติมในอนาคต แล้วผมทำ User Form มีช่องรับข้อมูลโดยกรอกรหัสเข้าไป แล้วคลิกปุ่มให้ค้นหา เข้าไป แล้วสามารถไล่หาไปได้เรื่อยทุกภาพที่มีอยู่ในโฟลเดอร์นั้นๆ เดินหน้าถอยหลังได้ และมีช่องแสดงผลลัพธ์ คือจำนวนภาพที่มีทั้งหมด และลำดับของภาพที่กำลังดู
ตามไฟล์แบบที่เคยแนบมาก่อนหน้าครับ
อาจารญืบอกว่ายากต้องใช้เวลานาน
คล้ายๆข้างบนนี้ค่ะ โครงที่จะทำจนสมบูรณ์มีตามไฟล์แนบมา เอามาต่อกันค่ะ คือมันใหญ่ เลยสับหลายไฟล์
Update Sub NCR1.1.xls
Update Sub NCR1.2.xls
Update Sub NCR1.3.xls
Update Sub NCR1.4.xls
Update Sub NCR1.5.xls
Main.Sub Form.xls
แต่ไฟล์ที่จะทำให้ได้ก่อนคือ ไฟล์นี้ค่ะ RJL-F1101-01-01.xls
ขอการดึงข้อมูลใน Folders ที่เก็บไว้เช่น
EVENT PICTURES DRYER
-wk01
-RJI
80364 ซึ่งเป็นรหัสใบ ma ข้างในจะมีภาพประมาณ 3 ภาพ ตั้งชื่อตามค่ากล้องที่ถ่ายมา ภาพที่ใช้จะอยู่อันดับ 2 และ 3
-RJL มีข้อมูลลักษณะเดียวกันกับ RJI
ไฟล์ RJL-F1101-01-01.xls
จะมีข้อมูลเลข ma อยู่ จะกำหนดให้มันเจอเลข ma และไปค้นหา ใน folders ถ้ามีเลข ma เหมือนกัน ให้ดึงภาพที่ 2 และ 3 มาโชว์ใน ส่วนที่ เรากำหนด ค่ะ
snasui
Site Admin
Posts: 31175 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#11
Post
by snasui » Wed Jan 19, 2011 9:51 pm
ผมลองเขียน Code สำหรับ Add รูปให้ตามตำแหน่งเซลล์ โดยกำหนดขนาดให้พอดีกับพื้นที่ที่กำหนดไว้ โดยใช้ Code ตามด้านล่างครับ
สังเกตที่ .LookIn = "C:\Picture\"
ตรงนี้ต้องใส่ Path ที่เก็บภาพก่อนที่จะถึง Folder ใน J29
Code: Select all
Option Explicit
Sub FindPicture()
Dim r As Range, obj As Object
Dim fs As Object, i As Integer
Dim Img1 As Variant, Img2 As Variant
Set r = Worksheets("22").Range("J29")
Set fs = Application.FileSearch
On Error Resume Next
For Each obj In ActiveSheet.Shapes
If Left(obj.Name, 3) = "Pic" Then
obj.Delete
End If
Next
With fs
.LookIn = "C:\Picture\" & r '<== Chage to your real path
.SearchSubFolders = True
.Filename = "*"
If .Execute() > 0 Then
With Range("F47")
Set Img1 = ActiveSheet.Shapes.AddPicture( _
Filename:=fs.FoundFiles(2), LinkToFile:=False, _
SaveWithDocument:=True, Left:=.Left, Top:=.Top, _
Width:=590, Height:=420)
End With
With Range("M47")
Set Img2 = ActiveSheet.Shapes.AddPicture( _
Filename:=fs.FoundFiles(3), LinkToFile:=False, _
SaveWithDocument:=True, Left:=.Left, Top:=.Top, _
Width:=590, Height:=420)
End With
Else
MsgBox "There were no files found."
Exit Sub
End If
End With
End Sub
You do not have the required permissions to view the files attached to this post.