Vấn đề về hiệu ứng Màu chữ và màu nền trong E với VBA?

Liên hệ QC

gakon_Office

Nguyễn Hoàng Nhi
Tham gia
18/9/11
Bài viết
176
Được thích
26
Xin hỏi GPE có VBA nào thực hiện đổi màu chữ và màu nền liên tục không ạ?
Em gửi file đính kèm Các thầy và anh chị xem nhé Nếu có xin chỉ giúp cho em với.
 

File đính kèm

Private Sub CommandButton1_Click()
Range("F7").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 12611584
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With Selection.Font
.Color = -16711681
.TintAndShade = 0
End With
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With Selection.Font
.Color = -4165632
.TintAndShade = 0
End With
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With Selection.Font
.Color = -16776961
.TintAndShade = 0
End With
End Sub
Em dùng record mà chẳng thấy jì cả? Các thầy cỉ giúp em với.
 
Lần chỉnh sửa cuối:
Upvote 0
Em dùng record mà chẳng thấy jì cả? Các thầy cỉ giúp em với.
Có phải bạn muốn cell F7 nhấp nháy không? Nếu thế thì sao mà record macro được
Code vầy:
1> Code trong Module
PHP:
Public T As Double
Private Sub Flash_Start()
  T = Now + TimeSerial(0, 0, 1)
  With Range("F7")
    Select Case (Second(Now) Mod 3)
      Case 0: .Interior.ColorIndex = 5: .Font.ColorIndex = 6
      Case 1: .Interior.ColorIndex = 3: .Font.ColorIndex = 5
      Case 2: .Interior.ColorIndex = 6: .Font.ColorIndex = 3
    End Select
    Application.OnTime T, "Flash_Start", , True
  End With
End Sub
PHP:
Private Sub Flash_Stop()
  On Error Resume Next
  Application.OnTime T, "Flash_Start", , False
End Sub
2> Code cho CommandButton
PHP:
Private Sub CommandButton1_Click()
  With CommandButton1
    Run IIf(.Caption = "Start", "Flash_Start", "Flash_Stop")
    .Caption = IIf(.Caption = "Start", "Stop", "Start")
    .BackColor = IIf(.Caption = "Start", vbRed, vbBlue)
  End With
End Sub
----------------------
Mà nè, bạn chưa giỏi Excel thì ráng mà học tốt các kiến thức cần thiết để xử lý dữ liệu, quan tâm chi đến mấy vụ màu mè cho rách việc (có trục trặc bạn tự mình chỉnh sửa được không?)
 

File đính kèm

Upvote 0
Vâng em xin cám ơn và ghi nhớ những lời bộc bạch của thầy!
 
Upvote 0
Code của thầy ndu quá chặt chẽ, tuyệt vời rồi. Mình cũng xin post lên cách làm của mình trước là cho vui, sau là mong được giao lưu học hỏi.
1. Code trong module:
Mã:
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub doi_mau()
Dim i As byte, domau
domau = Array("5", "3", "6", "5", "3")
Do
    With Range("F7")
        .Interior.ColorIndex = domau(i)
        .Font.ColorIndex = domau(i + 2)
    End With
    i = i + 1: If i = 3 Then i = 0
   Sleep (500)
   DoEvents
  Loop
End Sub
Sub stops()
End
End Sub
2. Code trong sheet:
Mã:
Private Sub CommandButton1_Click()
    If CommandButton1.Caption = "RUN" Then
        CommandButton1.Caption = "STOP"
          doi_mau
    Else
        CommandButton1.Caption = "RUN"
           stops
    End If
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Code của thầy ndu quá chặt chẽ, tuyệt vời rồi. Mình cũng xin post lên cách làm của mình trước là cho vui, sau là mong được giao lưu học hỏi.
1. Code trong module:
Mã:
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
.......
Đừng bao giờ xài hàm Sleep
Thử xem khi chạy code rồi bạn có làm gì được không? Thậm chỉ format 1 cell cũng chẳng được
 
Upvote 0
Cám ơn thầy ndu. Đúng là dùng sleep thì những thao tác trên sheet chậm và khó khăn. Có lẽ do hàm này chiếm dụng bộ nhớ. Dùng sleep trong trường hợp trang trí chơi thôi chứ làm việc thực sự thì không được. Và nếu làm việc thực sự thì cũng không nhấp nháy làm gì cho mỏi con mắt.
 
Upvote 0
Thầy ơi nếu làm kiểu này là không thể password Protecsheet ở ô hiệu ứng được đúng không ạ?
 
Lần chỉnh sửa cuối:
Upvote 0
Thầy ơi nếu làm kiểu này là không thể password Protecsheet ở ô hiệu ứng được đúng không ạ?
Đương nhiên được! Khi hộp Protect sheet hiện ra, bạn phải check vào mục "Format Cells" ---> Tức protect nhưng vẫn cho phép format (thế mới tô màu được chứ)

untitled.JPG
 
Upvote 0
Ô đúng rồi! Đơn giản vậy mà em không nghĩ ra cứ nghiến cứu tận đâu đâu ý! hì hì...
Trong em thầy là số 1. VÔ ĐỊCH THIÊN HẠ
a! Nhưng mà ví dụ tại ô F7 không fair là ô định dạng màu nữa mà thay vào đó là một cái hồ điện tử hoặclà một kiểu chữ chạy từ phải sang trái chẳng hạn thì làm thể nào vậy thầy?
Có đặt pass được không ạ!
 
Lần chỉnh sửa cuối:
Upvote 0
a! Nhưng mà ví dụ tại ô F7 không fair là ô định dạng màu nữa mà thay vào đó là một cái hồ điện tử hoặclà một kiểu chữ chạy từ phải sang trái chẳng hạn thì làm thể nào vậy thầy?
Có đặt pass được không ạ!
Thì trước khi protect ta bỏ chọn Locked cell F7 đi (Format Cells\Protection\Locked)
Code chạy và tự điền chữ hoặc đồng hồ vào F7, dù người dùng có cố tình xóa F7 cũng chẳng ảnh hưởng gì (code lại tự điền giá trị vào F7 thôi)
 
Upvote 0
Thì trước khi protect ta bỏ chọn Locked cell F7 đi (Format Cells\Protection\Locked)
Code chạy và tự điền chữ hoặc đồng hồ vào F7, dù người dùng có cố tình xóa F7 cũng chẳng ảnh hưởng gì (code lại tự điền giá trị vào F7 thôi)
Vâng em cũng nghĩ chỉ còn cách đó thôi! Cảm ơn thầy đã nhiệt tình chỉ bảo.
 
Upvote 0
Web KT

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

Back
Top Bottom