Η μορφοποίηση υπό όρους, μπορεί να αλλάξει την εμφάνιση αλλά όχι και τις ιδιότητες,
ενός κελιού ή μιας περιοχής.
Οι διάφορες γραμματοσειρές,
ακόμα κι αν έχουν
ίδιο μέγεθος, πχ 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 κλπ
Ο πιο πάνω κώδικας, μπορεί να χρησιμοποιηθεί ως οδηγός
και ανάλογα με το τι θέλουμε να κάνουμε,
μπορούμε να τον τροποποιήσουμε και ενσωματώσουμε σε κάποιο συμβάν φύλλου.