Θέμα: Γενικά Cell Flashing

Εμφάνιση ενός μόνο μηνύματος
  #2  
Παλιά 25-11-14, 10:15
Το avatar του χρήστη Spirosgr
Spirosgr Ο χρήστης Spirosgr δεν είναι συνδεδεμένος
Συντονιστής
Όνομα: Σπύρος Τσιλιγιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 22-11-2011
Περιοχή: Αθήνα
Μηνύματα: 2.321
Προεπιλογή

Καλημέρα

Οι πιο κάτω κώδικες δείχνουν τον τρόπο της βασικής λειτουργίας.

Προϋπόθεση:
Πληκτρολογούμε οτιδήποτε σε κάποιο κελί της A1:D10
ΑΜΕΣΩΣ μετά πληκτρολογούμε ή στο F1 ή οπουδήποτε εκτός από την A1:D10

Από την πληκτρολόγηση στην περιοχή A1:D10 μέχρι την πληκτρολόγηση στο κελί F1
πιθανόν να συμβαίνουν κι άλλα πράγματα στο φύλλο (πράγματα που εκτελεί πχ ο χρήστης
μέχρι να φτάσει να πληκτρολογήσει το F1)
και τα οποία θα πρέπει να ληφθούν υπ' όψιν.

Αυτό στο φύλλο στο συμβάν Change
Κώδικας:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("DataRange")) Is Nothing Then
        StartBlinking
    Else
        If Not Intersect(Target, Range("BlinkCell")) Is Nothing Then
            StopBlinking
        Else
            Exit Sub
        End If
    End If
End Sub
Αυτά σε module

Κώδικας:
Option Explicit
Public NextBlink As Double
Public Const BlinkCell As String = "Sheet1!f1"
Sub StartBlinking()
    If Range(BlinkCell).Interior.Color = vbRed Then
        Range(BlinkCell).Interior.Color = vbGreen
    Else
        Range(BlinkCell).Interior.Color = vbRed
    End If
    NextBlink = Now + TimeSerial(0, 0, 1)
    Application.OnTime NextBlink, "StartBlinking", , True
End Sub


Sub StopBlinking()
    Range(BlinkCell).Interior.Color = xlNone
    Application.OnTime NextBlink, "StartBlinking", , False
End Sub
Όπου:
Public Const BlinkCell As String = "Sheet1!f1" το κελί που θέλουμε να αναβοσβήνει
Range(BlinkCell) = BlinkCell το όνομα του κελιού
Range("DataRange") = DataRange το όνομα της περιοχής A1:D10
Απάντηση με παράθεση