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

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #11  
Παλιά 24-02-12, 19:52
Το avatar του χρήστη gr8styl
Super Moderator
Όνομα: Θανάσης Στυλιανίδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-10-2009
Περιοχή: Βρυξέλλες, Βέλγιο
Μηνύματα: 758
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από Tasos Εμφάνιση μηνυμάτων
Δείτε στo συνημμένο μερικά παραδείγματα αποστολής E-Mail με τη μέθοδο Hypelink()
και με τη βοήθεια της VBA (προϋποθέτει εγκατεστημένο Outlook καθώς και ένα λογαριασμό E-Mail) .
Τάσο πληροφοριακά σου λέω ότι σε μη ελληνικό περιβάλλον (windows XP EN και Excel 2003 EN) τα ελληνικά στο θέμα/subject και στο μήνυμα/message body οι ελληνικοί χαρακτήρες εμφανίζονται "κινέζικα" (oxi unicode)

Τα λέμε
Θανάσης
Απάντηση με παράθεση
  #12  
Παλιά 24-02-12, 23:01
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

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

Μπορείς να δοκιμάσεις τον τύπο:
=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.

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

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #13  
Παλιά 25-02-12, 11:45
Το avatar του χρήστη gr8styl
Super Moderator
Όνομα: Θανάσης Στυλιανίδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-10-2009
Περιοχή: Βρυξέλλες, Βέλγιο
Μηνύματα: 758
Προεπιλογή

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

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

Ευχαριστώ τα λέμε (εντός του 2012 ελπίζω. Χαθήκαμε ρε φίλε ).
Θανάσης
ΥΓ Θα σου πρότεινα να το ανεβάσεις στα χρήσιμα.
Απάντηση με παράθεση
  #14  
Παλιά 25-02-12, 13:12
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

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

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

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

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

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

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

Sub Test
MsgBox "Γράφω ελληνικά"
End sub
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #15  
Παλιά 25-02-12, 14:11
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

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

Θανάση μου,
με χρήση 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.

Τα λέμε...

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #16  
Παλιά 27-02-12, 11:22
Βασίλης Κ.
Guest
 
Μηνύματα: n/a
Προεπιλογή

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

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

Ευχαριστώ πολυ πολυ
Απάντηση με παράθεση
  #17  
Παλιά 28-02-12, 08:42
Βασίλης Κ.
Guest
 
Μηνύματα: n/a
Προεπιλογή

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

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

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


Ευχαριστώ

ΥΓ : Προσπάθησα να παντρεψω και του Θαναση μαζι με την δικη σου αλλά κατι δεν παιζει σωστα φανταζομαι ειναι λογω VB :p
Απάντηση με παράθεση
  #18  
Παλιά 28-02-12, 14:47
Το avatar του χρήστη gr8styl
Super Moderator
Όνομα: Θανάσης Στυλιανίδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-10-2009
Περιοχή: Βρυξέλλες, Βέλγιο
Μηνύματα: 758
Προεπιλογή

Βασίλη για την περίπτωση που δημιουργείς 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.
Απάντηση με παράθεση
  #19  
Παλιά 28-02-12, 15:19
Βασίλης Κ.
Guest
 
Μηνύματα: n/a
Προεπιλογή

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

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

Εσυ αυτο που μου λες ειναι για το δικο σου παράδειγμα ετσι ?
Απάντηση με παράθεση
  #20  
Παλιά 28-02-12, 16:07
Το avatar του χρήστη gr8styl
Super Moderator
Όνομα: Θανάσης Στυλιανίδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-10-2009
Περιοχή: Βρυξέλλες, Βέλγιο
Μηνύματα: 758
Προεπιλογή

Είναι παντός καιρού.
Ναι για την προσέγγιση Υπερσύνδεσης αλλά και για το html του Τάσου.
Συνημμένα Αρχεία
Τύπος Αρχείου: xls xlMail_date.xls (88,5 KB, 42 εμφανίσεις)
Απάντηση με παράθεση
Απάντηση στο θέμα

Ετικέτες
hyperlinks, εξωτερικές αναφορές, υπερσυνδέσεις


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[ Φόρμες ] Μορφοποίηση όταν δεν υπάρχει στη λίστα mousatos Access - Ερωτήσεις / Απαντήσεις 2 16-09-14 09:09
[ Φόρμες ] Όταν δεν υπάρχει στη λίστα mousatos Access - Ερωτήσεις / Απαντήσεις 2 16-09-14 08:06
Ειδοποίηση λήξης σε φόρμα stavross Access - Ερωτήσεις / Απαντήσεις 5 22-01-13 18:07
[VBA] Ειδοποίηση για την εισαγωγή όνομα επικεφαλίδας devcon Excel - Ερωτήσεις / Απαντήσεις 2 26-11-11 06:23
[ Εκθέσεις ] Όταν δεν υπάρχουν δεδομένα... Meteora Access - Ερωτήσεις / Απαντήσεις 5 19-02-10 14:40


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