Εμφάνιση ενός μόνο μηνύματος
  #2  
Παλιά 21-08-18, 16:37
Το 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
Προεπιλογή

Η μορφοποίηση υπό όρους, μπορεί να αλλάξει την εμφάνιση αλλά όχι και τις ιδιότητες,
ενός κελιού ή μιας περιοχής.

Οι διάφορες γραμματοσειρές,
ακόμα κι αν έχουν ίδιο μέγεθος, πχ Calibri 11 & Consolas 11,
έχουν διαφορετικές διαστάσεις γραμμάτων ή κενών ανάμεσα στα γράμματα,
με αποτέλεσμα, μια τέτοια αλλαγή (μέσω της μορφοποίησης),
να επηρεάσει τις διαστάσεις μιας στήλης ή μια γραμμής και συνεπώς
να αλλάξει τις ιδιότητες...

Οπότε αυτό δεν είναι δυνατόν να γίνει, και καλώς είναι ανενεργά...

Ο μόνος τρόπος για να πετύχουμε κάτι τέτοιο, είναι ο κώδικας.
Κώδικας:
    Dim c As Range, rng As Range
    Set rng = Sheet1.Range("a1:a10")

    For Each c In rng
        If Len(c.Text) > 5 Or _
           Val(c.Value) > 10 Then
            c.Font.Name = "Consolas"
            c.Font.Size = 16
            c.Font.Bold = True
            c.Font.Color = RGB(202, 0, 0)
        Else
            c.Font.Name = "Calibri"
            c.Font.Size = 11
            c.Font.Bold = False
            c.Font.Color = RGB(0, 0, 0)
        End If
    Next c
Έστω, ότι χρησιμοποιούμε γραμματοσειρά Calibri, 11, μαύρο, στο φύλλο Sheet1.

Ο πιο πάνω κώδικας, αλλάζει τα κελιά της περιοχής a1:a10 του φύλλου Sheet1,
αν το len του κελιού είναι > 5 ή η τιμή του κελιού, είναι > 10.

*Μπορείτε να αλλάξετε τους όρους μορφοποίησης,
ή και την συνθήκη Or σε And κλπ


Ο πιο πάνω κώδικας, μπορεί να χρησιμοποιηθεί ως οδηγός
και ανάλογα με το τι θέλουμε να κάνουμε,
μπορούμε να τον τροποποιήσουμε και ενσωματώσουμε σε κάποιο συμβάν φύλλου.
Απάντηση με παράθεση