: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
🪷 คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ

ถาม เกี่ยวกับlinkรูปครับ

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
User avatar
sdmania
Bronze
Bronze
Posts: 320
Joined: Tue Sep 07, 2010 11:38 am
Location: นครสวรรค์

ถาม เกี่ยวกับlinkรูปครับ

#1

Post by sdmania »

จากตัวอย่างนี้เลยครับ http://snasui.blogspot.com/2011/05/folder-excel.html
คำถามผมอยู่ที่sheet4 จากตัวอย่างที่แนบมาครับ แต่ผมไม่ได้อัพโหลด โฟลเดอร์รูปมาด้วยนะครับเกรงว่าจะใหญ่เกิน
ที่เครื่องผมตั้งโฟลเดอร์ภาพไว้ที่ d:\piccar
และในโฟลเดอร์ผมจะตั้งรหัส ดังนี้ครับ(ขออธิบายหลักการตั้งรหัส เพิ่มเติมนิดนึงครับ)
** ปกติ รหัสสัญญาลูกค้าบริษัทผม จะตั้ง 22-001-1 แต่ในหนึ่งรหัสสัญญา มาตรฐานคร่าวๆคือ3ภาพ ได้แก่ 1รถหน้าตรง 2หน้ารถทำมุม45องศา 3รถกับลูกค้า บางสัญญาอาจไม่มีรูปก็ได้(ลูกค้าเก่ามากรูปหาย) หรือมีมากกว่า3รูปก็ต้องเก็บหมดครับ
ผมใช้เกณฑ์ตั้งรหัสเอาเองว่า เอารหัสสัญญา5หลักแรกบวกกับลำดับภาพ เช่น
รหัสสัญญา 22-605-1 มี4รูป ผมจะตั้งรหัสภาพว่า 22-605-01,22-605-02,22-605-03 และ 22-605-04 ครับ

ปัญหาที่เกิดคือ พนักงานมักพิมพ์รหัสภาพผิดหรือตกหล่น ทำให้ภาพไม่ขึ้นครับ
จะทำอย่างไร ให้cell F4,F5 หรือ F6 เมื่อพิมพ์ตกหล่น หรือพิมพ์ไม่ครบ ก็ให้แจ้งว่าพิมพ์รหัสผิดพลาดน่ะครับ
You do not have the required permissions to view the files attached to this post.
User avatar
sdmania
Bronze
Bronze
Posts: 320
Joined: Tue Sep 07, 2010 11:38 am
Location: นครสวรรค์

Re: ถาม เกี่ยวกับlinkรูปครับ

#2

Post by sdmania »

อันนี้แนบภาพครับ การเรียกรูปผมทำได้ตามแบบที่อาจารย์สอนครับ
You do not have the required permissions to view the files attached to this post.
User avatar
sdmania
Bronze
Bronze
Posts: 320
Joined: Tue Sep 07, 2010 11:38 am
Location: นครสวรรค์

Re: ถาม เกี่ยวกับlinkรูปครับ

#3

Post by sdmania »

ช่วยแนะนำทีครับว่าควรเขียนcodeอย่าไรดีครับ คือแอบลองแก้เองแล้ว ผิดมาตลอดเลยนะครับ แหะๆ :mrgreen:

ตั้งเป้าว่า เอาแค่กรอกรหัสไม่ครบ ขึ้นภาพฟ้องเลยนะ่ครับว่ากรอกรหัสผิดพลาด :mrgreen:
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ถาม เกี่ยวกับlinkรูปครับ

#4

Post by snasui »

:D แนบ Code Macro ที่ได้ปรับปรุงแล้วมาด้วยครับ
User avatar
sdmania
Bronze
Bronze
Posts: 320
Joined: Tue Sep 07, 2010 11:38 am
Location: นครสวรรค์

Re: ถาม เกี่ยวกับlinkรูปครับ

#5

Post by sdmania »

ปัญหาของผมอยู่ที่Sheet4ครับ
สิ่งที่ผมเพิ่มเติมจาก code ของอาจารย์ คือผมเพิ่ม Dim strValueMsg As String
...
If Left(obj.Name, 4) = "Pict" Then
obj.Delete
ElseIf Left(obj.Name, 4) <> "Pict" Then
strValueMsg = MsgBox("¡ÃÍ¡ÃËÑÊÃÙ»¼Ô´¾ÅÒ´¤ÃѺ", 1 + 64, "á¨é§àµ×͹")
Else: obj.Delete
End If
และตรง if the else คือผมกะว่า elseif ถ้าobj.name,4 ไม่ใช่ "pict"คือการคีย์ไม่ตรงกับชื่อรูปใดๆใน โฟลเดอร์ piccarจึงให้ขึ้นmsgBox ว่าใส่รหัสไม่ครบครับ

แต่ผลลัพธ์ มันไม่ตรงกะที่ผมคาดครับ :shock: แหะๆ ไม่ว่าจะกรอกข้อมูลเป็นกรณี ถูกถูก / ถูกผิด / ผิดถูก / ผิดผิด มันขึ้น msgBoxทุกครั้งครับ
**ในตัวอย่าง ตรงF4 กับF5 ผมใส่รหัสไปเป็นศุนย์ก่อนครับ เพื่อให้มันไม่แสดงภาพจะได้อัพโหลดได้น่ะครับ

ไฟล์
You do not have the required permissions to view the files attached to this post.
Last edited by sdmania on Thu Dec 01, 2011 3:11 pm, edited 1 time in total.
User avatar
sdmania
Bronze
Bronze
Posts: 320
Joined: Tue Sep 07, 2010 11:38 am
Location: นครสวรรค์

Re: ถาม เกี่ยวกับlinkรูปครับ

#6

Post by sdmania »

ส่วนภาพที่ใส่ไว้ใน d:\piccar สมมุติว่ามี 3 ภาพ
ผมจะตั้งชื่อภาพไว้ว่า 22-001-01 ==>ภาพของรหัสลูกค้า22-01 ภาพที่หนึ่ง
22-001-02 ==>ภาพของรหัสลูกค้า22-01 ภาพที่สอง
22-002-01 ==>ภาพของรหัสลูกค้า22-02 ภาพที่หนึ่ง ครับ


และถ้าผมไปเจอกรณีลูกค้าที่มีแค่รูปเดียว หรือไม่มีรูป ผมทำอย่างไรดีครับ :shock:
User avatar
sdmania
Bronze
Bronze
Posts: 320
Joined: Tue Sep 07, 2010 11:38 am
Location: นครสวรรค์

Re: ถาม เกี่ยวกับlinkรูปครับ

#7

Post by sdmania »

ถามเพิ่มเติมครับ ผมจะบังครับให้cell f4กำหนดรูปแบบเป็น
cells(4,6).numberFormat = "##-###-#" อย่างนี้ได้ไหมครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ถาม เกี่ยวกับlinkรูปครับ

#8

Post by snasui »

:D ลองปรับ Code เป็นตามด้านล่างครับ

Code: Select all

Sub ShowPicture()
    Dim r As Range, ra As Range
    Dim imgIcon As Object
    Dim obj As Object
    On Error Resume Next
    With Worksheets("Sheet4")
        Set ra = .Range("G4", .Range("F65536").End(xlUp).Offset(0, 1))
    End With
    For Each obj In ActiveSheet.Shapes
        If Left(obj.Name, 4) = "Pict" Then
            obj.Delete
        End If
    Next obj
    For Each r In ra
        r.ClearContents
        Set imgIcon = ActiveSheet.Shapes.AddPicture( _
        Filename:="D:\piccar\" & r.Offset(0, -1).Value & ".jpg", LinkToFile:=False, _
        SaveWithDocument:=True, Left:=r.Left, Top:=r.Top, _
        Width:=r.Width, Height:=r.Height)
        If Err <> 0 Then
            r = "ระบุรหัสไม่ถูกต้อง"
            On Error GoTo 0
        End If
    Next r
End Sub
sdmania wrote:ถามเพิ่มเติมครับ ผมจะบังครับให้cell f4 กำหนดรูปแบบเป็น
cells(4,6).numberFormat = "##-###-#" อย่างนี้ได้ไหมครับ
คิดว่าสามารถทำได้ ลองปรับมาดูก่อนครับ
User avatar
sdmania
Bronze
Bronze
Posts: 320
Joined: Tue Sep 07, 2010 11:38 am
Location: นครสวรรค์

Re: ถาม เกี่ยวกับlinkรูปครับ

#9

Post by sdmania »

ขออภัยที่มาตอบช้านะครับ งานด่วนแทรกแล้วติดหยุดยาวอีกน่ะครับ ขออภัยจริงๆครับ
ขอบคุณสำหรับcodeครับอาจารย์ :mrgreen: ทุกท่านที่มาช่วยตอบด้วยนะครับ
code ที่อาจารย์สอน ใช้ได้เป็นอย่างดีครับ :mrgreen:
User avatar
sdmania
Bronze
Bronze
Posts: 320
Joined: Tue Sep 07, 2010 11:38 am
Location: นครสวรรค์

Re: ถาม เกี่ยวกับlinkรูปครับ

#10

Post by sdmania »

:shock: อาจารย์ครับรบกวนอาจารย์ หรือท่านผู้รู้อื่นๆช่วยดูcode ให้ทีครับ ผมทำผิดขึ้นตอนตรงไหนไหมครับ

ขั้นตอนการแก้codeของผม คือ พอได้codeจากอาจารย์ ผมก็ copy แล้วมาวางใน vbaครับ แล้วก็กดctrl+s แล้วปิดหน้าต่างvba ไปเลยแล้วมา่ทดลองใช้งานในหน้าต่างexcel ปกติครับ

อธิบายตามภาพข้างล่างนะครับ
รูปquestion54-12-01
ถ้าพิมพ์รหัสถูกต้องให้เป็น T (ผลลัพธ์คือรูปขึ้น) ถ้าพิมพ์ผิดให้เป็น F ครับ (ผลลัพธ์คือ ขึ้นเตือนว่า "พิมพ์รหัสไม่ถูกต้อง")

รูปquestion54-12-02
เป็นรหัสภาพที่เก็บไว้ในโฟลเดอร์piccar อยู่ที่ไดร์ D ครับ

รูปquestion54-12-03
คือผลการทดลอง พิมพ์รหัสครับ ตอนผมพิมพ์ให้เป็น F4->พิมพ์รหัสผิด F5->พิมพ์รหัสผิด ผลที่ได้คือเกิด runtime error
ดังในรูป รูปquestion54-12-04 ครับ

ผมทำผิดขั้นตอนตรงไหนครับ แหะๆ
You do not have the required permissions to view the files attached to this post.
User avatar
sdmania
Bronze
Bronze
Posts: 320
Joined: Tue Sep 07, 2010 11:38 am
Location: นครสวรรค์

Re: ถาม เกี่ยวกับlinkรูปครับ

#11

Post by sdmania »

รูปquestion54-12-04 มันขึ้น run time error ครับ


แล้วก็แนบไฟล์ที่ผมทำมาด้วยครับ ปัญหาของผมอยู่ที่ sheet4ครับ

รบกวนทุกท่านด้วยครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ถาม เกี่ยวกับlinkรูปครับ

#12

Post by snasui »

:D ให้ทำ Mark On Error GoTo 0 ให้เป็น Comment หรือลบออกไปครับ
Post Reply