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

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 07-02-19, 12:59
Όνομα: Μιχάλης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 11-05-2013
Μηνύματα: 34
Προεπιλογή Αντιστροφή μορφής ημερομηνίας από φόρμα στο φύλλο

Καλημέρα. Γράφω για πρώτη φορά εφόσον τώρα άρχισα να ασχολούμαι με VBA. Έχω φτιάξει μία φόρμα καταχωρήσεων και έχω το εξής πρόβλημα με τις ημερομηνίες. Μου τις αντιστρέφει από τη φόρμα που φαίνεται σωστή, στο φύλλο εργασίας που και εκεί έχω πιστεύω σωστά τη μορφοποίηση του κελιού με την ημερομηνία ως ηη/μμ/εεεε και στη φόρμα ως dd/mm/yyyy. Όταν πάω να εισάγω ημερομηνία πχ. τη σημερινή 7/2/2019 στο φύλλο αντιστρέφεται ως 2/7/2019 και αντίστροφα αν βάλω στη φόρμα 2/7/2019 στο φύλλο 7/2/2019. Δεν έχω πολλές γνώσεις, είμαι σε πολύ χαμηλό επίπεδο και ότι κάνω το κάνω μέσα από tutorials και βίντεο σχετικά με το θέμα. Δεν ξέρω αν είναι θέμα ότι χρησιμοποιώ ελληνική έκδοση Office 2019, αλλά το ίδιο συμβαίνει και με τα 2013 και 2017 στις Ελληνικές εκδόσεις που δοκίμασα. Επισυνάπτω το αρχείο. Ευχαριστώ εκ των προτέρων.
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsm Φθορές v2.4.xlsm (77,2 KB, 17 εμφανίσεις)
Απάντηση με παράθεση
  #2  
Παλιά 07-02-19, 19:23
Το avatar του χρήστη ChrisGT7
Διαχειριστής
Όνομα: Χρήστος Ζώρζος
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 20-09-2013
Περιοχή: Κοντά σε ηφαίστειο...
Μηνύματα: 1.046
Προεπιλογή

Καλησπέρα Μιχάλη,

Το έχω συναντήσει κι εγώ αυτό το πρόβλημα στην καταχώρηση των ημερομηνιών. Φαίνεται πως το σύστημα ημερομηνίας (Τοπικές Ρυθμίσεις) του Excel "μπλέκεται" με το αμερικάνικο σύστημα της VBA.

Χρησιμοποίησα συνδυασμό των CLng() και DATE() για να διορθώσω το πρόβλημα.

Δοκίμασε κι εσύ να δεις αν όλα βαίνουν καλώς.
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsm Φθορές v2.4.1.xlsm (68,5 KB, 45 εμφανίσεις)
__________________
Your Curiosity Will Be The Death Of You!
Απάντηση με παράθεση
  #3  
Παλιά 07-02-19, 19:44
Όνομα: Μιχάλης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 11-05-2013
Μηνύματα: 34
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από ChrisGT7 Εμφάνιση μηνυμάτων
Καλησπέρα Μιχάλη,

Το έχω συναντήσει κι εγώ αυτό το πρόβλημα στην καταχώρηση των ημερομηνιών. Φαίνεται πως το σύστημα ημερομηνίας (Τοπικές Ρυθμίσεις) του Excel "μπλέκεται" με το αμερικάνικο σύστημα της VBA.

Χρησιμοποίησα συνδυασμό των CLng() και DATE() για να διορθώσω το πρόβλημα.

Δοκίμασε κι εσύ να δεις αν όλα βαίνουν καλώς.
Δουλεύει τέλεια!!!...Σε ευχαριστώ πολύ..με έσωσες γιατί ήθελα τη χρήση φίλτρου στις ημερομηνίες και αυτό το θέμα που είχα με έχει παιδέψει πάρα πολύ. . Μάλιστα το εξέλιξες και παραπάνω...Respect!!
Απάντηση με παράθεση
  #4  
Παλιά 26-02-19, 14:12
Όνομα: Μιχάλης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 11-05-2013
Μηνύματα: 34
Προεπιλογή

Να 'μαι πάλι!! . Έχω ένα ερώτημα (Τι άλλο θα είχα) σχετικά με τη φόρμα. Την εξέλιξα λιγάκι σε σχέση με το προηγούμενο και εκτός των άλλων πρόσθεσα και ένα List Box στη φόρμα. Υπάρχει η δυνατότητα αν στο φύλλο εργασίας πχ. στην ημερομηνία κάνω χρήση του φίλτρου στο φύλλο φθορές αυτό να εφαρμόζεται και στο List Box;
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsm Φθορές v3.1.xlsm (70,5 KB, 22 εμφανίσεις)
Απάντηση με παράθεση
  #5  
Παλιά 26-02-19, 20:05
Το avatar του χρήστη ChrisGT7
Διαχειριστής
Όνομα: Χρήστος Ζώρζος
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 20-09-2013
Περιοχή: Κοντά σε ηφαίστειο...
Μηνύματα: 1.046
Προεπιλογή

Μιχάλη, μπορείς το ενεργό φίλτρο στο φύλλο Φθορές να το μεταφέρεις και στο Listbox.

Όμως αν π.χ. έχεις φίλτρο στην ημερομηνία με 26/02/2019 και καταχωρήσεις μια εγγραφή με άλλη ημερομηνία, δε θα τη δεις αμέσως στο listbox. Για να τη δεις θα πρέπει να αλλάξεις το φίλτρο με το ανάλογο κριτήριο.

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

Θες κάτι τέτοιο;
__________________
Your Curiosity Will Be The Death Of You!
Απάντηση με παράθεση
  #6  
Παλιά 26-02-19, 21:08
Όνομα: Μιχάλης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 11-05-2013
Μηνύματα: 34
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από ChrisGT7 Εμφάνιση μηνυμάτων
Μιχάλη, μπορείς το ενεργό φίλτρο στο φύλλο Φθορές να το μεταφέρεις και στο Listbox.

Όμως αν π.χ. έχεις φίλτρο στην ημερομηνία με 26/02/2019 και καταχωρήσεις μια εγγραφή με άλλη ημερομηνία, δε θα τη δεις αμέσως στο listbox. Για να τη δεις θα πρέπει να αλλάξεις το φίλτρο με το ανάλογο κριτήριο.

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

Θες κάτι τέτοιο;
Χρήστο ωραίο ακούγεται έτσι φτάνει στη φόρμα στο πεδίο αναζήτησης με βάση των αύξων αριθμό να μπορώ να καλέσω ένα ήδη φιλτραρισμένο για τυχών διόρθωσή της εγγραφής .Το ψάχνω λίγο παραπάνω γιατί θα το χειρίζονται και άλλα τμήματα με χρήστες που ξέρουν μόνο τι θα πει πληκτρολόγιο και δεν θα ήθελα σε φόρτο εργασίας να ρωτάνε συνέχεια πως κάνω αυτό πως κάνω το άλλο γι αυτό προσπαθώ να τους τα έχω όλα στο πιάτο που λένε. Είναι όπως κάνω εγώ αυτί τη στιγμή που σας ζητάω συνεχεία έτοιμες λύσεις σε ένα αντικείμενο που κατέχω τα εντελώς βασικά μόνο, άλλα από την άλλη μαθαίνω και με έχουν ενθουσιάσει οι δυνατότητες του excel. Με τα λεγόμενα μου κρίνεις αν διευκολύνει και πράξε ανάλογα να μην καταναλώνω άδικα το χρόνο σας.

Τελευταία επεξεργασία από το χρήστη istrios : 26-02-19 στις 21:23.
Απάντηση με παράθεση
  #7  
Παλιά 27-02-19, 11:32
Όνομα: Μιχάλης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 11-05-2013
Μηνύματα: 34
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από istrios Εμφάνιση μηνυμάτων
Χρήστο ωραίο ακούγεται έτσι φτάνει στη φόρμα στο πεδίο αναζήτησης με βάση των αύξων αριθμό να μπορώ να καλέσω ένα ήδη φιλτραρισμένο για τυχών διόρθωσή της εγγραφής .Το ψάχνω λίγο παραπάνω γιατί θα το χειρίζονται και άλλα τμήματα με χρήστες που ξέρουν μόνο τι θα πει πληκτρολόγιο και δεν θα ήθελα σε φόρτο εργασίας να ρωτάνε συνέχεια πως κάνω αυτό πως κάνω το άλλο γι αυτό προσπαθώ να τους τα έχω όλα στο πιάτο που λένε. Είναι όπως κάνω εγώ αυτί τη στιγμή που σας ζητάω συνεχεία έτοιμες λύσεις σε ένα αντικείμενο που κατέχω τα εντελώς βασικά μόνο, άλλα από την άλλη μαθαίνω και με έχουν ενθουσιάσει οι δυνατότητες του excel. Με τα λεγόμενα μου κρίνεις αν διευκολύνει και πράξε ανάλογα να μην καταναλώνω άδικα το χρόνο σας.
Σκέφτηκα και κάτι άλλο Χρήστο με ένα Tutorial που είδα και θέλω να μου πεις μόνο αν γίνεται άσχετα που αν πεις ναι δεν θα ξέρω Να καταργήσω τα φίλτρα και να δημιουργήσω φύλλα εργασίας με τους μήνες Απρίλιος, Μάιος, Ιούνιος, Ιούλιος, Αύγουστος, Σεπτέμβριος, Οκτώβριος, Νοέμβριος και όταν ανοίγω τη φόρμα με μία DropDown λίστα στην κορυφή να επιλέξω σε ποιο μήνα να στείλω τα δεδομένα με την ίδια φόρμα. Οι φθορές σε αριθμό δεν πρόκειται να ξεπεράσουν σε αριθμό τις στήλες στο φύλλο οπότε δεν θα έχω ανάγκη χρήσης του φίλτρου. Είδα ένα σχετικό βίντεο αλλά είναι πολύπλοκο.

Απάντηση με παράθεση
  #8  
Παλιά 27-02-19, 16:03
Το avatar του χρήστη ChrisGT7
Διαχειριστής
Όνομα: Χρήστος Ζώρζος
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 20-09-2013
Περιοχή: Κοντά σε ηφαίστειο...
Μηνύματα: 1.046
Προεπιλογή

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

Θα διαφωνήσω όμως μ' αυτό το σκεπτικό, γιατί η καταχώρηση θα γίνει λίγο περίπλοκη για τον απλό χρήστη. Δηλαδή:
- Αν κατά την καταχώρηση γραφτεί μια ημερομηνία λάθος, θα σταλεί σε λάθος φύλλο, οπότε μετά θα πρέπει να αναζητάς σε ποιο φύλλο πήγε.

- Διόρθωσέ με αν κατάλαβα λάθος με αυτό που γράφεις "Οι φθορές σε αριθμό δεν πρόκειται να ξεπεράσουν σε αριθμό τις στήλες στο φύλλο". Οι στήλες στο φύλλο Φθορές είναι οκτώ, οπότε κάθε μήνα θα έχεις από οκτώ εγγραφές περίπου; Αν είναι έτσι, γιατί να έχεις τόσα φύλλα εργασίας για τόσες λίγες εγγραφές;

- Για ποιο λόγο να καταργήσεις ένα από τα πιο δυνατά εργαλεία του Excel, όπως είναι το φίλτρο; Και ειδικά όταν έχεις να κάνεις με λίστες που μπορείς πολύ εύκολα να φιλτράρεις δεδομένα και να παίρνεις πολύ γρήγορα στοιχεία, π.χ. πόσες φιάλες έσπασαν από 10/04/2019 μέχρι 25/04/2019;

- Ακόμα και πολλές εγγραφές να έχεις ανά μήνα, το φίλτρο θα είναι απαραίτητο και πάλι για μια συγκεκριμένη αναζήτηση.

Αν παρόλα αυτά είναι απαιτητό να γίνει η υλοποίηση όπως την αναφέρεις, τότε βλέπουμε τι μπορούμε να κάνουμε.
__________________
Your Curiosity Will Be The Death Of You!
Απάντηση με παράθεση
  #9  
Παλιά 27-02-19, 16:31
Όνομα: Μιχάλης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 11-05-2013
Μηνύματα: 34
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από ChrisGT7 Εμφάνιση μηνυμάτων
Ναι, φυσικά και γίνεται η μεταφορά δεδομένων που περιγράφεις. Και αν τα φύλλα είναι ήδη δημιουργημένα ανά μήνα όπως αναφέρεις, μπορείς κατά την καταχώρηση μιας νέας εγγραφής, ελέγχοντας την ημερομηνία φθοράς ή με ένα ξεχωριστό combo box, να στέλνεται αυτόματα στο αντίστοιχο φύλλο.

Θα διαφωνήσω όμως μ' αυτό το σκεπτικό, γιατί η καταχώρηση θα γίνει λίγο περίπλοκη για τον απλό χρήστη. Δηλαδή:
- Αν κατά την καταχώρηση γραφτεί μια ημερομηνία λάθος, θα σταλεί σε λάθος φύλλο, οπότε μετά θα πρέπει να αναζητάς σε ποιο φύλλο πήγε.

- Διόρθωσέ με αν κατάλαβα λάθος με αυτό που γράφεις "Οι φθορές σε αριθμό δεν πρόκειται να ξεπεράσουν σε αριθμό τις στήλες στο φύλλο". Οι στήλες στο φύλλο Φθορές είναι οκτώ, οπότε κάθε μήνα θα έχεις από οκτώ εγγραφές περίπου; Αν είναι έτσι, γιατί να έχεις τόσα φύλλα εργασίας για τόσες λίγες εγγραφές;

- Για ποιο λόγο να καταργήσεις ένα από τα πιο δυνατά εργαλεία του Excel, όπως είναι το φίλτρο; Και ειδικά όταν έχεις να κάνεις με λίστες που μπορείς πολύ εύκολα να φιλτράρεις δεδομένα και να παίρνεις πολύ γρήγορα στοιχεία, π.χ. πόσες φιάλες έσπασαν από 10/04/2019 μέχρι 25/04/2019;

- Ακόμα και πολλές εγγραφές να έχεις ανά μήνα, το φίλτρο θα είναι απαραίτητο και πάλι για μια συγκεκριμένη αναζήτηση.

Αν παρόλα αυτά είναι απαιτητό να γίνει η υλοποίηση όπως την αναφέρεις, τότε βλέπουμε τι μπορούμε να κάνουμε.
Χρήστο...ρεζίλι έγινα..χαχαχα..Δεν εννοούσα στήλες αλλά γραμμές που αρκούν για 60 εγγραφές χωρίς χρήση φίλτρου αλλά εδώ φαίνεται η απειρία μου..λάθος ημερομηνία και ψάξε να δεις που πήγε..έχεις απόλυτο δίκιο...οπότε ως έχει..τώρα το προηγούμενο ερώτημα αν είναι αναγκαίο το φίλτρο να εφαρμόζεται και στο ListBox της φόρμας το αφήνω στα δικά σου κριτήρια αν θα βοηθούσε ή όχι τον χρήστη..αυτό που φοβάμαι είναι μην βλέπει φιλτραρισμένο το φύλλο και στο ListBox όλα και αρχίσουν σωρηδόν τα τηλέφωνα. Αν κρίνεις ότι πρέπει να εφαρμοστεί και στο ListBox τότε μόνο με βοήθεια μπορώ να το καταφέρω διότι ότι tutorials κι αν είδα και προσπάθησα να εφαρμόσω δεν κατάφερα τίποτα. Ευχαριστώ.
Απάντηση με παράθεση
  #10  
Παλιά 27-02-19, 18:09
Το 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
Προεπιλογή

Καλησπέρα.
Παρακολουθώ την «συζήτηση» και θα ήθελα να σας πω μερικά πράγματα...

Πάμε πίσω στο post #4...
Το αρχείο έχει πολλά συγχωνευμένα κελιά (πολύ κακό για τον κώδικα)
Το φύλλο αρχική, δεν έχει κανένα ουσιαστικό ρόλο, παρά μόνο...«ομορφιά» να το πώ;
Η φόρμα, έχει λάθη και είναι «μπερδεψοδουλειά» για τον δημιουργό βασικά, αφού έχουμε ταυτόχρονα,
Textboxes και Comboboxes, με ονομασία TextBox1, TextBox2 κλπ.
Τελικά τι είναι τι, δεν μπορεί να καταλάβει κανείς με το πρώτο, αλλά πρέπει να το ψάξει...

Από την άλλη, πολλά Msgboxes, χωρίς νόημα, που «κουράζουν» τον χρήστη.
Όταν θέλω να κλείσω την φόρμα, το:
MsgBox("Θέλετε σίγουρα να κλείσετε τη φόρμα καταχωρήσεων;" δεν χρειάζεται.
Για να πατήσω το κουμπί «Κλείσιμο φόρμας» ναι θέλω να την κλείσω...

Αλλά και το QueryClose, που με οδηγεί στο:
MsgBox "Παρακαλώ πατήστε το πλήκτρο κλείσιμο!" είναι περιττό.

Θα πρέπει ή να καταργηθεί το κουμπί «Κλείσιμο φόρμας» και να κλείνει από το default "X" κουμπί,
ή να καταργηθεί το default "X" κουμπί (να μην φαίνεται καθόλου) και
να κλείνει από το κουμπί «Κλείσιμο φόρμας»

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

Εδώ βέβαια, μιλάμε για πρόγραμμα...
Μπορούμε να σε βοηθήσουμε σε αυτό, αλλά όχι να στο δώσουμε έτοιμο.

Προχωράς φτάνεις κάπου, κι αν δυσκολεύεσαι βοηθάμε επάνω στο δικό σου έργο...

Όσο για το gif με τη σχολή χορού...είναι από ένα site (το οποίο γνωρίζω, αλλά δεν θα αναφέρω)
που όπως όλα τα sites του χώρου αυτού, δίνουν οδηγίες και κατευθύνσεις αλλά
κανείς δεν μπορεί να μάθει vba, και να δημιουργεί προγράμματα από tutorials...

Πρόταση
Για ένα τόσο μικρό πρόγραμμα, με τόσο λίγες εγγραφές και χρήστες αρχάριους όπως είπες,
ένα φύλλο καταχωρήσεων,
μια φόρμα μόνο για καταχωρήσεις, με έλεγχο σφαλμάτων
ενώ τα υπόλοιπα, από το πολύ φιλικό περιβάλλον των φύλλων, είναι υπέρ αρκετό.

Τα πολύ «φαντεζί» πράγματα, δεν είναι πιο χρηστικά από τα απλά.
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[Excel07] Μεταφορά μορφής και δεδομένων απο φύλλο εργασίας George R Excel - Ερωτήσεις / Απαντήσεις 7 17-05-18 06:55
[ Συναρτήσεις ] Άνοιγμα αρχείου μορφής .pdf στον C:\ dimitrisp Access - Ερωτήσεις / Απαντήσεις 8 04-04-17 14:06
[Γενικά] Φόρμα και μεταφορά δεδομένων σε άλλο φύλλο ΣΩΤΗΡΗΣ1986 Excel - Ερωτήσεις / Απαντήσεις 3 20-01-17 13:21
[ Πίνακες ] Ταξινόμηση πεδίου μορφής κειμένου ως αριθμός Strs Access - Ερωτήσεις / Απαντήσεις 4 07-11-15 23:09
Εξαγωγή ημερομηνίας και ημέρας σε φόρμα ntelios Access - Ερωτήσεις / Απαντήσεις 38 28-09-10 10:09


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