Hỏi thêm ứng dụng scroll bar trong form (1 người xem)

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

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

LikeIt

Thành viên tiêu biểu
Tham gia
16/6/06
Bài viết
415
Được thích
254
Nghề nghiệp
Others
Kính gửi các Anh Chị,
Em đang thử nghiệm làm theo hướng dẫn về Scroll bar trong form và muốn hỏi thêm các anh chị về ứng dụng của nó, cụ thể có file gửi kèm, mong nhận đc chỉ giáo thêm để học hỏi
Tks- NHT
 

File đính kèm

Vấn đề 1: năm hiện 00
Trong số các Property của Scroll Bar có 2 tham số là Min Value và Max Value. Min Value là 0, linked cell là A5 ==> A5=0. Format A5 là ngày tháng thì là 01/01/1900 là phải rồi.
Giải quyết: Xem thử 01/01/2008 có giá trị số là bao nhiêu, ta được 39448, gán giá trị này cho min value. 39448 + 366 = 39815, gán số này vào Max Value. (366 vì năm 2008 nhuận)
Vấn đề 2: khi bấm mũi tên thì giá trị của scroll Bar thay đổi. Viết 1 Macro tương ứng với sự thay đổi này:

If column tương ứng hidden (bấm mũi tên trái)
show column đó
Cell dòng 1 của column đó đổi màu tím
Cell dòng 1 cột column +1 đổi màu đen
Else (bấm mũi tên phải)
Hide column trước column đó
Cel của dòng 1 của column đó đổi màu tím

End If

Hy vọng bạn hiểu.
Còn nữa, nếu không phải trên form, thì bạn dùng các control của control tool box, trong Property có nhiều chọn lựa hơn và dễ sửa hơn. Ngoài ra Scroll Bar của Form xài trong sheet chỉ cho Max Value tối đa là 30.000 dù cho xài trong Form nó cho nhiều hơn.
 
Lần chỉnh sửa cuối:
Upvote 0
Kính gửi các Anh Chị,
Em đang thử nghiệm làm theo hướng dẫn về Scroll bar trong form và muốn hỏi thêm các anh chị về ứng dụng của nó, cụ thể có file gửi kèm, mong nhận đc chỉ giáo thêm để học hỏi
Tks- NHT

Ok, đã giúp rồi, bạn xem thêm trong file gửi kèm , nếu bạn dùng office2003 trở lại thì bạn nên đổi maxvalue của scroll xuống nhé (tối đa là 261 thôi), muốn là 365 thì phải dùng Excel2007, thế nhé

Với ô liên kết với scrollbar1 là ô A1
PHP:
Sub ScrollBar1_Change()
    Application.ScreenUpdating = False
    Cells.Select: Selection.EntireColumn.Hidden = False
    If Cells(1, 1).Value > 1 Then
        Range(Cells(1, 5), Cells(1, 4 + Cells(1, 1).Value)).Select
        Selection.EntireColumn.Hidden = True
    End If
    Range("A5").Select
    Application.ScreenUpdating = True
End Sub
.
 

File đính kèm

Upvote 0
KG anh Tigertiger,
em dùng office XP thì có phải đổi maxvalue xuống kô?
 
Upvote 0
Em cũng có 1 cách làm khác dễ hiểu hơn... đó là em cho Link cell vào A1, tại A5 em lập công thức:
Mã:
=INDEX($E$1:$AI$1,1,$A$1+1)
Vậy vừa dễ hiễu, vừa khỏi mất công nhớ ngày 1/2/2008 là số mấy
ANH TUẤN
 
Upvote 0
nếu bạn dùng office2003 trở lại thì bạn nên đổi maxvalue của scroll xuống nhé (tối đa là 261 thôi), muốn là 365 thì phải dùng Excel2007
To TigerTiger: Mình xài 2003 cho max đến 30.000 lận mà? Xài của control tool box còn nhiều hơn, chưa biết bao nhiêu nhưng 39.813 thì OK.
À nghĩ ra rồi, thì ra bị giới hạn của số cột tối đa 255 cho 1 sheet, trừ 4 cột đầu còn 251.

Vậy vừa dễ hiễu, vừa khỏi mất công nhớ ngày 1/2/2008 là số mấy
To Anhtuan1066: Khi gán giá trị cho min = 39448, mình cũng đâu cần nhớ nó nữa?
 
Lần chỉnh sửa cuối:
Upvote 0
To Anhtuan1066: Khi gán giá trị cho min = 39448, mình cũng đâu cần nhớ nó nữa?
Đúng là gán 1 lần là khỏi cần nhớ... nhưng có cái bất tiện là khi thay đỗi tiêu đề ngày tháng thì làm sao? Có phải sẽ mất công set lại MIN ko đại ca?
ANH TUAN
 
Upvote 0
Hương Thơm ơi...
Em xem file này có dc ko nha!
Anh dùng code này:
PHP:
Sub ScrollBar1_Change()
  Application.ScreenUpdating = False
  For Each Clls In Range("NGAY")
     If Clls.Value < Range("A5").Value Then
        Clls.EntireColumn.Hidden = True
     Else: Clls.EntireColumn.Hidden = False
     End If
  Next
End Sub
Trong đây đã chỉnh lại đôi chút về MAX và MIN cũa Scrollbar, đồng thời gán công thức cho cell A5
Chú ý Define Name NGAY =Sheet1!$E$1:$AI$1
Xem nhé
ANH TUẤN
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Nguyễn Hương Thơm đã viết:
KG anh Tigertiger,
em dùng office XP thì có phải đổi maxvalue xuống kô?

Oh, xem post của ptm0412 là hiểu mà

Vấn đề maxvalue phải được gán bằng số cột - mà office2003 (cả XP) trở lại thì chỉ có tối đa 256 cột, mà 4 cột đã dùng ở đầu rồi -> từ cột E trở đi chỉ còn dư 256-4=252 cột thui (xin lỗi trên kia tôi trừ nhầm) - vì thế không thể là 365 cột được

chắc bạn đã rõ, vậy thôi
 
Upvote 0
Giã lập Hide_Column bằng công thức

Xin giới thiệu 1 chiêu khác dùng công thức... Có thể gọi là giã lập Hide_Column... Tuy là giã lập nhưng khi kéo thanh trượt ngang ta sẽ thấy nó chạy "mịn màng" hơn nhiều sơ với Hide_Column thật
Xem file nhé
ANH TUẤN
 

File đính kèm

Upvote 0
Mình có 1 kinh nghiệm, khi xài code cho scroll bar thì dùng sub scroll1_scroll, chạy êm hơn là sub scroll1_change.
Còn xài công thức thì độc đáo đấy, nhưng phải thêm 1 sheet data nhập dữ liệu gốc, còn HuongThom và nhiều người lại muốn nhập liệu thẳng vào sheet dó, coi như dữ liệu gốc luôn. Báo cáo các loại mới dựa vào dữ liệu gốc đó mà làm.
 
Upvote 0
Thêm ScrollBar vào form

Trên form tôi đã thêm ScrollBar vào nhưng không xử lý được.
Xin giúp đỡ.
Thanks.
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom