Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Excel > Excel - Ερωτήσεις / Απαντήσεις > [Γενικά] μετατροπή σε ωρα

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

 

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
Prev Προηγούμενο μήνυμα   Επόμενο Μήνυμα Next
  #4  
Παλιά 22-08-10, 15:57
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.037
Προεπιλογή

Καλησπέρα σε όλους!

Νίκο, ο Γιώργος έχει δίκιο. Δεν γίνεται με κάποια μορφοποίηση κελιού να μετατρέψουμε το
1245 σε 12:45 και να μπορεί ταυτόχρονα να υπολογιστεί για να βγεί κάποιο άθροισμα κτλ.

Με τη βοήθεια της VBA και με μια μικρή προετοιμασία στο φύλλο θα μπορέσουμε να εμφανίζουμε την ώρα σε μορφή "ωω:λλ" σε μορφή κειμένου η οποία μπορεί να υπολογιστεί από την Excel σαν αριθμός ή ώρα!

1) Μορφοποίησε τις στήλες που θα πληκτρολογείται η ώρα ως κείμενο (Επιλογή στήλης και συνδυασμος πλήκτρων CTRL+1).

xl_format_dlg.jpg

2) στην πρώτη γραμμή των στηλών που θα πληκτρολογείται η ώρα (πχ. στο κελί C1, D1, F1 κοκ.) να πληκτρολογήσεις την τιμή -1.
Έτσι, με βάση αυτή την τιμή, ο κώδικας παρακάτω θα μπορεί να ελέγξει αν προκειται για στήλη που πρέπει να γίνουν οι απαραίτητες αλλαγές.

3) Kανε δεξί κλικ στην καρτέλα του φύλλου και επίλεξε: "Προβολή κώδικα".
Στο παράθυρο που θα εμφανιστεί, επικόλλησε τον παρακάτω κώδικα:

Κώδικας:
Option Explicit
   
  Private Sub Worksheet_Change(ByVal Target As Range)        ' Target = το κελί που προκαλεί το συμβάν αυτό
      On Error Resume Next
      If Cells(1, Target.Column) <> -1 Then Exit Sub
      If Target.Row > 50 Or Target.Row < 2 Then Exit Sub ' αν η γραμμή του "Target" είναι
            'μεγαλύτερη του 50 ή μικρότερη του  2  τοτε δεν θα συνεχίσει η εκτέλεση του κώδικα.
            'Προσάρμοσε τα νούμερα αυτά στα μέτρα σου.

      If Target.Value = "" Then Exit Sub
      Application.EnableEvents = False
      Select Case Len(Target.Text)
          Case Is > 4
              Target.ClearContents
              Target.Select
              GoTo TheEnd
          Case Is = 4
              If Left(Target, 2) > 24 Or Right(Target, 2) > 59 Then
                  Target.ClearContents
                  Target.Select
                  GoTo TheEnd
              End If
              Target.Value = Left(Target, 2) & ":" & Right(Target, 2)
   
          Case Is = 3
              If Right(Target, 2) > 59 Then
                  Target.ClearContents
                  Target.Select
                  GoTo TheEnd
              End If
              Target.Value = "0" & Left(Target, 1) & ":" & Right(Target, 2)
          Case Is = 2
              If Target.Value > 23 Then
                  Target.ClearContents
                  Target.Select
                  GoTo TheEnd
              End If
              Target.Value = Format(Target, "00") & ":" & "00"
   
          Case Is = 1
              Target.Value = Format(Target.Text, "00") & ":" & "00"
      End Select
      If Target.Value = 0 Then Target.Value = "00:00"
   
  TheEnd:
      Application.EnableEvents = True
  End Sub
Δοκίμασε τον τρόπο λειτουργίας με διαφορες τιμές.

Αν κάπου υπαρχει κάποια απορία... εδώ είμαστε.

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

Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
 


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[ Ασφάλεια] Μετατροπη βασης σε mde artchrist73 Access - Ερωτήσεις / Απαντήσεις 3 15-11-15 15:01
Μετατροπή htm σε xlsx dimgks Access - Ερωτήσεις / Απαντήσεις 0 04-07-14 09:38
Μετατροπή από MDE σε ACCDE γιώργοςΚ Access - Ερωτήσεις / Απαντήσεις 3 25-02-14 07:25
[ Εκθέσεις ] Μετατροπή έκθεσης σε PDF gmax Access - Ερωτήσεις / Απαντήσεις 14 16-08-11 09:34
[Γενικά] Μετατροπή ώρας manolis Excel - Ερωτήσεις / Απαντήσεις 2 25-03-11 08:13


Η ώρα είναι 15:56.