Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [Γενικά] Cell Flashing (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/3435-cell-flashing.html)

gfevran 24-11-14 21:34

Cell Flashing
 
Γεια σας παιδιά,
Αν π.χ. σε μια περιοχή Α1:D10, πληκτρολογήσω κάποιο αριθμό, να αναβοσβήνει το κελί F1 με πράσινο/κόκκινο,
μέχρι να πληκτρολογήσω κάποιο αριθμό σε αυτό.
Ευχαριστώ για όποια βοήθεια.

Spirosgr 25-11-14 10:15

Καλημέρα

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

Προϋπόθεση:
Πληκτρολογούμε οτιδήποτε σε κάποιο κελί της 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

gfevran 25-11-14 13:19

Γεια σου Σπύρο,
σε ευχαριστώ πολύ για την άμεση απάντηση.


Η ώρα είναι 21:44.

Ms-Office.gr - ©2000 - 2024, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2