Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [Γενικά] Ειδοποίηση όταν φτάσει η ημερομηνία (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/1673-eidopoiisi-otan-ftasei-i-imerominia.html)

Βασίλης Κ. 23-02-12 08:45

Ειδοποίηση όταν φτάσει η ημερομηνία
 
Οχι στο κελί J2 δεν καταχωρω τίποτα . Εγω καταχωρώ στο Β2 ή Ι2 και θέλω στο J2 να εμφανιζει timer ή ενα μηνυμα (πχ σε εξέλιξη) και οταν περασουν οι 12 μηνες το κελι J2 να γινεται κόκκινο και να λεει "παρε τηλ"

Θανάση συγγνωμη για την ταλαιπωρία απλά αν με βοηθουσες λιγακι στο παραδειγμα θα ημουν υποχρεως δεν ειμαι και πολυ σχετικος με το αντικειμενο.


Ευχαριστώ

Lefteris 23-02-12 09:18

1 Συνημμένο(α)
Καλημέρα σε όλους.

Βασίλη, ρίξε μία ματιά στο συνημμένο για να καταλάβεις την λογική που σου εξηγεί ο Θανάσης.

Βασίλης Κ. 23-02-12 09:30

Λευτέρη σε ευχαριστώ ειναι ακριβως οτι ήθελα . Κατάλαβα πως λειτουργεί.

Μια τεελυταια ερώτηση που λογικά δεν γινεται αλλα θελω την αποψη σας .

Εαν στο κελί Κ2 βαλω μια λεξη send και το πατήσω υπάρχει δυνατότητα να στελνει email (το email θα το εχω καταχωρησει σε καποιο απο τα προηγουμενα κελιά )

Ευχαριστώ

Lefteris 23-02-12 09:50

Βασίλη, αυτό μπορεί να γίνει αλλά μονο με VBA, πού εγώ έχω τσακωθεί μαζί του και δεν μιλάμε!!!

Αν τα Αγγλικά σου είναι καλούτσικα, δοκίμασε στο Google( Εxcel send email).Θα βρείς εκατοντάδες παραδείγματα και αναφορές.

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

Βασίλης Κ. 23-02-12 09:54

Ναι το ξέρω Λευτέρη το ψαχνω απλά αν δεν εχεις εμπειρία απο VBA δεν ειναι οτι πιο ευκολο .

Αν καποιος γνωριζει θα εκτιμουσα να μας βοηθουσε !

Σε ευχαριστώ όπως και τους υπόλοιπους οπως και να εχει για την πολύτιμη βοήθεια :respect:

gr8styl 23-02-12 11:23

Παράθεση:

Αρχική Δημοσίευση από Βασίλης Κ. (Μήνυμα 9627)
...Εαν στο κελί Κ2 βαλω μια λεξη send και το πατήσω υπάρχει δυνατότητα να στελνει email (το email θα το εχω καταχωρησει σε καποιο απο τα προηγουμενα κελιά )

Βασίλη
αν υποθέσω ότι στο D2 έχεις την διεύθυνση ηλεκτρονικού ταχυδρομείου, τότε
βάζοντας στο Κ2
Κώδικας:

=HYPERLINK("mailto:" & D2 ; "Send e-mail")
και
κάνοντας κλικ στο Κ2 που γράφει Send e-Mail
λογικά θα πρέπει να ανοίξει το Mail σου για αποστολή μυνήματος,
στην ηλεκτρονική διεύθυνση που περιέχεται στο κελί D2.

Δοκίμασέ το και πες μας αν έγινε χωρίς VBA.

Όσον αφορά την προσέγγιση με VBA νομίζω ότι αν ψάξεις στο φορουμ θα βρεις παραδειγμα.
Βέβαια το όλο ζήτημα εξαρτάται από τον προγραμμα ηλ. ταχυδρομείου που έχεις στον υπολογιστή σου αλλά και το όλο περιβάλλον που θα τρέχει η εφαρμογή.

Θανάσης
ΥΓ. Αν δεν με απατά η μνήμη μου έχει συζητηθεί/απαντηθεί το θέμα στο παρελθόν.

Βασίλης Κ. 23-02-12 16:11

Σωστα θυμασαι ειχα ρωτησει κατι σχετικο αλλα οχι στο excel νομίζω :biggrin:

Θα δοκιμασω αυτο που λες . Ουσιαστικά δεν εχω καποιο πρόγραμμα σαν e-mail εχω gmail αλλά δεν με πειράζει αυτο το σεταρω στο outlook και τελειωσε το θεμα .

Το θεμα μου ειναι να παιρνει τα δεδομενα απο ενα κελί ή απο ενα εξωτερικο αρχειο .txt , word και να τα στελνει .

Για να μην υπερβάλω ξερω οτι αυτο το κανουν CRM προγραμματα αλλά για την δικη μου δουλεια ενα excel αν οντως γινεται ειναι ιδανικο.

Θα ενημερωσω οπως και να εχει !!

Ευχαριστώ

Βασίλης Κ. 24-02-12 08:22

Θαναση καλημερα ,

Δοκιμασα το κώδικα που μου ειπες αλλά κατι δεν παιζει σωστά .

Συγκεκριμενα

Καταχωρώ στο κελί D2 το e-mail test@test.gr

Παω στο κελί K2 και γράφω =HYPERLINK("mailto:" & D2 & "Send e-mail")

Και στο κελί Κ2 εμφανιζει mailto:test@test.grsend e-mail , οταν πατησεις πανω του ανοιγει το outlook το οποιο εχει εχει στον αποστολέα το mailto:test@test.grsend e-mail

gr8styl 24-02-12 08:41

Καλημέρα Βασίλη.
Ο δαίμονας του τυπογραφείου το δεύτερο "&" πρέπει να είναι ελληνικό ερωτηματικό ";"

=HYPERLINK("mailto:" & D2 ; "Send e-mail")


Συγνώμη
Το διόρθωσα και στο αρχικό μήνυμα.

Tasos 24-02-12 14:07

1 Συνημμένο(α)
Καλησπέρα!

Δείτε στo συνημμένο μερικά παραδείγματα αποστολής E-Mail με τη μέθοδο Hypelink()
και με τη βοήθεια της VBA (προϋποθέτει εγκατεστημένο Outlook καθώς και ένα λογαριασμό E-Mail) .


Φιλικά

Τάσος

gr8styl 24-02-12 19:52

Παράθεση:

Αρχική Δημοσίευση από Tasos (Μήνυμα 9675)
Δείτε στo συνημμένο μερικά παραδείγματα αποστολής E-Mail με τη μέθοδο Hypelink()
και με τη βοήθεια της VBA (προϋποθέτει εγκατεστημένο Outlook καθώς και ένα λογαριασμό E-Mail) .

Τάσο πληροφοριακά σου λέω ότι σε μη ελληνικό περιβάλλον (windows XP EN και Excel 2003 EN) τα ελληνικά στο θέμα/subject και στο μήνυμα/message body οι ελληνικοί χαρακτήρες εμφανίζονται "κινέζικα" (oxi unicode)

Τα λέμε
Θανάσης

Tasos 24-02-12 23:01

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

Μπορείς να δοκιμάσεις τον τύπο:
=HYPERLINK("mailto:" & A2 &"?Subject="&EncodeString(D2) &"&cc="&B2&"&bcc="&C2 &"&body=" &EncodeString(E2); "Send e-mail")

Και τη συνάρτηση EncodeString() σε μια λειτουργική μονάδα:

Κώδικας:

Option Explicit

Function EncodeString(strText$) As String
    Dim Char$, strLen&, CharCode%, i&
    strLen = Len(strText)
    If strLen > 0 Then
        ReDim arrTMP(strLen) As String
        For i = 1 To strLen
            Char = Mid$(strText, i, 1)
            CharCode = AscW(Char)
            arrTMP(i) = Char
        Next i
        EncodeString = Join(arrTMP, vbNullString)
    End If
End Function


Όλα αυτά βέβαια συν τον περιορισμό των 220 χαρακτήρων στη συνάρτηση, τα αποφεύγουμε αν χρησιμοποιήσουμε τα παραδείγματα του δεύτερου και του τρίτου φύλλου του παραδείγματος μου αφού η VBA (όχι o VBE) τα πάει μια χαρά με τα Unicode.

Τα λέμε φίλε μου

Τάσος

gr8styl 25-02-12 11:45

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

Η μη σωστή υποστήριξη των ελληνικών με χρήση της HYPERLINK ήταν και ο λόγος που δεν μίλησα για τις παραμέτρους Subject, Body κλπ στην αρχική μου πρόταση στο Βασίλη. Απ' την άλλη ήθελα να αποφύγω την VBA για να μην τον δυσκολέψω περισσότερο.

Ευχαριστώ τα λέμε (εντός του 2012 ελπίζω. Χαθήκαμε ρε φίλε :dft004:).
Θανάσης
ΥΓ Θα σου πρότεινα να το ανεβάσεις στα χρήσιμα.

Tasos 25-02-12 13:12

Καλημέρα Θανάση μου.

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

Το γνωρίζω πολύ καλά γιατί ισχύει και στα υπόλοιπα προγράμματα του Office.

Δεν θα λειτουργήσει σωστά αν οι συμβολοσειρές προς απόδοση είναι αποθηκευμένες μέσα σε κάποια λειτουργική μονάδα.

Για παράδειγμα:

Σε υπολογιστή με Τοποθεσία "Ελληνικά" σε μια λειτουργική μονάδα σε οποιοδήποτε πρόγραμμα
υποστηρίζει VBA γράφουμε τον παρακάτω κώδικα:

Sub Test
MsgBox "Γράφω ελληνικά"
End sub

Tasos 25-02-12 14:11

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

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

Το γνωρίζω πάρα πολύ καλά αυτό και ισχύει και για τα υπόλοιπα προγράμματα του Office.

Δεν θα λειτουργήσει σωστά αν οι συμβολοσειρές προς απόδοση είναι αποθηκευμένες μέσα σε κάποια λειτουργική μονάδα.

Αυτό συμβαίνει επειδή ο Επεξεργαστής Visual Basic σε αντίθεση με τη VB δεν υποστηρίζει Unicode!

Για παράδειγμα:

Σε υπολογιστή με Τοποθεσία "Ελληνικά" σε μια λειτουργική μονάδα σε οποιοδήποτε πρόγραμμα
υποστηρίζει VBA γράφουμε τον παρακάτω κώδικα:

Sub Test
Dim x as String
x = "Γράφω ελληνικά"
End sub

Αν τώρα στις τοπικές ρυθμίσεις αλλάξουμε την τοποθεσία του υπολογιστή (πχ. σε Γερμανικά)
θα διαπιστώσουμε ότι τα ελληνικά μας έχουν "σπάσει" και αυτό που θα εμφανιστεί και στον VBE θα είναι:

Sub Test()
Dim x as String
x = "ÃñÜöù åëëçíéêÜ"
End Sub

Αν όμως γράφαμε:

στην Excel: x = Range("A1")

ή στην Access: x = Me!TextField

τότε σε κάθε περίπτωση η μεταβλητή x θα περιείχε χαρακτήρες Unicode και έτσι θα παίρναμε το σωστό αποτέλεσμα.

Και εδώ όμως υπάρχουν εξαιρέσεις όπως:
  • τα MsgBox, τα InputBox της VBA
  • ο τίτλος του παραθύρου σε φόρμες Access (όταν αυτός αλλάζει δυναμικά)
  • ο τίτλος του παραθύρου σε φόρμες (Userform) της Excel αλλά και των άλλων προγραμμάτων του Office.

Για τα MsgBox υπάρχει παραδειγματικό αρχείο στα παραδείγματα της Access και Excel στο φόρουμ.

Για τα inputBox, η Excel έχει δικό της αντικείμενο (Καλείται έτσι: Application.InputBox...) που
υποστηρίζει πλήρως τα Unicode.

Για τις φόρμες και UserForm θα πρέπει να χρησιμοποιηθούν API των Windows προκειμένου να εμφανίσουμε ελληνικά.

Εδώ θα δώσω ένα απλό παράδειγμα για εμφάνιση ελληνικού τίτλου σε παράθυρο μιας UserForm στην Excel:

Κώδικας:

Option Explicit
Private Const WM_SETTEXT = &HC
Private Declare Function DefWindowProcW Lib "user32" ( _
        ByVal hWnd As Long, _
        ByVal wMsg As Long, _
        ByVal wParam As Long, _
        ByVal lParam As Long) As Long

Private Declare Function FindWindow Lib "user32" _
        Alias "FindWindowA" ( _
        ByVal lpClassName As String, _
        ByVal lpWindowName As String) As Long

Private Sub UserForm_Initialize()
    Dim xhWnd As Long
    xhWnd = FindWindow("ThunderDFrame", Me.Caption)
    DefWindowProcW xhWnd, WM_SETTEXT, 0, ByVal StrPtr(Me.Label1.Caption)
End Sub

Στο Label1 περνάμε την ελληνική συμβολοσειρά που θα εμφανιστεί στον τίτλο του παραθύρου της φόρμας.

Τέλος να πω ότι έχω σκοπό να ανεβάσω περισσότερα παραδειγματικά αρχεία και στις άλλες θεματικές ενότητες του φόρουμ
που έχουν σχέση με την επικοινωνία του Outlook και των υπόλοιπων προγραμμάτων του Office.

Τα λέμε...

Τάσος

Βασίλης Κ. 27-02-12 11:22

Θαναση επαιξε μια χαρά , ευχαριστώ .

Τασο και το δικο σου παραδειγμα ειναι εμγαλη βοήθεια ειδικά αυτό με το html . Θα κανω δοκιμες και λογικα θα ερθει το αποτελεμσα που θελω .

Ευχαριστώ πολυ πολυ

Βασίλης Κ. 28-02-12 08:42

Τασο καλημέρα και καλή Σαρακοστή ,

Δουλεψα την εφαρμογή σου sendhtmlmailviaVBA δούλεψε πολύ καλά εχω μια απορία . Εαν σε ενα κελί βαλω ημερομηνία , μπορεί να μου την φέρνει μεσα στο html που κανει ?

Δεν με πειράζει αν θα ειναι δεξια αριστερα πανω ή στο κεντρο απλα καπου να το γραφει.


Ευχαριστώ

ΥΓ : Προσπάθησα να παντρεψω και του Θαναση μαζι με την δικη σου αλλά κατι δεν παιζει σωστα φανταζομαι ειναι λογω VB :p

gr8styl 28-02-12 14:47

Βασίλη για την περίπτωση που δημιουργείς Hyperlink με την Concatenate ( & ), oι ημερομηνίες εμφανίζονται σαν αριθμοί, και η λύση είναι η συνάρτηση Text που όμως εξαρτάται από την γλωσσική έκδοση του Excel και τις Τοπικές ρυθμίσεις (Regional Settings)

Αν a1=28/02/2012 και b2="Ημερομηνία: "&a1
το αποτέλεσμα στο b2 θα είναι: "Ημερομηνία: 40967"
Βάζουμε λοιπόν στο b2
="Ημερομηνία: "&text(a1;"dd/mm/yyyy") για αγγλικό Excel ή
="Ημερομηνία: "&text(a1;"ηη/μμ/εεεε") για ελληνικό Excel
οπότε το αποτέλεσμα στο b2 θα είναι: "Ημερομηνία: 28/02/2012"

Δηλαδή στο Hyperlink αντικαθιστούμε την αναφορά του κελιού με την TEXT(cell_reference;format)

Θανάσης

ΥΓ. Εμένα δεν μου δουλεύει σωστά η EncodeString σε περιβάλλον Windows XP EN, Excel 2003 EN και Local Settitngs Belgium.

Βασίλης Κ. 28-02-12 15:19

Θαναση sorry αλλα μπερδευτηκα :dft011:

Χρησιμοποίησα το παραδειγμα του Τασου με VB η οποια στελνει μεσω outlook html e-mail .Και ελεγα αν γινοταν σε ενα κελί να εβαζα και ημερομηνια και να το εμφανιζε μεσα στο html οπως εμφανιζει και τωρα πχ το κειμενο ή τον τιτλο.

Εσυ αυτο που μου λες ειναι για το δικο σου παράδειγμα ετσι ?

gr8styl 28-02-12 16:07

1 Συνημμένο(α)
Είναι παντός καιρού.
Ναι για την προσέγγιση Υπερσύνδεσης αλλά και για το html του Τάσου.

Βασίλης Κ. 28-02-12 16:17

Θαναση σε εχω κουρασει το ξερω αλλα οταν παταω διπλο κλικ στο κιτρινο κοτάκι για αποστολη εμαιλ ανοιγει σφαλμα run time 13

gr8styl 28-02-12 17:00

Βασίλη νομίζω ότι φταίει όπως προείπα
"η συνάρτηση Text που όμως εξαρτάται από την γλωσσική έκδοση του Excel και τις Τοπικές ρυθμίσεις (Regional Settings)"

για άλλαξε τα περιεχόμενα του Η2 από =TEXT(G2;"jj/mm/aaaa") & E2 (γαλλικά)
σε =TEXT(G2;"ηη/μμ/εεεε") & E2 (ελληνικά) ή =TEXT(G2;"dd/mm/yyyy") & E2 (αγγλικά)

Πες μας αν λύθηκε. :032:

Βασίλης Κ. 28-02-12 17:03

Θαναση για ακομα μια φορα ΕΙΧΕΣ ΔΙΚΙΟ .

Το πρόβλημα διορθωθηκε και ειναι super !!

Σε υπερ ευχαριστω :thumbup::thumbup:

gr8styl 28-02-12 17:19

Χαίρομαι που βοήθησα.

Μπορείς να δοκιμάσεις και το =TEXT(G2;"[$-F800]") & E2
που δεν επηρεάζεται από την γλωσσική έκδοση του Excel και τις τοπικές ρυθμίσεις, αλλά εμφανίζει την ημερομηνία στη γλώσσα των τοπικών ρυθμίσεων σαν
"ημέρα ημερομηνία μήνας έτος" Δηλαδή σε ελληνικό περιβάλλον θα εμφανίσει Τρίτη 28 Φεβρουαρίου 2012 και σε γαλλικό mardi 28 février 2012

Τα λέμε.

Βασίλης Κ. 28-02-12 19:23

Και τωρα Θαναση που καναμε το δυσκολο θα σε ρωτησω το τελευταιο το "Ευκολο" χαχαχαχα

Πως θα βαλουμε χρωμα και μεγεθος στην ημερομηνία ? πχ να την κανω bold με κοκκινο χρωμα και μεγαλυτερη ? φανταζομαι στην συνάρτηση =TEXT(G2;"ηη/μμ/εεεε") & E2 για τα Ελληνικα που εβαλα θα προσθεσω καποια μεταβλητη μεσα στην παρενθεση ?

gr8styl 29-02-12 17:10

Βασίλη,
με την HYPERLINK δεν γίνεται να ελέγξουμε την μορφοποίηση.
Αντίθετα με την VBA και το HTML Message body, μπορείς να ορίσεις μορφοποίηση κλπ, αρκεί να βάλεις τα κατάλληλα html tag πριν την ημερομηνία.
Το ζηττούμενο λοιπόν μπορεί να γίνει είτε αλλάζοντας τον κώδικα VBA είτε βάζοντας στο Ι2
<font color="red"><h1> και αλλάζοντας τον τύπο σε =I2&TEXT(G2;"ηη/μμ/εεεε") & E2

Καλή συνέχεια
Θανάση
ΥΓ. Στο άλλο θέμα με το "Πάρε τηλέφωνο" που το έμπλεξες πάλι με του Χρίστου και τους 6 μήνες πρόσεχε γιατί η 1/3/2012, είναι 11 μήνες μετά την 30/3/2011 αλλά και 11 μήνες μετά την 1/4/2011 !!! ίσως να πρέπει να ανοίξεις νέο θέμα και να διευκρινίσεις ξεκάθαρα τι θέλεις και τί ψάχνεις. !!!

Βασίλης Κ. 29-02-12 17:25

Ευχαριστώ Θανάση !

Το αλλο το θέμα το παλεψα και το εφερα στα μετρα μου ολα οκ

Σε/Σας ευχαριστω :thumbup::thumbup:

byblos 23-10-18 21:19

Έχω σε ένα κελί την ημερομηνία και θέλω να μετατρέπεται σε ένα άλλο κελί σε κείμενο και με κεφαλαία γράμματα.
Δηλαδή 23/10/2018 σε ΕΙΚΟΣΤΗ ΤΡΙΤΗ ΟΚΤΩΒΡΙΟΥ ΔΥΟ ΧΙΛΙΑΔΕΣ ΔΕΚΑ ΟΧΤΩ

Spirosgr 24-10-18 07:00

Υπάρχει αυτό:
http://www.ms-office.gr/forum/excel-...olografos.html

Για κεφαλαία βάλτο μέσα σε μια =Upper()

dimitrios65 30-09-21 22:34

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

kapetang 01-10-21 09:18

1 Συνημμένο(α)
Καλημέρα

Δες μια πρόταση στο συνημμένο.

Χρησιμοποιείται μορφοποίηση υπό όρους.


Η ώρα είναι 18:43.

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


Search Engine Optimization by vBSEO 3.3.2