Chào mừng đến với Diễn Đàn Tin Học VN! Hãy chia sẽ những gì bạn biết, và đưa ra thắc mắc của bạn để được giải đáp.

Xem chủ đề cũ hơnGo downXem chủ đề mới hơn
phoenix51706
phoenix51706
Admin
Tổng số bài gửi : 171
Join date : 30/07/2010
https://diendantinhocvn.forumvi.com

Tạo thanh progress bar cho excel Empty Tạo thanh progress bar cho excel

05/11/21, 02:26 am
Nhiều lúc chạy vòng lặp lớn nhìn cái excel chạy mà thấy mòn mỏi và không biết khi nào nó xong. Cảm giác lúc đó ức chế vô cùng, nhiều khi vội còn điên tiết hơn nữa.
Để thân thiện và dễ chịu hơn thì dùng một Progress bar cho nó chạy và hiển thị việc mình làm được bao nhiêu phần trăm.



Bước 1: Tạo form làm Progress bar

  • Tạo một form với tên là userfrom1 (nếu đặt tên khác thì phải sửa lại code cho phù hợp)
  • Đổi caption của nó thành Progress Indicator (hoặc cái gì tùy thích)

Bước 2: Vẽ một frame

  • Caption = Xóa trống
  • Height = 24
  • Width = 204

Bước 3: Vẽ 2 label vào trong frame đã tạo ở trên và sắp xếp lại cho hợp lý


Label 1:

  • Name = Bar
  • Backcolor = highlight
  • width = 10
  • height = 20
  • Caption = xóa trống

Label 2:

  • Name = Text
  • Backstyle = 0 - fmBackstyleTransparent
  • Caption = 0% Completed
  • Height = 20
  • Width = 72

Bước 4: Code chạy Progress bar

Code:
Public Sub progress(pctCompl As Single)
    UserForm1.Text.Caption = pctCompl & "% Completed"
    UserForm1.Bar.Width = pctCompl * 2
    DoEvents
End Sub

Bước 5: Áp dụng vào thực tế

Code:
Sub test()
    Dim i As Long, last As Long
    Dim pctCompl As Single
    last = 110000
  
    'show progress bar form
    UserForm1.Show vbModeless
    For i = 1 To last
  
    '...
  
    pctCompl = Int(i * 100 / last)
    progress pctCompl
    Next i
  
    'close progress bar form
    Unload UserForm1
End Sub

Bonus: Chỉnh vị trí hiển thị form theo sở thích của mình Nhấp đúp chuột vào form và dán đoạn code sau vào và sau đó cân chỉnh theo ý của mình

Code:
Private Sub UserForm_Initialize()
    Me.StartUpPosition = 0
    Me.Top = Application.Top + 45
    Me.Left = Application.Left + Application.Width - Me.Width - 25
End Sub

[/list]
Xem chủ đề cũ hơnVề Đầu TrangXem chủ đề mới hơn
Permissions in this forum:
Bạn không có quyền trả lời bài viết