Cách tạo biểu tượng chờ trong khi chạy Code tính toán?!

Liên hệ QC

khoavu87

Vũ Trần Khoa
Tham gia
5/3/09
Bài viết
1,311
Được thích
1,769
Nghề nghiệp
Kỹ Sư Xây dựng cầu đường
PHP:
Sub Chay()
   Application.Cursor = xlWait
   Application.Interactive = False
'Đoạn code cần chay.

''''''''''''''''''''''''''''''
    Application.DisplayAlerts = True
    Application.Cursor = xlDefault
End sub
Em muốn viết code làm sao cho: khi chạy đoạn code trên trong lúc đoạn code đang chạy thì màn hình excel chuyển thành biểu tượng chờ là một Icon như hình vẽ ( Icon này phải chạy gõ được cái cán trống vào trống cho đến khi code chạy xong thì dứng?).
+Mong mọi người giúp đỡ ,em cảm ơn ạ.
View attachment ICON.rar
 
PHP:
Sub Chay()
   Application.Cursor = xlWait
   Application.Interactive = False
'Đoạn code cần chay.

''''''''''''''''''''''''''''''
    Application.DisplayAlerts = True
    Application.Cursor = xlDefault
End sub
Em muốn viết code làm sao cho: khi chạy đoạn code trên trong lúc đoạn code đang chạy thì màn hình excel chuyển thành biểu tượng chờ là một Icon như hình vẽ ( Icon này phải chạy gõ được cái cán trống vào trống cho đến khi code chạy xong thì dứng?).
+Mong mọi người giúp đỡ ,em cảm ơn ạ.
View attachment 64993
Xem ví dụ này:
PHP:
Public Declare Function SetSystemCursor Lib "user32" (ByVal hcur As Long, ByVal id As Long) As Long
Public Declare Function GetCursor Lib "user32" () As Long
Public Declare Function CopyIcon Lib "user32" (ByVal hcur As Long) As Long
Public Declare Function LoadCursorFromFile Lib "user32" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As Long

Public lngNewAniCursor As Long, lngDefaultHourglassCursor As Long
Public Const OCR_WAIT = 32514
PHP:
Public Sub DoCursor(Optional CursorFile As String)
  If CursorFile = "" Then
    SetSystemCursor lngDefaultHourglassCursor, OCR_WAIT
    lngDefaultHourglassCursor = 0
    Application.Cursor = xlDefault
  Else
   Application.Cursor = xlWait
   If lngDefaultHourglassCursor = 0 Then lngDefaultHourglassCursor = CopyIcon(GetCursor())
   lngNewAniCursor = LoadCursorFromFile(CursorFile)
   SetSystemCursor lngNewAniCursor, OCR_WAIT
 End If
End Sub
PHP:
Sub Test()
  Dim i As Long
  DoCursor "D:\Trong.ani" '<--- Thay doi duong dan cho phu hop
  For i = 1 To 60000
    Cells(i, 1) = i
  Next
  DoCursor
End Sub
Đoạn For... Next là code của bạn và đường dẫn "D:\Trong.ani" là đường dẫn đến file ani trong máy bạn (thay đổi cho phù hợp)
 
Upvote 0
Xem ví dụ này:
PHP:
Public Declare Function SetSystemCursor Lib "user32" (ByVal hcur As Long, ByVal id As Long) As Long
Public Declare Function GetCursor Lib "user32" () As Long
Public Declare Function CopyIcon Lib "user32" (ByVal hcur As Long) As Long
Public Declare Function LoadCursorFromFile Lib "user32" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As Long
 
Public lngNewAniCursor As Long, lngDefaultHourglassCursor As Long
Public Const OCR_WAIT = 32514
PHP:
Public Sub DoCursor(Optional CursorFile As String)
If CursorFile = "" Then
SetSystemCursor lngDefaultHourglassCursor, OCR_WAIT
lngDefaultHourglassCursor = 0
Application.Cursor = xlDefault
Else
Application.Cursor = xlWait
If lngDefaultHourglassCursor = 0 Then lngDefaultHourglassCursor = CopyIcon(GetCursor())
lngNewAniCursor = LoadCursorFromFile(CursorFile)
SetSystemCursor lngNewAniCursor, OCR_WAIT
End If
End Sub
PHP:
Sub Test()
Dim i As Long
DoCursor "D:\Trong.ani" '<--- Thay doi duong dan cho phu hop
For i = 1 To 60000
Cells(i, 1) = i
Next
DoCursor
End Sub
Đoạn For... Next là code của bạn và đường dẫn "D:\Trong.ani" là đường dẫn đến file ani trong máy bạn (thay đổi cho phù hợp)

Thay biểu tượng bằng Msgbox được không ndu ơi!
 
Upvote 0
Xem ví dụ này:
PHP:
Public Declare Function SetSystemCursor Lib "user32" (ByVal hcur As Long, ByVal id As Long) As Long
Public Declare Function GetCursor Lib "user32" () As Long
Public Declare Function CopyIcon Lib "user32" (ByVal hcur As Long) As Long
Public Declare Function LoadCursorFromFile Lib "user32" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As Long

Public lngNewAniCursor As Long, lngDefaultHourglassCursor As Long
Public Const OCR_WAIT = 32514
PHP:
Public Sub DoCursor(Optional CursorFile As String)
  If CursorFile = "" Then
    SetSystemCursor lngDefaultHourglassCursor, OCR_WAIT
    lngDefaultHourglassCursor = 0
    Application.Cursor = xlDefault
  Else
   Application.Cursor = xlWait
   If lngDefaultHourglassCursor = 0 Then lngDefaultHourglassCursor = CopyIcon(GetCursor())
   lngNewAniCursor = LoadCursorFromFile(CursorFile)
   SetSystemCursor lngNewAniCursor, OCR_WAIT
 End If
End Sub
PHP:
Sub Test()
  Dim i As Long
  DoCursor "D:\Trong.ani" '<--- Thay doi duong dan cho phu hop
  For i = 1 To 60000
    Cells(i, 1) = i
  Next
  DoCursor
End Sub
Đoạn For... Next là code của bạn và đường dẫn "D:\Trong.ani" là đường dẫn đến file ani trong máy bạn (thay đổi cho phù hợp)
Phải công nhận đọc chưa hiểu gì cả sư phụ ạ nhưng thấy có thể làm được là vui rồi.Cảm ơn Sư phụ em nghiên cứu phát.
 
Upvote 0
Thì khi code đang chạy, hiện lên dòng thông báo "Xin vui lòng chờ trong giây lát, cứ ăn nhậu đi" chẳng hạn.
Em e rằng không được quá (không dám chắc). Vì thiết nghĩ nếu MsgBox hiện ra, nó sẽ chờ ta bấm gì đó thì code mới làm tiếp được chứ
(nói chung là em hổng dám chắc vụ này)
---------------------
Phải công nhận đọc chưa hiểu gì cả sư phụ ạ nhưng thấy có thể làm được là vui rồi.Cảm ơn Sư phụ em nghiên cứu phát.
Google 1 phát có ngay, đem code về chỉnh sửa lại, miễn chạy được là tốt rồi... Có khi cũng không cần hiểu vì bây giờ không hiểu thì.. sau này sẽ hiểu
 
Lần chỉnh sửa cuối:
Upvote 0
Em e rằng không được quá (không dám chắc). Vì thiết nghĩ nếu MsgBox hiện ra, nó sẽ chờ ta bấm gì đó thì code mới làm tiếp được chứ
(nói chung là em hổng dám chắc vụ này)
---------------------

Google 1 phát có ngay, đem code về chỉnh sửa lại, miễn chạy được là tốt rồi... Có khi cũng không cần hiểu vì bây giờ không hiểu thì.. sau này sẽ hiểu

Vậy mình tạo file thongbao.ani thay cho file trong.ani, cái vụ ani này giờ mình mới gặp, để nghiên cứu thử.
 
Upvote 0
Web KT

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

Back
Top Bottom