Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Excel > Excel - Ερωτήσεις / Απαντήσεις > [VBA] Αλλαγή της τιμής ενός κελιού βάσει του χρώματος

Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ.

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 17-09-15, 17:35
Όνομα: Σάκης
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 04-02-2012
Μηνύματα: 49
Προεπιλογή Αλλαγή της τιμής ενός κελιού βάσει του χρώματος

Γεια σε όλους!!!
Θα ήθελα τη βοήθειά σας σε κάτι που νομίζω ότι είναι απλό.
Από μία ιστοσελίδα αντιγράφω κάποια δεδομένα - κελιά (σε μορφή στήλης) Τα κελιά αυτά δεν έχουν τιμές, αλλά έχουν χρώμα γεμίσματος κόκκινο, ή κίτρινο ή πράσινο.
Αυτό που θα ήθελα είναι το εξής: Όταν κάνω επικόλληση των δεδομένων σε φύλλο του Excel, ξεκινώντας από το Α1, να μπαίνει στο κελί η τιμή 1 αν το χρώμα γεμίσματος είναι κόκκινο, 2 αν είναι κίτρινο και 3 αν είναι πράσινο.
Φαντάζομαι ότι το πρόβλημα λύνεται με έναν απλό κώδικα σε vba, αλλά δυστυχώς οι γνώσεις μου είναι ελάχιστες σε vba.
Απάντηση με παράθεση
  #2  
Παλιά 17-09-15, 18:07
Το avatar του χρήστη 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
Οι γραμμές ή οι στήλες, είναι σταθερές ή μπορεί να αυξομειώνονται;
Απάντηση με παράθεση
  #3  
Παλιά 17-09-15, 20:11
Όνομα: Σάκης
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 04-02-2012
Μηνύματα: 49
Προεπιλογή

Για την ακρίβεια είναι το E1.
Ο αριθμός των γραμμών δεν είναι σταθερός. Το μέγιστο είναι η γραμμή 1000.
Άρα τα δεδομένα μου μπορεί να εκτείνονται στην περιοχή E1:E1000.
Απάντηση με παράθεση
  #4  
Παλιά 18-09-15, 07:38
Το avatar του χρήστη 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
Προεπιλογή

Καλημέρα
Έστω, η στήλη Ε, που έχει κελιά χρωματιστά.
Ο κώδικας:
Κώδικας:
Sub Macro1()
    Columns(5).Delete Shift:=xlToLeft
End Sub
διαγράφει όλη την στήλη ή
ο κώδικας:
Κώδικας:
Sub Macro2()
    With Columns(5).Interior
        .Pattern = xlNone
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    Columns(5).ClearContents
End Sub
καθαρίζει την στήλη.

Επέλεξε ένα εκ των δύο, που εξυπηρετεί καλύτερα.

Κάνεις paste στην Ε, τα κελιά, που έχεις αντιγράψει, από το δίκτυο.

Ο κώδικας (σύνδεσε ένα κουμπί):
Κώδικας:
Sub Macro3()
    Dim c As Range, rng As Range
    Set rng = Range("e1:e1000")
    Application.ScreenUpdating = False
    rng.ClearContents
    For Each c In rng
        Select Case c.Interior.Color
        Case vbRed
            c.Value = 1
        Case vbYellow
            c.Value = 2
        Case vbGreen
            c.Value = 3
        Case Else
            c.Value = vbNullString
        End Select
    Next
End Sub
υπολογίζει τις αξίες των κελιών, με βάση το χρώμα.

Σημειώσεις:
1
Δεν εξετάζονται, περεταίρω λεπτομέρειες, που αφορούν την δομή του φύλλου,
ή αυτοματισμοί, σε συμβάντα φύλλου.
2
Καθαρά χρώματα Office 2003
Απάντηση με παράθεση
  #5  
Παλιά 18-09-15, 11:33
Όνομα: Σάκης
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 04-02-2012
Μηνύματα: 49
Προεπιλογή

Σπύρο, σ' ευχαριστώ πολύ για τη βοήθειά σου.
Το πράσινο και το χρυσό (άλλαξα το yellow κι έβαλα gold) δε δουλεύουν. Φαντάζομαι ότι πρέπει να βρούμε τις ακριβείς τιμές RGB των δύο χρωμάτων και να βάλουμε αυτές τις τιμές αντί του vbGreen, αλλά και πάλι δεν ξέρω πώς γίνεται.
Σου επισυνάπτω το αρχείο για να δεις τα ακριβή χρώματα.
Συνημμένα Αρχεία
Τύπος Αρχείου: xls sample.xls (22,0 KB, 13 εμφανίσεις)
Απάντηση με παράθεση
  #6  
Παλιά 18-09-15, 12:35
Το avatar του χρήστη 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
Προεπιλογή

Όπως εξηγώ παραπάνω στις σημειώσεις:
«Καθαρά χρώματα Office 2003»
Απάντηση με παράθεση
  #7  
Παλιά 18-09-15, 13:37
Όνομα: Σάκης
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 04-02-2012
Μηνύματα: 49
Προεπιλογή

Γεια σου Σπύρο!
Με την παρακάτω εντολή
MsgBox Selection.Interior.ColorIndex
κατάφερα να βρω ότι το κόκκινό μου αντιστοιχεί στο ColorIndex 3, το χρυσό στο 44 και το πράσινο στο 10.
Οπότε με τον παρακάτω κώδικα η δουλειά μου γίνεται μια χαρά.
Dim c As Range, rng As Range
Set rng = Range("e1:e1000")
Application.ScreenUpdating = False
rng.ClearContents
For Each c In rng

If c.Interior.ColorIndex = 10 Then
c.Value = 3
ElseIf c.Interior.ColorIndex = 44 Then
c.Value = 2
ElseIf c.Interior.ColorIndex = 3 Then
c.Value = 1
End If

Next

Η βοήθειά σου ήταν πολύτιμη. Σ' ευχαριστώ πολύ και πάλι!!!
Απάντηση με παράθεση
  #8  
Παλιά 18-09-15, 16:26
Το avatar του χρήστη 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
Προεπιλογή

ωραία!
Γιατί άλλαξες με if την select case;
Απάντηση με παράθεση
  #9  
Παλιά 18-09-15, 18:19
Όνομα: Σάκης
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 04-02-2012
Μηνύματα: 49
Προεπιλογή

Δεν υπήρχε λόγος να την αλλάξω.
Απλώς εκείνη την ώρα έκανα κάποιες δοκιμές με If και συνέχισα με If.
Απάντηση με παράθεση
Απάντηση στο θέμα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Αλλαγή χρώματος σε φόρμα Αντώνης Access - Ερωτήσεις / Απαντήσεις 2 03-04-16 08:24
[Excel07] Συμπλήρωση κελιού με τιμή σε συγκεκριμένο κελί βάσει ημερομηνίας stam75 Excel - Ερωτήσεις / Απαντήσεις 13 08-10-15 16:32
[VBA] Αλλαγή χρώματος κελιού στην περίπτωση που devcon Excel - Ερωτήσεις / Απαντήσεις 5 30-03-11 15:20
[VBA] Αλλαγή χρώματος κελιού ytsiak Excel - Ερωτήσεις / Απαντήσεις 5 18-09-10 00:44
Επιλογή τιμής βάσει κριτηρίων David Access - Ερωτήσεις / Απαντήσεις 4 31-05-10 11:10


Η ώρα είναι 06:30.