Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [VBA] Αντιστροφή μορφής ημερομηνίας από φόρμα στο φύλλο (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/5152-antistrofi-morfis-imerominias-apo-forma-sto-fillo.html)

istrios 07-02-19 12:59

Αντιστροφή μορφής ημερομηνίας από φόρμα στο φύλλο
 
1 Συνημμένο(α)
Καλημέρα. Γράφω για πρώτη φορά εφόσον τώρα άρχισα να ασχολούμαι με VBA. Έχω φτιάξει μία φόρμα καταχωρήσεων και έχω το εξής πρόβλημα με τις ημερομηνίες. Μου τις αντιστρέφει από τη φόρμα που φαίνεται σωστή, στο φύλλο εργασίας που και εκεί έχω πιστεύω σωστά τη μορφοποίηση του κελιού με την ημερομηνία ως ηη/μμ/εεεε και στη φόρμα ως dd/mm/yyyy. Όταν πάω να εισάγω ημερομηνία πχ. τη σημερινή 7/2/2019 στο φύλλο αντιστρέφεται ως 2/7/2019 και αντίστροφα αν βάλω στη φόρμα 2/7/2019 στο φύλλο 7/2/2019. Δεν έχω πολλές γνώσεις, είμαι σε πολύ χαμηλό επίπεδο και ότι κάνω το κάνω μέσα από tutorials και βίντεο σχετικά με το θέμα. Δεν ξέρω αν είναι θέμα ότι χρησιμοποιώ ελληνική έκδοση Office 2019, αλλά το ίδιο συμβαίνει και με τα 2013 και 2017 στις Ελληνικές εκδόσεις που δοκίμασα. Επισυνάπτω το αρχείο. Ευχαριστώ εκ των προτέρων.

ChrisGT7 07-02-19 19:23

1 Συνημμένο(α)
Καλησπέρα Μιχάλη,

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

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

Δοκίμασε κι εσύ να δεις αν όλα βαίνουν καλώς.

istrios 07-02-19 19:44

Παράθεση:

Αρχική Δημοσίευση από ChrisGT7 (Μήνυμα 29012)
Καλησπέρα Μιχάλη,

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

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

Δοκίμασε κι εσύ να δεις αν όλα βαίνουν καλώς.

Δουλεύει τέλεια!!!...Σε ευχαριστώ πολύ..με έσωσες γιατί ήθελα τη χρήση φίλτρου στις ημερομηνίες και αυτό το θέμα που είχα με έχει παιδέψει πάρα πολύ. . Μάλιστα το εξέλιξες και παραπάνω...Respect!!

istrios 26-02-19 14:12

1 Συνημμένο(α)
Να 'μαι πάλι!! :byebye:. Έχω ένα ερώτημα (Τι άλλο θα είχα) σχετικά με τη φόρμα. Την εξέλιξα λιγάκι σε σχέση με το προηγούμενο και εκτός των άλλων πρόσθεσα και ένα List Box στη φόρμα. Υπάρχει η δυνατότητα αν στο φύλλο εργασίας πχ. στην ημερομηνία κάνω χρήση του φίλτρου στο φύλλο φθορές αυτό να εφαρμόζεται και στο List Box;

ChrisGT7 26-02-19 20:05

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

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

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

Θες κάτι τέτοιο;

istrios 26-02-19 21:08

Παράθεση:

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

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

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

Θες κάτι τέτοιο;

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

istrios 27-02-19 11:32

Παράθεση:

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

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

https://www.onlinepclearning.com/wp-.../dance-gif.gif

ChrisGT7 27-02-19 16:03

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

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

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

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

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

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

istrios 27-02-19 16:31

Παράθεση:

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

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

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

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

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

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

Χρήστο...ρεζίλι έγινα..χαχαχα..Δεν εννοούσα στήλες αλλά γραμμές που αρκούν για 60 εγγραφές χωρίς χρήση φίλτρου αλλά εδώ φαίνεται η απειρία μου..λάθος ημερομηνία και ψάξε να δεις που πήγε..έχεις απόλυτο δίκιο...οπότε ως έχει..τώρα το προηγούμενο ερώτημα αν είναι αναγκαίο το φίλτρο να εφαρμόζεται και στο ListBox της φόρμας το αφήνω στα δικά σου κριτήρια αν θα βοηθούσε ή όχι τον χρήστη..αυτό που φοβάμαι είναι μην βλέπει φιλτραρισμένο το φύλλο και στο ListBox όλα και αρχίσουν σωρηδόν τα τηλέφωνα. Αν κρίνεις ότι πρέπει να εφαρμοστεί και στο ListBox τότε μόνο με βοήθεια μπορώ να το καταφέρω διότι ότι tutorials κι αν είδα και προσπάθησα να εφαρμόσω δεν κατάφερα τίποτα. Ευχαριστώ.

Spirosgr 27-02-19 18:09

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

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

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

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

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

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

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

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

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

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

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

istrios 27-02-19 18:36

Παράθεση:

Αρχική Δημοσίευση από Spirosgr (Μήνυμα 29135)
Καλησπέρα.
Παρακολουθώ την «συζήτηση» και θα ήθελα να σας πω μερικά πράγματα...

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

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

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

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

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

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

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

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

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

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

Σπύρο καλησπέρα. Ξεκίνησα μόλις φέτος το χειμώνα με μηδέν γνώσεις ν ασχολούμαι με excel και VBA και γι αυτό βλέπεις και πολλά λάθη από τη μία και τόσες πολλές ερωτήσεις στο Φόρουμ. Ξεσήκωσα φόρμες και παρακολουθώντας οδηγίες μάλλον χάθηκα κι εγώ από τη μία κι από την άλλη από ενθουσιασμό σε ότι κατάφερνα έλεγα ωραίο αυτό, ωραίο το άλλο. Τη VBA τη θεωρώ για το χαμηλό επίπεδο μου άπιαστο όνειρο...δεν πρόκειται να γράψω με δικό μου σκεπτικό κανέναν κώδικα γιατί απλά δεν ξέρω και τη θεωρώ άκρως δουλειά επαγγελματία με σπουδές στο αντικείμενο...ένας απλός ταμίας στην εργασία μου είμαι και επειδή όλα αυτά περνάνε από τα χέρια μου εκτός την έκδοση λογαριασμών, ταμείο κλπ, έχω τις κρατήσεις, τις φθορές, τις ενδοτμηματικές κινήσεις μεταξύ τμημάτων...πολύ γράψιμο και χαρτί δηλαδή και είπα μήπως κάνω την εργασιακή ζωή μου ευκολότερη. Υπάρχουν ακόμα άλλα δύο τμήματα που αναγκαστικά πρέπει κι αυτά να δουλεύουν με ότι έφτιαξα για να είναι ομοιόμορφα όλα. Να ξέρεις ότι οι συμβουλές είναι σωστές. Πες το υπέρμετρο ενθουσιασμό για έναν που βλέπει τις δυνατότητες ενός προγράμματος για πρώτη φορά και να υπερέβαλα.
Παράθεση:

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

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

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

Γι αυτό το ενδεχόμενο τη δημιουργία ενός τύπου προγράμματος που αναφέρεις πολύ φοβάμαι ότι δεν θα τα καταφέρω να το ολοκληρώσω..αλλά από την άλλη όπως λέει και ο λαός ..ποτέ μην λες ποτέ...αλλά δεν μου το έχω...νομίζω :hmm:

Θα ακολουθήσω πάντως τις παρατηρήσεις σου. :001_smile:

ChrisGT7 27-02-19 21:17

1 Συνημμένο(α)
Μιχάλη,

Με πρόλαβε σχεδόν σ' όλα ο Σπύρος, τα οποία είχα σκοπό να στα αναφέρω ώστε να μαθαίνεις και να διορθώνεσαι με τον καιρό, αφού όπως είπες σου αρέσουν πολύ οι δυνατότητες που προσφέρει το Excel.

1. Κουμπί κλεισίματος: Όπως είπε και ο Σπύρος, το θεωρώ περιττό αλλά παρόλα αυτά το έβαλα πάνω δεξιά να το βλέπει ο χρήστης πιο εύκολα. Μια ιδέα είναι να το κρύψεις πίσω από κάποιο ελεγκτήριο (π.χ. το listbox) να μη φαίνεται καθόλου ώστε να εκμεταλλεύεσαι τη χρησιμότητα της ιδιότητάς του Cancel. Αν την έχεις True, πατώντας το Esc εκτελείται ο κώδικας σαν να έκανες κλικ, έχοντας σύμμαχο το κλασικό κουμπί "Χ".

2. Listbox: Κατά τη διάρκεια των καταχωρήσεων, πίστεψέ με, ο χρήστης έχει την προσοχή του στα παραστατικά και επικεντρώνεται σ' αυτά για να μην κάνει λάθη. Και πάλι όπως είπε ο Σπύρος, είναι περιττό αλλά παρόλα αυτά, δίπλα σε κάθε πεδίο καταχώρησης έχω βάλει από ένα checkbox, τα οποία επιρρεάζουν το φίλτρο του φύλλου Φθορές και συνεπώς το listbox. Έχω κάποια δοκιμαστικά δεδομένα στο φύλλο, οπότε μπορείς να πειραματιστείς. Λειτουργούν και οι χαρακτήρες μπαλαντέρ * και ?.

3. Ημερομηνίες και αριθμοί: Αφού προτιμάς να φτιάξεις μια φόρμα καταχώρησης, καλό θα ήταν ο χρήστης να βοηθιέται σε συγκεκριμένα πεδία που απαιτούν προσοχή, όπως οι ημερομηνίες και οι αριθμοί. Σ' αυτά τα πεδία έβαλα λίγο κώδικα να "σουλουπώνονται" τις καταχωρήσεις, π.χ. στην ημερομηνία αν γράψεις 5/6 και φύγεις από το πεδίο θα γίνει 05/06/2019, ενώ αν βάλεις γράμματα μένει κενό.

4. Ονοματολογίες αντικειμένων/ελεγκτηρίων: Καλό θα ήταν να δίνεις ονόματα που θα σε βοηθούν να γράφεις και να διαβάζεις πιο εύκολα τον κώδικά σου. Π.χ. ένα textbox για το όνομα πελάτη ονόμασέ το TxtCustomer ή TxtPelath, ένα combobox για επαγγέλματα CmbJobs, ένα checkbox για επανάληψη καταχώρησης ChkRepeat κ.ο.κ. Δηλαδή να δίνεις ονόματα με κάποια λογική στη λειτουργία του κάθε αντικειμένου.

5. Ιδιότητα TabIndex: Όταν φτιάχνεις φόρμες με πολλά πεδία, μια πολύ βασική ιδιότητα για την ομαλή και πιο εύκολη καταχώρηση είναι η ιδιότητα TabIndex των αντικειμένων. Δηλώνει σε ποιο αντικείμενο θα μεταφερθεί ο κέρσορας όταν πατήσεις το Tab. Όταν φορτώνει μια φόρμα, το αντικείμενο που έχει 1 σ' αυτή την ιδιότητα, ο κέρσορας θα αναβοσβήνει εκεί. Αν πατήσεις Tab, θα πάει στο αντικείμενο με την τιμή 2 κ.ο.κ.

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

Καλή εξάσκηση και μπράβο στις προσπάθειες που καταβάλλεις να μάθεις κάτι νέο! :)

istrios 28-02-19 11:46

Παράθεση:

Αρχική Δημοσίευση από ChrisGT7 (Μήνυμα 29142)
Μιχάλη,

Με πρόλαβε σχεδόν σ' όλα ο Σπύρος, τα οποία είχα σκοπό να στα αναφέρω ώστε να μαθαίνεις και να διορθώνεσαι με τον καιρό, αφού όπως είπες σου αρέσουν πολύ οι δυνατότητες που προσφέρει το Excel.

1. Κουμπί κλεισίματος: Όπως είπε και ο Σπύρος, το θεωρώ περιττό αλλά παρόλα αυτά το έβαλα πάνω δεξιά να το βλέπει ο χρήστης πιο εύκολα. Μια ιδέα είναι να το κρύψεις πίσω από κάποιο ελεγκτήριο (π.χ. το listbox) να μη φαίνεται καθόλου ώστε να εκμεταλλεύεσαι τη χρησιμότητα της ιδιότητάς του Cancel. Αν την έχεις True, πατώντας το Esc εκτελείται ο κώδικας σαν να έκανες κλικ, έχοντας σύμμαχο το κλασικό κουμπί "Χ".

2. Listbox: Κατά τη διάρκεια των καταχωρήσεων, πίστεψέ με, ο χρήστης έχει την προσοχή του στα παραστατικά και επικεντρώνεται σ' αυτά για να μην κάνει λάθη. Και πάλι όπως είπε ο Σπύρος, είναι περιττό αλλά παρόλα αυτά, δίπλα σε κάθε πεδίο καταχώρησης έχω βάλει από ένα checkbox, τα οποία επιρρεάζουν το φίλτρο του φύλλου Φθορές και συνεπώς το listbox. Έχω κάποια δοκιμαστικά δεδομένα στο φύλλο, οπότε μπορείς να πειραματιστείς. Λειτουργούν και οι χαρακτήρες μπαλαντέρ * και ?.

3. Ημερομηνίες και αριθμοί: Αφού προτιμάς να φτιάξεις μια φόρμα καταχώρησης, καλό θα ήταν ο χρήστης να βοηθιέται σε συγκεκριμένα πεδία που απαιτούν προσοχή, όπως οι ημερομηνίες και οι αριθμοί. Σ' αυτά τα πεδία έβαλα λίγο κώδικα να "σουλουπώνονται" τις καταχωρήσεις, π.χ. στην ημερομηνία αν γράψεις 5/6 και φύγεις από το πεδίο θα γίνει 05/06/2019, ενώ αν βάλεις γράμματα μένει κενό.

4. Ονοματολογίες αντικειμένων/ελεγκτηρίων: Καλό θα ήταν να δίνεις ονόματα που θα σε βοηθούν να γράφεις και να διαβάζεις πιο εύκολα τον κώδικά σου. Π.χ. ένα textbox για το όνομα πελάτη ονόμασέ το TxtCustomer ή TxtPelath, ένα combobox για επαγγέλματα CmbJobs, ένα checkbox για επανάληψη καταχώρησης ChkRepeat κ.ο.κ. Δηλαδή να δίνεις ονόματα με κάποια λογική στη λειτουργία του κάθε αντικειμένου.

5. Ιδιότητα TabIndex: Όταν φτιάχνεις φόρμες με πολλά πεδία, μια πολύ βασική ιδιότητα για την ομαλή και πιο εύκολη καταχώρηση είναι η ιδιότητα TabIndex των αντικειμένων. Δηλώνει σε ποιο αντικείμενο θα μεταφερθεί ο κέρσορας όταν πατήσεις το Tab. Όταν φορτώνει μια φόρμα, το αντικείμενο που έχει 1 σ' αυτή την ιδιότητα, ο κέρσορας θα αναβοσβήνει εκεί. Αν πατήσεις Tab, θα πάει στο αντικείμενο με την τιμή 2 κ.ο.κ.

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

Καλή εξάσκηση και μπράβο στις προσπάθειες που καταβάλλεις να μάθεις κάτι νέο! :)

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


Η ώρα είναι 10:12.

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


Search Engine Optimization by vBSEO 3.3.2