form initialize vba (1 người xem)

  • Thread starter Thread starter mesavn04
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

mesavn04

Thành viên mới
Tham gia
31/8/11
Bài viết
19
Được thích
2
hôm trước mình có làm một cái form trong excel, muốn refresh dữ liệu trên form đó, và đã nhận được giải đáp rất nhiệt tình của các bạn, mình rất cảm kích%#^#$. Nhưng mà sau khi dùng thủ tục initialize để refresh xong lại không thể dùng .show cho nó tự động xuất hiện được. Có cách nào refresh nội dung cho combobox mỗi lần form tự động show không? Nghĩa là giải pháp dung hòa 2 cái đó đó. Mình chỉ mới bước chân vào VBA thôi nên hơi yếu mảng này, mong các bạn giúp đỡ. Cảm ơn các bạn nhiều%#^#$
 
hôm trước mình có làm một cái form trong excel, muốn refresh dữ liệu trên form đó, và đã nhận được giải đáp rất nhiệt tình của các bạn, mình rất cảm kích%#^#$. Nhưng mà sau khi dùng thủ tục initialize để refresh xong lại không thể dùng .show cho nó tự động xuất hiện được. Có cách nào refresh nội dung cho combobox mỗi lần form tự động show không? Nghĩa là giải pháp dung hòa 2 cái đó đó. Mình chỉ mới bước chân vào VBA thôi nên hơi yếu mảng này, mong các bạn giúp đỡ. Cảm ơn các bạn nhiều%#^#$
Tự bạn nói và tự bạn hiểu chắc
 
Upvote 0
Tự bạn nói và tự bạn hiểu chắc

à đại loại là sau khi dùng form initialize thì chức năng .show không hoạt động được, mình gởi kèm theo file mình đã làm mong bạn giúp mình sửa cho đúng@$@!^%
mình chỉ là làm theo yêu cầu nên có đôi chỗ cũng không hiểu rõ hết dụng ý của người ta@$@!^%
 

File đính kèm

Upvote 0
à đại loại là sau khi dùng form initialize thì chức năng .show không hoạt động được, mình gởi kèm theo file mình đã làm mong bạn giúp mình sửa cho đúng@$@!^%
mình chỉ là làm theo yêu cầu nên có đôi chỗ cũng không hiểu rõ hết dụng ý của người ta@$@!^%

Vì ComboBox MSSV của bạn vừa dùng Rowsource lại vừa nạp bằng List tại sự kiện initialize nên lỗi là phải rồi
Giải pháp:
- Xóa Rowsource property

Capture.jpg
















- Sửa lại code 1 chút:
* code của bạn là: MSSV.List() = Range(.[A1], .[A65536].End(xlUp)).Value ---> Cột A có phải là MSSV đâu chứ
* Sửa lại: MSSV.List() = Range(.[B4], .[B65536].End(xlUp)).Resize(, 10).Value
Code đầy đủ là:
PHP:
Private Sub UserForm_Initialize()
  With ActiveSheet
    MSSV.List() = Range(.[B4], .[B65536].End(xlUp)).Resize(, 10).Value
    MSSV.ColumnCount = 1
  End With
End Sub
File kia tương tự
 

File đính kèm

Upvote 0
Vì ComboBox MSSV của bạn vừa dùng Rowsource lại vừa nạp bằng List tại sự kiện initialize nên lỗi là phải rồi
Giải pháp:
- Xóa Rowsource property

View attachment 83176
















- Sửa lại code 1 chút:
* code của bạn là: MSSV.List() = Range(.[A1], .[A65536].End(xlUp)).Value ---> Cột A có phải là MSSV đâu chứ
* Sửa lại: MSSV.List() = Range(.[B4], .[B65536].End(xlUp)).Resize(, 10).Value
Code đầy đủ là:
PHP:
Private Sub UserForm_Initialize()
  With ActiveSheet
    MSSV.List() = Range(.[B4], .[B65536].End(xlUp)).Resize(, 10).Value
    MSSV.ColumnCount = 1
  End With
End Sub
File kia tương tự

Tuyệt Diệu!Cảm ơn bạn nhiều
Tại cái đó mình dựa vô sách làm theo chứ không hiểu lắm
à nếu có rất nhiều lớp được quản lý mỗi lớp trên một sheet riêng, mà mình muốn khi chọn thứ tiết một phát nó lập tức chuyển đến sheet có tên trùng với thứ tiết đó thì làm sao?
như file thứ 2 mình gởi kèm đó. File thứ nhất chỉ quản lý được một lớp duy nhất thôi
Cảm ơn bạn trước ha%#^#$
 
Upvote 0
Tuyệt Diệu!Cảm ơn bạn nhiều
Tại cái đó mình dựa vô sách làm theo chứ không hiểu lắm
à nếu có rất nhiều lớp được quản lý mỗi lớp trên một sheet riêng, mà mình muốn khi chọn thứ tiết một phát nó lập tức chuyển đến sheet có tên trùng với thứ tiết đó thì làm sao?
như file thứ 2 mình gởi kèm đó. File thứ nhất chỉ quản lý được một lớp duy nhất thôi
Cảm ơn bạn trước ha%#^#$

Xin lỗi, tôi chậm tiêu lắm! Đọc mô tả 1 hồi là chóng mắt
Muốn làm gì, bạn cứ cho file lên, mô tả chi tiết trong file là được rồi
 
Upvote 0
Xin lỗi, tôi chậm tiêu lắm! Đọc mô tả 1 hồi là chóng mắt
Muốn làm gì, bạn cứ cho file lên, mô tả chi tiết trong file là được rồi

thì dại loại nó như cái trước thôi, nhưng giờ có quá nhiều lớp mà viết câu lệnh trong VBA để chọn sheet quản lý lớp đó lại quá mất công.Cái này đã được lược bớt chứ cái chính thức tới 14 sheet quản lý 14 lớp lận!$@!! .Chẳng hạn mình chọn thứ:THU2, tiết 123, thì nó sẽ tự động chuyển sang sheet THU_123, dữ liệu trên Combobox sẽ được refresh đúng với danh sách trên sheet vừa chọn.Hôm trước mình phải viết tên các sheet đó trong câu lệnh VBA nên thấy manh mún quá, chắc chắn phải có giải pháp nào chuyên nghiệp hơn chứ?
hôm trước mình cũng gởi kèm file rồi đấythôi//////
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom