XD360 KÍNH CHÚC CHO MỌI NHÀ VẠN SỰ AN LÀNH!

Phần mềm ôn thi sát hạch chứng chỉ hành nghề xây dựng

 Quên mật khẩu
 Đăng ký mới
Anh Trần HòeBùi Quốc Hưng
Xem: 34251|Trả lời: 16
In Chủ đề trước Tiếp theo
Thu gọn cột thông tin

[Hỏi VBA] Chèn hình ảnh tự động vào Excel bằng VBA

[Lấy địa chỉ]

Hãy đăng nhập để có nhiều chức năng hữu dụng hơn và xem ảnh rõ hơn!

Bạn phải đăng nhập để xem được nội dung, nếu bạn chưa có tài khoản? hãy Đăng ký mới

x
PIC_XD.rar (22.27 KB, Lượt tải về: 3412)

www.xaydung360.vn XÂY TÂM, DỰNG TẦM CHUYÊN NGHIỆP

2#
tranhungdao12a3 Đăng lúc 10/1/2016 12:40 | Chỉ xem của tác giả
Xài vầy đi. Muốn để ổ E thì di chuyển Foler Pic_xd qua ổ E:

[Visual Basic] 纯文本查看 复制代码
Option Explicit
Function CommPic(Pic As String, Cel As Range) As String
  On Error Resume Next
  Application.Volatile
  Cel.Comment.Delete
  If Cel.Comment Is Nothing Then Cel.AddComment
  Cel.Comment.Text vbLf
  With Cel.Comment.Shape
    .Left = Cel.Left: .Top = Cel.Top: .Visible = True
    .Width = Cel.Width: .Height = Cel.Height
    .Fill.UserPicture Pic
  End With
End Function

chen_anh.xlsm (36.78 KB, Lượt tải về: 3011)

Đánh giá

Chia sẻ hay! Thanks bạn nhé!: 5.0
Chia sẻ hay! Thanks bạn nhé!: 5
  Đăng lúc 10/1/2016 14:50

Số người tham gia 2Thanked +12 Thu lại Lý do
tranhoe + 10 Chuyên nghiệp. Cảm ơn!
vantuan18nd + 2 Cảm ơn quan tâm của bạn nhiều!

Xem tất cả

www.xaydung360.vn XÂY TÂM, DỰNG TẦM CHUYÊN NGHIỆP

3#
tranhoe Đăng lúc 10/1/2016 14:59 | Chỉ xem của tác giả
Để có kết quả đúng thì file này và các ảnh minh họa phải cùng nằm trong 1 thư mục (có tên bất kỳ không nhất thiết là E:\PIC_XD). Có nghĩa là chép file đính kèm vào thư mục chứa các hình ảnh minh họa, xong mở file.
Trên cơ sở trả lời của @tranhungdao12a3 mình sửa tí xíu cho phù hợp với ý của chủ topic:
[Visual Basic] 纯文本查看 复制代码
Function CommPic(Cell1 As Range, Cell2 As Range) As String
  On Error Resume Next
  Application.Volatile
  Cell2.Comment.Delete
  If Cell2.Comment Is Nothing Then Cell2.AddComment
  Cell2.Comment.Text vbLf
  With Cell2.Comment.Shape
    .Left = Cell2.Left: .Top = Cell2.Top: .Visible = True
    .Width = Cell2.Width: .Height = Cell2.Height
    .Fill.UserPicture ThisWorkbook.Path & "\Pic" & Cell1.Value & ".jpg"
  End With
End Function

file: chen_anh_V1.xlsm (23.51 KB, Lượt tải về: 2731)

Đánh giá

Chia sẻ hay! Thanks bạn nhé!: 5.0
Chia sẻ hay! Thanks bạn nhé!: 5
  Đăng lúc 10/1/2016 16:17

Số người tham gia 1Thanked +2 Thu lại Lý do
vantuan18nd + 2 Cảm ơn quan tâm của bạn nhiều!

Xem tất cả

www.xaydung360.vn XÂY TÂM, DỰNG TẦM CHUYÊN NGHIỆP

4#
 Tác giả| vantuan18nd Đăng lúc 10/1/2016 20:16 | Chỉ xem của tác giả
VBA thật kỳ diệu !
Xin lỗi vì đã trả lời bài muộn.
Cảm ơn tất cả mọi người nhiều. Hoàn toàn đúng ý cháu rồi !

www.xaydung360.vn XÂY TÂM, DỰNG TẦM CHUYÊN NGHIỆP

5#
tranhoe Đăng lúc 10/1/2016 20:59 | Chỉ xem của tác giả
tranhungdao12a3 gửi lúc 10/1/2016 12:40
Xài vầy đi. Muốn để ổ E thì di chuyển Foler Pic_xd qua ổ E:

[mw_shl_code=vb,true]Option E ...

Hay quá Bạn ơi!.
Hay nhất là lệnh nầy: " Cell.Comment.Delete".
Nếu không thì ảnh cứ chèn vào mà chỉ có 1 ảnh là Activate mà thôi, xài 1 thời gian file quá nặng mở không nổi.
Khen thật tình đó nhé!

Đánh giá

Chia sẻ hay! Thanks bạn nhé!: 5.0
Chia sẻ hay! Thanks bạn nhé!: 5
Em học của người khác thôi anh! Có lần coi làm mấy thứ này bằng VSTO hay lắm anh!  Đăng lúc 10/1/2016 23:30

www.xaydung360.vn XÂY TÂM, DỰNG TẦM CHUYÊN NGHIỆP

6#
 Tác giả| vantuan18nd Đăng lúc 11/1/2016 14:00 | Chỉ xem của tác giả
tranhoe gửi lúc 10/1/2016 20:59
Hay quá Bạn ơi!.
Hay nhất là lệnh nầy: " Cell.Comment.Delete".
Nếu không thì ảnh cứ ch ...

Em hỏi thêm ạ, với cả hai cách trên, khi muốn hình ảnh xuất hiện ở ô khác thì phải thay ở dòng nào ạ.
Thanks

www.xaydung360.vn XÂY TÂM, DỰNG TẦM CHUYÊN NGHIỆP

7#
tranhoe Đăng lúc 11/1/2016 14:22 | Chỉ xem của tác giả
vantuan18nd gửi lúc 11/1/2016 14:00
Em hỏi thêm ạ, với cả hai cách trên, khi muốn hình ảnh xuất hiện ở ô khác thì phả ...

Ví dụ: muốn có hình ở ô E7
Ghi công thức ô E7  =CommPic(A7;E7)
Vậy thôi

Số người tham gia 1Thanked +2 Thu lại Lý do
vantuan18nd + 2 Cảm ơn quan tâm của bạn nhiều!

Xem tất cả

www.xaydung360.vn XÂY TÂM, DỰNG TẦM CHUYÊN NGHIỆP

8#
traihanam218 Đăng lúc 23/6/2016 13:25 | Chỉ xem của tác giả
Cho em hỏi chèn ảnh xong vào excel mà muốn in ra có cả hình nữa thì làm thế nào ạ.@@

www.xaydung360.vn XÂY TÂM, DỰNG TẦM CHUYÊN NGHIỆP

9#
tranhoe Đăng lúc 23/6/2016 20:11 | Chỉ xem của tác giả
traihanam218 gửi lúc 23/6/2016 13:25
Cho em hỏi chèn ảnh xong vào excel mà muốn in ra có cả hình nữa thì làm thế nào ạ.@@ ...

Nếu Em biết đọc câu lệnh thì sẽ hiểu rằng Function CommPic ở trên chèn Comment vào cells. Mà đã là Comment thì mặc định là không thấy được khi in ra. Xem cách xử lý để in ở bài 10# bên dưới
Tôi đưa ra hướng xử lý là chèn ảnh thật vào cells, sử dụng sự kiện Worksheet_Change khi thay đổi giá trị tại ô A1
[Visual Basic] 纯文本查看 复制代码
Private Sub Worksheet_Change(ByVal Target As Range) 
    Dim Shp As Shape
    Dim rngZ As Range
    If Target.Row <> 1 And Target.Column <> 1 Then Exit Sub
    'Bay loi Su kien
    Application.EnableEvents = False
    'Xoa cac Shape dang ton tai tren sheet
    For Each Shp In ActiveSheet.Shapes
        Shp.Delete
    Next
    Range("D4").Select
    'Bat dau chen hinh anh
    Do Until ActiveCell.Offset(0, -3).FormulaR1C1 = vbNullString
        ActiveSheet.Pictures.Insert(ThisWorkbook.Path & "\Pic" & ActiveCell.Offset(0, -3).Value & ".jpg").Select
        With Selection
            Set rngZ = .TopLeftCell
            .ShapeRange.ScaleHeight rngZ.Height / .Height, msoFalse
            .ShapeRange.ScaleWidth rngZ.Width / .Width, msoFalse
            .PrintObject = True
        End With
        rngZ.Offset(1, 0).Select
    Loop
    Application.EnableEvents = True
End Sub


File đính kèm: chen_anh_V2.xlsm (25.62 KB, Lượt tải về: 2372)

www.xaydung360.vn XÂY TÂM, DỰNG TẦM CHUYÊN NGHIỆP

10#
votinh3290 Đăng lúc 24/6/2016 00:18 | Chỉ xem của tác giả
tranhoe gửi lúc 23/6/2016 20:11
Nếu Em biết đọc câu lệnh thì sẽ hiểu rằng Function CommPic ở trên chèn Comment vào c ...

Sao lại không in được comment

http://vietbao.vn/Vi-tinh-Vien-t ... Excel/55167038/229/

Đánh giá

Chia sẻ hay! Thanks bạn nhé!: 5.0
Chia sẻ hay! Thanks bạn nhé!: 5
  Đăng lúc 24/6/2016 00:50

www.xaydung360.vn XÂY TÂM, DỰNG TẦM CHUYÊN NGHIỆP

11#
buiviethuy Đăng lúc 6/6/2018 17:14 | Chỉ xem của tác giả
tranhoe gửi lúc 23/6/2016 20:11
Nếu Em biết đọc câu lệnh thì sẽ hiểu rằng Function CommPic ở trên chèn Comment vào ce ...

Anh ơi, cái này sao không kết hợp được với công cụ Spin Button ạ. Khi áp dụng cái này nhảy số từ 1 đến 3 thì hình ảnh không đổi

www.xaydung360.vn XÂY TÂM, DỰNG TẦM CHUYÊN NGHIỆP

12#
vtthanyeu Đăng lúc 9/7/2019 18:33 | Chỉ xem của tác giả
Các anh cho em hỏi: ở mỗi sheet thì vùng cần chèn ảnh có kích thước khác nhau. Vậy mình làm sao để tùy biến được kích thước vùng chèn cho hợp lý. Ở đây em dùng kích thước cố định trong code nên với mỗi sheet sẽ cho ra kích thước không hợp lý.

Chen anh 190709.rar

89.22 KB, Lượt tải về: 447

www.xaydung360.vn XÂY TÂM, DỰNG TẦM CHUYÊN NGHIỆP

13#
vtthanyeu Đăng lúc 27/7/2019 19:24 Từ di động | Chỉ xem của tác giả
Có cách nào để dùng hàm này mà vẫn undo được ko các bác?

www.xaydung360.vn XÂY TÂM, DỰNG TẦM CHUYÊN NGHIỆP

Phiên bản Mobile|Phần mềm ôn thi sát hạch chứng chỉ hành nghề xây dựng  

Phần mềm dự toán xây dựng excel | Hướng dẫn lập dự toán xây dựng | Phần mềm tư vấn giám sát | Phần mềm quản lý chất lượng xây dựng |

Phần mềm ôn thi sát hạch chứng chỉ hành nghề xây dựng

Phần mềm ôn thi sát hạch chứng chỉ hành nghề Kiến Trúc sư

Phần mềm ôn thi sát hạch chứng chỉ hành nghề Đấu thầu

GMT+7, 4/5/2024 03:22 , Processed in 0.154609 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Kiso Comsenz Inc.