| Ms-Office Γενικές ερωτήσεις για τις εφαρμογές του Microsoft Office. |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
|
#1
| |||
| |||
|
Καλημέρα και χρόνια πολλά σε όλους και όλες! Η ερώτηση μου δεν ταιριάζει και τόσο με τις γιορτές των Χριστουγέννων και της Πρωτοχρονιάς αλλά… Πως μπορώ να υπολογίσω (με VBA ή χωρίς) την Κυριακή του Πάσχα σε προγράμματα του Office όπως Word, Excel, Access? Ευχαριστώ για τον χρόνο σας. Φιλικά Δημήτρης |
|
#2
| ||||
| ||||
|
Αγαπητε φιλε Δημητρη καλήμερα & χρονια πολλα Αυτο που ζητας μπορεις να το βρεις εδω ( http://www.msaccess.gr/index.php/el/-vba/15-2008-12-24-22-04-51) αλλα και εδω ( http://www.eortologio.gr/arthra/pasxa.php.) Ελπιζω να σε βοηθησα να βρεις αυτο που ζητας.
__________________ Φιλικά ![]() Χρήστος ___________________________ Αυτά που δεν ξέρεις φτιάχνουν μία βιβλιοθήκη που καθένας μας θα ήταν υπερήφανος να έχει. Αν η γνώση δημιουργεί προβλήματα,η άγνοια σίγουρα δεν μπορεί να τα λύσει. Τελευταία επεξεργασία από το χρήστη Chris : 02-01-10 στις 11:49. |
|
#3
|
|
Καλημέρα σε όλους! Αγαπητέ φίλε Δημήτρη, σου προτείνω μερικές λύσεις υπολογισμού του Πάσχα για έτη από το 1924: Excel Έστω ότι στο κελί A1 έχουμε το Έτος πχ. 2010. Ο τύπος για τον υπολογισμό του Πάσχα είναι: Κώδικας: =DATE(A1;IF(3+(MOD(19*MOD(A1;19)+16;30))+(MOD(2*(MOD(A1;4))+4*(MOD(A1;7))+6*(MOD(19*MOD(A1;19)+ 16;30));7))>30;5;IF(3+(MOD(19*MOD(A1;19)+16;30))+(MOD(2*(MOD(A1;4))+4*(MOD(A1;7))+6*(MOD(19*MOD(A1;19)+16;30)) ;7))<1;3;4));IF(3+(MOD(19*MOD(A1;19)+16;30))+(MOD(2*(MOD(A1;4))+4*(MOD(A1;7))+6*(MOD(19*MOD(A1;19)+16;30));7))>30;3+ (MOD(19*MOD(A1;19)+16;30))+(MOD(2*(MOD(A1;4))+4*(MOD(A1;7))+6*(MOD(19*MOD(A1;19)+16;30));7))-30;IF(3+(MOD(19* MOD(A1;19)+16;30))+(MOD(2*(MOD(A1;4))+4*(MOD(A1;7))+6*(MOD(19*MOD(A1;19)+16;30));7))<1;3+(MOD(19*MOD(A1;19) +16;30))+(MOD(2*(MOD(A1;4))+4*(MOD(A1;7))+6*(MOD(19*MOD(A1;19)+16;30));7))+31;3+(MOD(19*MOD(A1;19)+16;30))+ (MOD(2*(MOD(A1;4))+4*(MOD(A1;7))+6*(MOD(19*MOD(A1;19)+16;30));7))))) Κώδικας: Function P(Y%) As Date 'όπου Y% = το έτος
P = 3 + ((19 * (Y Mod 19) + 16) Mod 30) + (2 * (Y Mod 4) + 4 * _
(Y Mod 7) + 6 * ((19 * (Y Mod 19) + 16) Mod 30)) Mod 7
P = DateSerial(Y, IIf(P > 30, 5, 4), IIf(P > 30, P - 30, P))
End Function
Access Χρειάζονται 3 πεδία σε μια φόρμα. Στο πρώτο πεδίο με το όνομα "iDay" περνάμε τον τύπο: =3+((19*([iYear] Mod 19)+16) Mod 30)+(2*([iYear] Mod 4)+4*([iYear] Mod 7)+6*((19*([iYear] Mod 19)+16) Mod 30)) Mod 7 Στο δεύτερο πεδίο με το όνομα "iYear" για να δίνουμε το έτος προς υπολογισμό. Στο τρίτο πεδίο περνάμε τον τύπο: =IIf(IsNull([iDay]);"";DateSerial([iYear];IIf([iDay]>30;5;4);IIf([iDay]>30;[iDay]-30;[iDay]))) Δείτε και το συνημμένο (Access) Ελπίζω να βοήθησα Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών σε VB.Net, Access, Excel, Outlook, Word Τελευταία επεξεργασία από το χρήστη Tasos : 16-01-12 στις 14:14. |
|
#4
| ||||
| ||||
|
Τασο καλησπερα και καλη χρονια τον κωδικα VBA πω μπορουμε να τον χρησιμοποιησουμε σε Word;
__________________ Φιλικά ![]() Χρήστος ___________________________ Αυτά που δεν ξέρεις φτιάχνουν μία βιβλιοθήκη που καθένας μας θα ήταν υπερήφανος να έχει. Αν η γνώση δημιουργεί προβλήματα,η άγνοια σίγουρα δεν μπορεί να τα λύσει. |
|
#5
|
|
Καλησπέρα σε όλους! Φίλε Χρήστο, μπορείς κάλλιστα να εφαρμόσεις τον κώδικα σε οποιαδήποτε εφαρμογή περιέχει VB - VBA. Στο Word μπορείς να χρησιμοποιήσεις το παρακάτω: Κώδικας: Option Explicit
Function P(Y%) As Date
P = 3 + ((19 * (Y Mod 19) + 16) Mod 30) + (2 * (Y Mod 4) + 4 * _
(Y Mod 7) + 6 * ((19 * (Y Mod 19) + 16) Mod 30)) Mod 7
P = DateSerial(Y, IIf(P > 30, 5, 4), IIf(P > 30, P - 30, P))
End Function
Sub Pasxa() ' Αυτό τρέχεις
Dim x%
On Error Resume Next
x = InputBox("Enter Year", "Pasxa", Year(Date))
If x <> 0 And x > 1923 And x < 4000 Then Selection.Text = P(x)
End Sub
Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών σε VB.Net, Access, Excel, Outlook, Word |
|
#6
| |||
| |||
|
Καλησπέρα! Σας ευχαριστώ πολύ για τις απαντήσεις. Οι συναρτήσεις στην Access και ο κώδικάς VBA δουλεύουν μια χαρά. Αντιμετώπισα ένα πρόβλημα στην Excel. Μου βγάζει το λάθος #NAME? Κάνω κάτι λάθος; Ευχαριστώ και πάλι! Δημήτρης |
|
#7
|
|
Καλησπέρα Δημήτρη! Μόλις τώρα παρατήρησα στο Δημόσιο προφίλ σου ότι έχεις Office στη γερμανική γλώσσα. Η γερμανική Excel, σε αντίθεση με την Access, δεν αναγνωρίζει το 99% των συναρτήσεων που υπάρχουν σε εκδόσεις όπως η ελληνική ή η αγγλική κατά την πληκτρολόγηση τους. Χρησιμοποίησε λοιπόν τον παρακάτω τύπο: Κώδικας: =DATUM(A1;WENN(3+(REST(19*REST(A1;19)+16;30))+(REST(2*(REST(A1;4))+4*(REST(A1;7))+6* (REST(19*REST(A1;19)+16;30));7))>30;5;WENN(3+(REST(19*REST(A1;19)+16;30))+(REST(2*(REST(A1;4))+4*(REST(A1;7))+6* (REST(19*REST(A1;19)+16;30));7))<1;3;4));WENN(3+(REST(19*REST(A1;19)+16;30))+(REST(2*(REST(A1;4))+4*(REST(A1;7))+6* (REST(19*REST(A1;19)+16;30));7))>30;3+(REST(19*REST(A1;19)+16;30))+(REST(2*(REST(A1;4))+4*(REST(A1;7))+6* (REST(19*REST(A1;19)+16;30));7))-30;WENN(3+(REST(19*REST(A1;19)+16;30))+(REST(2*(REST(A1;4))+4*(REST(A1;7))+6* (REST(19*REST(A1;19)+16;30));7))<1;3+(REST(19*REST(A1;19)+16;30))+(REST(2*(REST(A1;4))+4*(REST(A1;7))+6*(REST( 19*REST(A1;19)+16;30));7))+31;3+(REST(19*REST(A1;19)+16;30))+(REST(2*(REST(A1;4))+4*(REST(A1;7))+6*(REST(19 *REST(A1;19)+16;30));7))))) Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών σε VB.Net, Access, Excel, Outlook, Word Τελευταία επεξεργασία από το χρήστη Tasos : 16-01-12 στις 14:18. |
|
#8
| |||
| |||
|
Τάσο, σ ευχαριστώ πολύ! Έπαιξε αμέσως! Δημήτρης |
|
#9
| ||||
| ||||
|
Καλημέρα Θα ήθελα να κάνω μία παρατήρηση αν και το επίπεδο μου είναι πολύ πιό κάτω από του φίλου Τάσου Όσοι φίλοι κάνουν copy paste τον εξαιρετικό τύπο στο EXCEL για τον υπολογισμό Πάσχα να προσέξουν γιατί υπάρχουν "κενά" όπως στα M OD της 1ης και 3ης σειράς και σε κάποια άλλα σημεία με αποτέλεσμα να μην λειτουργεί σωστά για κάποιες χρονιές. Χαίρομαι πάντως που ο τύπος υπολογίζει τα χρόνια από το 1924 έτος ίδρυσης της ΑΕΚ !!! Με πολύ σεβασμό στις γνώσεις του Τάσου. Φιλικά ΣΠΥΡΟΣ
__________________ Spirosgr |
|
#10
|
|
Καλησπέρα σε όλους! Αγαπητέ Σπύρο, σωστή η παρατήρηση σου. Τα κενά που παρουσιάζονται στους τύπους δημιουργούνται κατά την επικόλληση τους στον επεξεργαστή του μηνύματος. Αν βάλουμε τους τύπους σε πλαίσιο κώδικα (το έκανα ήδη σ αυτό το θέμα) νομίζω ότι βελτιώνεται η κατάσταση. Να είσαι καλά και σ ευχαριστώ για τη συμμετοχή σου! Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών σε VB.Net, Access, Excel, Outlook, Word |
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| Εργαλεία Θεμάτων | |
| Τρόποι εμφάνισης | |
| |
| ||||
| Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
| [Συναρτήσεις] Υπολογισμός ωρών | prittpritt | Excel - Ερωτήσεις / Απαντήσεις | 25 | 08-12-11 19:26 |
| Υπολογισμός ηλικίας | balex | Access - Ερωτήσεις / Απαντήσεις | 21 | 06-11-11 13:59 |
| Υπολογισμός της ημέρας του Άγιου Πάσχα και άλλων κινητών εορτών. | Tasos | Ημερομηνία & ώρα | 0 | 21-09-11 16:18 |
| [Συναρτήσεις] Υπολογισμός κατηγοριών | Echo | Excel - Ερωτήσεις / Απαντήσεις | 9 | 01-06-11 23:42 |
| [ Φόρμες ] Υπολογισμός ηλικίας | mgeorge | Access - Ερωτήσεις / Απαντήσεις | 4 | 29-05-11 21:04 |
Η ώρα είναι 12:29.




Αλλαγή σε γραμμικό τρόπο

