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

Καλημέρα
Θωμά καλώς όρισες στην παρέα
Κατ αρχήν στο προφίλ σου έχεις δηλώσει Excel 2003
και ανέβασες .xlsx που σημαίνει όπως γράφεις κι εσύ 2007+
Άλλαξε το για να είναι σωστό και να γνωρίζει κανείς σε τι "εργαλείο" θα σου δίνει απάντηση
Τώρα στο θέμα μας
Οποιονδήποτε τύπο κι αν βάλεις εφ' όσον τα στοιχεία του είναι μεταβλητά ο τύπος θα μεταβάλλεται και δεν θα έχεις το αποτέλεσμα που θέλεις άρα πάμε σε VBA που μπορεί να "θυμάται" το αποτέλεσμα που ζητάς
Ονόμασε
rngDates = περιοχή ημερομηνιών και κάνε την δυναμική αν το μήκος της αλλάζει
rngToday = το κελί της TODAY()
rngAmount = το κελί του ποσού που μεταβάλλεται
rngArchive = περιοχή που αποθηκεύονται τα ποσά και κάνε την δυναμική αν το μήκος της αλλάζει (Η ονομασία αυτή προαιρετικά)
Βάλε τον κώδικα:

Κώδικας:
Sub ArchiveMyAmount()
    Dim c As Range
    For Each c In Range("rngDates")
        If c.Value = Range("rngToday").Value Then
            Cells(c.Row, 3).Value = Range("rngAmount").Value
        End If
    Next
End Sub
σε Module και κάνε σύνδεση σε ένα κουμπί
Με κλικ στο κουμπί ο κώδικας ελέγχει αν η TODAY() υπάρχει στην περιοχή rngDates
και πάει στο διπλανό κελί και βάζει την τιμή του κελιού rngAmount

Μπορείς ακόμη να βάλεις τον κώδικα στο SelectionChange του φύλλου και να τρέχει αυτόματα σε κάθε αλλαγή
Καλή συνέχεια!
ΥΓ να διευκρινίσω το εξής
Στην σειρά Cells(c.Row, 3).Val.......το 3 σημαίνει 3η στήλη και θα πρέπει να αλλαχτεί αν αλλάξει στο κανονικό φύλλο ο προορισμός
δηλ η στήλη που θα βρίσκεται η περιοχή rngArchive

Τελευταία επεξεργασία από το χρήστη Spirosgr : 31-07-13 στις 11:50.
Απάντηση με παράθεση