Nhắc lại: Hỏi 1 tí về Comment và Define Name?

Liên hệ QC

duongsatdn

Thành viên tiêu biểu
Tham gia
15/6/07
Bài viết
455
Được thích
393
Nguyên văn bởi anhtuan1066
Tôi có 2 vấn đề cần thọ giáo các bạn:
1/- Về Comment: Khi ta chèn 1 Picture nào đó vào Comment thì có cách nào cho Picture ấy thay đỗi theo sự thay đỗi của 1 cell ko? VD: Cell A1=1 thì comment là Pic01.jpg, cell A1=2 thì comment là Pic02.jpg... van.. van...
ANH TUẤN
Trích bởi duongsatdn
1. Dùng Combo Box để chọn một Tên trong danh sách.
2. Dùng hàm để tìm các thông số liên quan như ngày sinh, đơn vị công tác, ...
3. Tại một ô nào đó có xuất hiện ảnh của người được chọn.


Không rõ do chủ đề này cũ hay do quá nhiều ý kiến khiến nó có đến 4 trang mà đề nghị của tôi chưa có hồi âm?
Tôi mù mờ về VBA quá nên xem các file mẫu của anh Duyệt và của bạn Vungoc thì thấy hết sức uyên thâm. Nếu có thể xin các anh giải quyết giúp đúng yêu cầu của Anh Tuấn hoặc của tôi được không?
 
Lần chỉnh sửa cuối:
Sao bạn o liên hệ Đào Việt Cường (Tác giả PicForm)
Mạn phép tôi sửa 1 chút, cho dễ hiểu hơn, và cũng chỉ biết tới đó.
Trong sh Data khi nhập tên vào sẽ có button select picture (nhớ là các hình phải chung file với file picform). Bạn cứ thử.
Các code đi theo tôi chưa hiểu nên không biết sửa.
Tôi gởi lại bạn picform.xls còn các hình thì bạn có rồi, file cũ.
Chép tất cả vào chung 1 thư mục. Để nghiên cứu tiếp sẽ hd tiếp.
 

File đính kèm

excel vba cell comment add picture: google ->
http://www.contextures.com/xlcomments02.html
sửa sang lại 1 chút theo ý của bạn
................
Option Explicit

Sub PictureIntoComment()
'Dim ch As ChartObject
Dim dWidth As Double '********
Dim dHeight As Double '*****
Dim ws As Worksheet
Dim sName As String '****
Dim cmt As Comment
Dim sPath As String '****
Dim sFile As String '******
Dim rng As Range '******
Set ws = ActiveSheet ' 888888
Set rng = ActiveCell ' 8888 88
sPath = ThisWorkbook.Path & "\"
sName = "NhanARap"
'If sName = "" Then sName = "Picture_" & Format(Date, "yyyymmdd")
sFile = sPath & sName & Cells(1, 1) & ".bmp"

dWidth = 100
dHeight = 100

'Selection.Cut
'Set ch = ws.ChartObjects.Add(Left:=rng.Left, Top:=rng.Top, _
Width:=dWidth, Height:=dHeight)
'ch.Chart.Paste
'rng.Activate
'ch.Chart.Export sFile
'ch.Delete
On Error Resume Next
Set cmt = rng.AddComment
cmt.Text Text:=""
With cmt.Shape
.Fill.UserPicture sFile
.Width = dWidth
.Height = dHeight
End With
End Sub
..................
đưa vào events worksheets chắc bạn dễ dàng làm được
 
To Duongsatdn
Sau khi mày mò tôi làm lại file chỉ cần 1 sự kiện là OK.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
'A1 la ten file hinh chon, muon de cho nao cung duoc
Range("a1").Comment.Shape.Fill.UserPicture ThisWorkbook.Path & "\" & Range("a1")
End Sub
Bạn thử xem, tạo 1 names hinh và 1 validation chọn hình. Phải có thư mục hình như names hinh. Hình và file picform2 nên nằm chung 1 folder
 

File đính kèm

Ha.. ha... cái này mới thật đơn giản nhất... Từ đây thì thích làm gì cũng dc nhỉ... Cám ơn ThuNghi..
ANH TUẤN
 
Tôi đoán rằng: Dung lượng của file Excel sẽ = chính nó + dung lương của 1 file hình nào đó, có đúng thế ko? Vì trong 1 thời điễm chỉ load 1 hình duy nhất...
 
Tôi sửa lại file 1 tí: Tôi tạo 1 ComboBox, có Input range= Hinh... Cell link = F1... Cell A1 tôi xóa Data Validation và tạo công thức A1=INDEX(Hinh,F1,1)... Cách chọn hình mới này thấy cũng ko khác gì mấy so với trước... Thế sao khi chọn vào ComboBox, A1 có thay đỗi nhưng hình trong Comment thì lại chẵng thấy thay đỗi gì? ThuNghi giúp dùm tí đi...
ANH TUẤN
 
anhtuan1066 đã viết:
Tôi sửa lại file 1 tí: Tôi tạo 1 ComboBox, có Input range= Hinh... Cell link = F1... Cell A1 tôi xóa Data Validation và tạo công thức A1=INDEX(Hinh,F1,1)... Cách chọn hình mới này thấy cũng ko khác gì mấy so với trước... Thế sao khi chọn vào ComboBox, A1 có thay đỗi nhưng hình trong Comment thì lại chẵng thấy thay đỗi gì? ThuNghi giúp dùm tí đi...
ANH TUẤN
Cảm ơn ThuNghi. Tôi cũng làm như Anhtuan và nhận thấy rằng: Khi nháy đúp vào ô B12 rồi Enter thì ảnh ở Comment mới thay đổi. Do đó tôi thêm một macro như sau: (Ô B12 của tôi cũng như A1 của Anhtuan)

Sub Macro1()
'
' Macro1 Macro
Range("B12").Select
ActiveCell.FormulaR1C1 = "=INDEX(Hinh,RC[-1],1)"
Range("B12").Select
End Sub

Sau đó gán macro này cho ComboBox.
Macro1 tôi dùng "Record New Macro". (Vì không rành về VBA.@!##)
 
Lần chỉnh sửa cuối:
Thú thiệt tôi cũng đang mày mò, chỉ biết dòng lệnh
Range("a1").Comment.Shape.Fill.UserPicture ThisWorkbook.Path & "\" & Range("a1") là thay hình trong comment tại A1 = hình theo tên của A1 theo path ThisWorkbook.Path
Tôi làm lại theo validation và combobox.
Đang nghiên cứu sự kiện change đối với thay đổi do combobox.
Trước mắt từng ấy là đủ để thực thi công việc.
 

File đính kèm

Web KT

Bài viết mới nhất

Back
Top Bottom