Lỗi load tên ảnh vào combobox userform VBA

hic1802

Thành viên tiêu biểu
Tham gia ngày
16 Tháng hai 2013
Bài viết
491
Được thích
33
Điểm
385
Xin chào mọi người trên GPE,
Mình có chỉnh sửa code load tên ảnh vào combobox trên diễn đàn GPE, tuy nhiên khi mình copy cả thư mục chứa file và ảnh sang 1 thư mục khác thì không load được tên ảnh trong cùng thư mục
Nhờ mọi người giúp đỡ

Mã:
Private Sub UserForm_Initialize()
Application.ScreenUpdating = False
Dim fA()
Dim I, n As Integer
Dim dName As Variant
ChDir ActiveWorkbook.Path
'ChDir "C:\Users\Administrator\Desktop\New folder" 'Ð?a ch? du?ng d?n noi ch?a ?nh
dName = Dir("*.jpg")  'Tên d?i tu?ng du?c ch?n là các ?nh có duôi .jpg trong thu m?c
'N?p các d?i tu?ng có trong thu m?c vào trong 1 danh sách
Do While dName <> ""
  n = n + 1
  ReDim Preserve fA(1 To n)
  fA(n) = dName
  dName = Dir()
Loop
'N?p danh sách vào Combobox cbSale
For I = 1 To n
  cbSale.AddItem fA(I)
Next
Application.ScreenUpdating = True
Label16 = Sheets("DATA").Range("I1").Value

Dim lr As Long
lr = Sheets("DATA").Range("A" & Rows.Count).End(xlUp).Row
lb1.List = Sheets("DATA").Range("A1:F" & lr).Value

Label11.Caption = ""
TextBox1.Value = ""
cbSale.Value = ""
Label10.Caption = Sheets("DATA").Range("I2").Value

CheckBox1.Value = False
Label17.Caption = ""
tx5.Visible = False
End Sub
Vì dung lượng file không cho phép nên mình up lên google driver
 

be09

TNMT_Đồng Nai
Tham gia ngày
9 Tháng tư 2011
Bài viết
8,381
Được thích
8,146
Điểm
560
Tuổi
62
Nơi ở
Biên Hòa, Đồng Nai
Xin chào mọi người trên GPE,
Mình có chỉnh sửa code load tên ảnh vào combobox trên diễn đàn GPE, tuy nhiên khi mình copy cả thư mục chứa file và ảnh sang 1 thư mục khác thì không load được tên ảnh trong cùng thư mục
Nhờ mọi người giúp đỡ

Mã:
Private Sub UserForm_Initialize()
Application.ScreenUpdating = False
Dim fA()
Dim I, n As Integer
Dim dName As Variant
ChDir ActiveWorkbook.Path
'ChDir "C:\Users\Administrator\Desktop\New folder" 'Ð?a ch? du?ng d?n noi ch?a ?nh
dName = Dir("*.jpg")  'Tên d?i tu?ng du?c ch?n là các ?nh có duôi .jpg trong thu m?c
'N?p các d?i tu?ng có trong thu m?c vào trong 1 danh sách
Do While dName <> ""
  n = n + 1
  ReDim Preserve fA(1 To n)
  fA(n) = dName
  dName = Dir()
Loop
'N?p danh sách vào Combobox cbSale
For I = 1 To n
  cbSale.AddItem fA(I)
Next
Application.ScreenUpdating = True
Label16 = Sheets("DATA").Range("I1").Value

Dim lr As Long
lr = Sheets("DATA").Range("A" & Rows.Count).End(xlUp).Row
lb1.List = Sheets("DATA").Range("A1:F" & lr).Value

Label11.Caption = ""
TextBox1.Value = ""
cbSale.Value = ""
Label10.Caption = Sheets("DATA").Range("I2").Value

CheckBox1.Value = False
Label17.Caption = ""
tx5.Visible = False
End Sub
Vì dung lượng file không cho phép nên mình up lên google driver
Lỗi là do cách bạn đặt tên ảnh:
Để đặt tên ảnh cho phù hợp với nội dung thì bạn Copy cột F và Paste > Value qua cột H rồi dùng tên trong cột này mà đặt tên cho ảnh mới phù hợp.
 

hic1802

Thành viên tiêu biểu
Tham gia ngày
16 Tháng hai 2013
Bài viết
491
Được thích
33
Điểm
385
Lỗi là do cách bạn đặt tên ảnh:
Để đặt tên ảnh cho phù hợp với nội dung thì bạn Copy cột F và Paste > Value qua cột H rồi dùng tên trong cột này mà đặt tên cho ảnh mới phù hợp.
hình như bạn đang nhầm ý mình, hoặc có thể là mình chưa hiểu ý bạn
Ý mình hỏi là các tên ảnh có sẵn tại cùng thư mục file excel được truyền vào combobox trên userform1 (câu lệnh mình chèn ở trên), lúc đầu mình để cả thư mục ở desktop máy tính thì combobox cbSale nó sẽ load các tên file ảnh trong thư mục vào, tuy nhiên khi mình copy thư mục này sang ổ khác hoặc máy tính khác thì combobox trên ko còn load các tên ảnh có trong cùng thư mục
Mình không nói ở phần listbox (tên ảnh theo mình hiểu bạn đang nói đến là ở phần listbox)
Thân
 

giaiphap

Thành viên gạo cội
Tham gia ngày
12 Tháng ba 2007
Bài viết
4,815
Được thích
4,063
Điểm
860
hình như bạn đang nhầm ý mình, hoặc có thể là mình chưa hiểu ý bạn
Ý mình hỏi là các tên ảnh có sẵn tại cùng thư mục file excel được truyền vào combobox trên userform1 (câu lệnh mình chèn ở trên), lúc đầu mình để cả thư mục ở desktop máy tính thì combobox cbSale nó sẽ load các tên file ảnh trong thư mục vào, tuy nhiên khi mình copy thư mục này sang ổ khác hoặc máy tính khác thì combobox trên ko còn load các tên ảnh có trong cùng thư mục
Mình không nói ở phần listbox (tên ảnh theo mình hiểu bạn đang nói đến là ở phần listbox)
Thân
Thay đoạn code sau:
Mã:
ChDir ActiveWorkbook.Path
dName = Dir("*.jpg")
bằng đoạn code dưới đây:
Mã:
dName = Dir(ActiveWorkbook.Path & Application.PathSeparator & "*.jpg")
Trong sự kiện cbSale_Change thay đoạn code sau:
Mã:
Image1.Picture = LoadPicture(Label11)
thành đoạn code sau:
Mã:
Image1.Picture = LoadPicture(ActiveWorkbook.Path & Application.PathSeparator & Label11.Caption)
 

batman1

Thành viên gắn bó
Tham gia ngày
8 Tháng chín 2014
Bài viết
2,461
Được thích
3,723
Điểm
560
1. Vứt ChDir ActiveWorkbook.Path
2. Sửa
Mã:
dName = Dir( "*.jpg")
thành
Mã:
dName = Dir(ThisWorkbook.Path & "\*.jpg")
3. Thay
Mã:
Image1.Picture = LoadPicture(Label11)
bằng
Mã:
Image1.Picture = LoadPicture(ThisWorkbook.Path & "\" & Label11)
 
Lần chỉnh sửa cuối:

hic1802

Thành viên tiêu biểu
Tham gia ngày
16 Tháng hai 2013
Bài viết
491
Được thích
33
Điểm
385
Thay đoạn code sau:
Mã:
ChDir ActiveWorkbook.Path
dName = Dir("*.jpg")
bằng đoạn code dưới đây:
Mã:
dName = Dir(ActiveWorkbook.Path & Application.PathSeparator & "*.jpg")
Trong sự kiện cbSale_Change thay đoạn code sau:
Mã:
Image1.Picture = LoadPicture(Label11)
thành đoạn code sau:
Mã:
Image1.Picture = LoadPicture(ActiveWorkbook.Path & Application.PathSeparator & Label11.Caption)
chuẩn rồi, cảm ơn bạn nhiều
Bài đã được tự động gộp:

1. Vứt ChDir ActiveWorkbook.Path
2. Sửa
Mã:
dName = Dir( "*.jpg")
thành
Mã:
dName = Dir(ThisWorkbook.Path & "\*.jpg")
3. Thay
Mã:
Image1.Picture = LoadPicture(Label11)
bằng
Mã:
Image1.Picture = LoadPicture(ThisWorkbook.Path & "\" & Label11)
Cách của bạn cũng giống cách của bạn @giaiphap
Mình đã thử đều đúng cả, cảm ơn bạn đã giúp đỡ
 
Lần chỉnh sửa cuối:
Top Bottom