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/6372-oxi-idia-keimena-sta-dyo-kelia-oxi-ektelesi-makroentolis.html)

christakos 23-09-23 14:34

ΟΧΙ ίδια κείμενα στα Δυο κελιά, ΟΧΙ εκτέλεση μακροεντολής
 
1 Συνημμένο(α)
Καλησπέρα σας,

έχει δυο φύλλα εργασίας
fyllo1 και fyllo2

Στο fyllo1 στο συγχωνευμένο κελί C2:D2 έχω ημερομηνία.
Στο fyllo2 έχω έναν πίνακα με ημερολόγιο.
χρησιμοποιώ μακροεντολή για την αντιγραφή τους,

είναι εύκολο να προσαρμοστεί πρόσθετος κώδικας, ώστε όταν η ημερομηνία στην γραμμή ημερομηνίας fyllo2 που θα επιλέξω να γίνει αντιγραφή,
αν δεν είναι ίδια η ημερομηνία που έχω στο fyllo1,
Να μην εκτελείτε η μακροεντολή, και να εμφανίζετε π.χ. ένα messebox "Λάθος Ημερομηνία"

Δεν χρειάζεται να γίνει και στις τρεις μακροεντολές στο Module,
στη μια φτάνει:dft012:
μετά θα το προσαρμόσω ανάλογα:001_smile:

ευχαριστώ για το χρόνο σας.

ChrisGT7 23-09-23 15:07

1 Συνημμένο(α)
Καλησπέρα Χρήστο,

Δοκίμασε το συνημμένο αρχείο.

Η διαδικασία InvalidDate() ελέγχει αν η ημερομηνία στο όρισμα ΗΜΕΡΟΜΗΝΙΑ (Τύποι > Διαχείριση Ονομάτων) είναι ίδια με την αντίστοιχη γραμμή που θα γίνει η επικόλληση των τιμών. Αν δεν είναι, εμφανίζει μήνυμα λάθους και σε μεταφέρει στο όρισμα ΗΜΕΡΟΜΗΝΙΑ.

Η InvalidDate() δέχεται ως όρισμα τον αριθμό γραμμής.

Η ημερομηνία θα μπορούσε να αλλάζει αυτόματα μόλις πατήσεις το αντίστοιχο κουμπί.

Αν δεν καταλάβεις τη λογική, με ενημερώνεις.

christakos 23-09-23 16:03

Στην αρχή όχι, μετά το κατάλαβα.

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

Ευχαριστωωωω, να σε καλα

ChrisGT7 23-09-23 16:58

Χρήστο,

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

Μ' αυτόν τον τρόπο, ο κώδικάς σου θα ήταν πολύ πιο μικρός και πιο εύκολα διορθώσιμος. Αν χρειαστεί να αλλάξεις κάτι, θα κάνεις μια διόρθωση ενώ στην περίπτωσή σου, θα κάνεις 31 διορθώσεις!

Αν θες, μπορώ να ανεβάσω παράδειγμα.

christakos 23-09-23 18:45

Κατάλαβα,
αντι αυτο που θέλω να κάνω,

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

ανέβασε το παράδειγμα όταν μπορέσεις,
για να το προσαρμόσω και θα σε ενημερώσω

ChrisGT7 23-09-23 20:56

1 Συνημμένο(α)
Χρήστο,

Ελπίζω το συνημμένο αρχείο να σε βοηθήσει.

Στο φύλλο ΜΕΤΑΦΟΡΑ βάζεις τα μηνιαία δεδομένα, στο πράσινο κελί την ημερομηνία μεταφοράς και πατώντας το βέλος, μεταφέρονται τα ποσά στο αντίστοιχο φύλλο του μήνα.

Η διαδικασία METAFORA ψάχνει όλα τα φύλλα (πλην του φύλλου ΜΕΤΑΦΟΡΑ) για την ημερομηνία και βάζει στην αντίστοιχη γραμμή τα δεδομένα. Αν η ημερομηνία δε βρεθεί σε κανένα φύλλο, εμφανίζεται σφάλμα.

Ελπίζω να έπιασα τη λογική του ζητούμενου.

christakos 24-09-23 08:28

πολύ καλύτερη αυτή η μέθοδος σου, στο συγκεκριμένο παιδευόμουν ένα Μήνα περίπου δεν έβρισκα τρόπο να παρακάμπτω τις ημερομηνίες που δεν θα ήθελα και είχα προχωρήσει σε εναλλακτική, δλδ στο πρώτο post (Υ.Γ. είχα ξεψαχνίσει και το Forum):dft012:

πολύ καλό ο κώδικας σου:thumbup:
έτσι στις κατ' επιλογής ημερομηνίες, γίνετε είτε εισαγωγή είτε διόρθωση...

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

ευχαριστώ από εδω


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

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


Search Engine Optimization by vBSEO 3.3.2