Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [Συναρτήσεις] Εμφάνιση σταθερής ώρας (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/4662-emfanisi-statheris-oras.html)

jimis 02-09-17 10:28

Εμφάνιση σταθερής ώρας
 
Καλησπέρα! σε ένα φύλο excel εχω δυο κελία το G18 και το G23. θέλω οταν θα γράφω κάτι στο κελί G18 να εμφανίζει στο G23 η ώρα που το έγραψα..(δηλ αν το εγραφα κατι στο G18 στις 11:25 ,να έγραφε στο G23 11:25) δοκίμασα με τον τύπο IF(G18="";"";IF(G23="";NOW();G23)) αλλά μόλις αλλάξω κάτι οπουδήποτε στο φύλλο ξανα αλλάζει και η ώρα στο G23 και βάζει την ώρα που έχουμε εκείνη την στιγμή. γνωρίζεται αν μπορώ να το καταφέρω κάπως αυτό;

ευχαριστώ εκ των προτέρων
Δημήτρης

Spirosgr 02-09-17 11:30

Καλημέρα
Μπορούμε να έχουμε, μια time stamp, με vba.

Ο κώδικας στο φύλλο (συμβάν Change)

Κώδικας:

Private Sub Worksheet_Change(ByVal Target As Range)
  If Intersect(Target, Sh1.Range("g18")) Is Nothing Then
        Exit Sub
    Else
        Sh1.Range("g23").NumberFormat = "hh:mm"
        Sh1.Range("g23").Value = Time
    End If
End Sub

Σε κάθε αλλαγή στο κελί g18, το g23, θα εμφανίζει την ώρα αλλαγής (εισαγωγής)

Σημειώσεις
1
To βιβλίο μας, σε μορφή .xlsm
2
To κωδικό όνομα του φύλλου Sh1
3
Στην γραμμή:
Sh1.Range("g23").NumberFormat = "hh:mm"
αλλάξτε το format, σε ό,τι θέλετε...

jimis 02-09-17 11:42

σε ευχαριστώ για την απάντηση...εχω ένα πρόβλημα..επειδή το φύλλο είχε άλλη ονομασία,έκανα μετονομασία σε Sh1 αλλα μου βγάζει σφάλμα http://prntscr.com/gg4usg..πρέπει να αλλάξω με κάποιον άλλο τρόπο την ονομασία για να λειτουργήσει;

Spirosgr 02-09-17 12:17

1 Συνημμένο(α)
Δες την εικόνα, για το τι θα αλλάξεις και από που...

jimis 02-09-17 13:11

σε ευχαριστώ πολύ! δούλεψε μια χαρά!

jimis 02-09-17 13:30

προσπάθησα να το κάνω και την διπλα στήλη (την H) στα ακριβώς δίπλα κελιά άλλα δεν το μπόρεσα

ποιο συγκεκριμένα έκανα τον κώδικα που έδωσες ως εξής
Κώδικας:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Sh1.Range("g18")) Is Nothing Then
        Exit Sub
    Else
        Sh1.Range("g23").NumberFormat = "hh:mm"
        Sh1.Range("g23").Value = Time

    End If
  If Intersect(Target, Sh1.Range("h18")) Is Nothing Then
        Exit Sub
    Else
        Sh1.Range("h23").NumberFormat = "hh:mm"
        Sh1.Range("h23").Value = Time
    End If

End Sub

ενώ συνεχίζει να λειτουργεί για την στήλη G στην Η δεν το αλλάζει..σου είναι εύκολο να μου πεις τι λάθος έκανα?

Spirosgr 02-09-17 13:38

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

jimis 02-09-17 13:41

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

Spirosgr 02-09-17 18:21

Κώδικας:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Sh1.Range("g18:h18")) Is Nothing Then
        Exit Sub
    ElseIf Not Intersect(Target, Sh1.Range("g18")) Is Nothing Then
        Sh1.Range("g23").NumberFormat = "hh:mm"
        Sh1.Range("g23").Value = Time
    ElseIf Not Intersect(Target, Sh1.Range("h18")) Is Nothing Then
        Sh1.Range("h23").NumberFormat = "hh:mm"
        Sh1.Range("h23").Value = Time
    End If
End Sub


jimis 02-09-17 18:57

σε ευχαριστώ πραγματικά για όλη τη βοήθεια!

Spirosgr 02-09-17 19:03

Να 'σαι καλά.


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

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


Search Engine Optimization by vBSEO 3.3.2