Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [VBA] Αλλαγή χρώματος κελιού στην περίπτωση που (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/1043-allagi-xromatos-kelioi-stin-periptosi-poy.html)

devcon 29-03-11 08:32

Αλλαγή χρώματος κελιού στην περίπτωση που
 
Παρακαλώ την βοήθεια σας.

Πώς μπορώ να χρησιμοποιήσω την ακόλουθη εντολή ώστε στην περίπτωση που έχω «Supplier» διαφορετικό του μηδενός τα κελιά που δημιουργούνται με την ακόλουθη φόρμουλα να χρωματίζονται ώστε να είναι ευδιάκριτα ότι δηλ υπάρχει έκπτωση.

Ευχαριστώ εκ των προτέρων.

Κώδικας:


With Range("K" & FirstRow & ":K" & FinalRow)
        .FormulaR1C1 = "=IF(RC[-1]<>"""",ROUND(RC[-1]*(1-Supplier%),2),"""")"
        .Value = .Value
    End With


Tasos 29-03-11 22:40

Καλησπέρα Θανάση!

Δεν θα χρειαστεί κώδικας VBA.

Υπάρχει ενσωματωμένη λειτουργία στην Excel (Μορφοποίηση υπό όρους) καλύπτει απόλυτα το ζητούμενο σου.

Αφού επιλέξεις την περιοχή που σ ενδιαφέρει, κάνε κλικ στην καρτέλα Home στο κουμπί Contitional Formating > New Rule.

Στο παράθυρο διαλόγου που θα εμφανιστεί, θα μπορέσειςορίσεις κάτω από ποιες συνθήκες
θέλεις να χρωματίζονται τα κελιά που έχεις επιλέξει.

Στην Μπάρα του παραθύρου αυτού υπάρχει και το κουμπί [ ? ] σε περίπτωση που χρειαστείς λεπτομερέστερη βοήθεια.

Καλή συνέχεια!

Τάσος

devcon 30-03-11 05:22

Τάσο καλημέρα,

Την «Μορφοποίηση υπό όρους» την γνωρίζω καλά διότι την χρησιμοποιώ κατά τα κόρων. Απλώς θα ήθελα να την αυτοματοποιήσω ώστε και οι υπόλοιποι στο γραφείο με μία κίνηση (macro) να λύνουν το πρόβλημά τους.

devcon 30-03-11 07:36

Τάσο καλημέρα,

Μου έδωσες το έναυσμα και μέρος το προβλήματός μου λύθηκε.

Ερώτηση: Πως θα κάνω για να παραμείνει το χρώμα και όταν αλλάξω την φόρμουλα σε «0».

Θα με ρωτήσεις εάν η προϋπόθεση δεν υπάρχει για πιο λόγο να παραμείνουν τα κελία χρωματιστά;

Η απάντηση είναι ότι εφαρμογή συνέχεια προσθέτει επιπλέον γραμμές και οι εκπτώσεις αλλάζουν.
Θα ήθελα κάτι που να είναι αντίστοιχο του «.Value = .Value»

Σ' ευχαριστώ εκ των προτέρων για την υποστήριξή σου.

Κώδικας:


'Color Format Conditions
  With Range("K" & FirstRow & ":K" & FinalRow).Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$O$2>0"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
        End With


Tasos 30-03-11 13:41

Θανάση,
Δεν ξέρω τι ακριβώς θέλεις να επιτύχεις.

Σου δίνω ένα γενικότερο παράδειγμα μιας και δεν έχω κατανοήσει την όλη λογική της
εφαρμογής σου:


Κώδικας:

Dim rCell As Range

Sub test()
'......κώδικας
    With Range("K" & FirstRow & ":K" & FinalRow)
        .FormulaR1C1 = "=IF(RC[-1]<>"""",ROUND(RC[-1]*(1-Supplier%),2),"""")"
        .Value = .Value

      For Each rCell In .Cells
            If IsNumeric(rCell) And rCell > 0 Then rCell.Interior.ColorIndex = 4
           
            'Cell Interior Color (Long)
            'If IsNumeric(rCell) And rCell > 0 Then rCell.Interior.Color = 65280
           
            'Cell Color as RGB ( Vba.RGB(Red, Green, Blue) )
            'If IsNumeric(rCell) And rCell > 0 Then rCell.Interior.Color = RGB(0, 255, 0)

        Next


    End With

    'κώδικας....
End Sub

' Για να βρείς το νούμερο του χρώματος φόντου, Πάτησε  CTRL+G
' για να εμφανίσεις το παράθυρο "Immediate" και τρέξε τον κώδικα παρακάτω:


Sub GetCellInteriorColor()
    Debug.Print ActiveCell.Interior.Color
    Debug.Print ActiveCell.Interior.ColorIndex
End Sub

Καλη συνέχεια!
Τάσος

devcon 30-03-11 15:20

Αγαπητέ Τάσο,

Δεν ξέρω με πιο τρόπο να σε ευχαριστήσω, μου έλυσες πολλά προβλήματα.
Με κάποιες μικρό αλλαγές επέτυχα τον σκοπό μου.
Σου εύχομαι ότι επιθυμείς και ένα καλό υπόλοιπο ημέρας.

Θανάσης (devcon)


Η ώρα είναι 18:54.

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


Search Engine Optimization by vBSEO 3.3.2