: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รูปครับ

ฟอรัมถาม-ตอบปัญหาการใช้งาน Macro และ 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 เมื่อพิมพ์ตกหล่น หรือพิมพ์ไม่ครบ ก็ให้แจ้งว่าพิมพ์รหัสผิดพลาดน่ะครับ
Attachments
ตัวทดลอง01.xls
(19.5 KiB) Downloaded 9 times
User avatar
sdmania
Bronze
Bronze
Posts: 320
Joined: Tue Sep 07, 2010 11:38 am
Location: นครสวรรค์

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

#2

Post by sdmania »

อันนี้แนบภาพครับ การเรียกรูปผมทำได้ตามแบบที่อาจารย์สอนครับ
Attachments
question54-12-01.JPG
question54-12-01.JPG (56.01 KiB) Viewed 69 times
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: 31191
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 ผมใส่รหัสไปเป็นศุนย์ก่อนครับ เพื่อให้มันไม่แสดงภาพจะได้อัพโหลดได้น่ะครับ

ไฟล์
Attachments
ตัวทดลอง01.xls
(37.5 KiB) Downloaded 13 times
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: 31191
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 ครับ

ผมทำผิดขั้นตอนตรงไหนครับ แหะๆ
Attachments
question54-12-01.JPG
question54-12-01.JPG (41.57 KiB) Viewed 31 times
question54-12-02.JPG
question54-12-02.JPG (29.98 KiB) Viewed 31 times
question54-12-03.JPG
question54-12-03.JPG (13.64 KiB) Viewed 31 times
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ครับ

รบกวนทุกท่านด้วยครับ
Attachments
question54-12-04.JPG
question54-12-04.JPG (29.59 KiB) Viewed 31 times
ตัวทดลอง01_anws01.xls
(36.5 KiB) Downloaded 7 times
User avatar
snasui
Site Admin
Site Admin
Posts: 31191
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