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

Liên hệ QC

hic1802

Thành viên tiêu biểu
Tham gia
16/2/13
Bài viết
545
Được thích
34
Giới tính
Nam
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
 
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.
 
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
 
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)
 
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:
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:
Web KT
Back
Top Bottom