Forum

Αναζήτηση στο ms-office.gr

Πάμε!
ms-office.gr > Forum > Microsoft Outlook > Outlook - Ερωτήσεις / Απαντήσεις > Εξαγωγή συνημμένων από το Outlook σε φάκελο

Outlook - Ερωτήσεις / Απαντήσεις Γενικά θέματα γύρω από το Microsoft Outlook.

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #11  
Παλιά 23-03-11, 23:43
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-09-2010
Περιοχή: Θεσσαλονίκη
Μηνύματα: 46
Προεπιλογή

Τάσο σ' ευχαριστώ πολύ.

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

Φιλικά
Γιώργος
Απάντηση με παράθεση
  #12  
Παλιά 24-03-11, 10:06
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 1.328
Προεπιλογή

Καλημέρα!

Έτσι:

Κώδικας:
Option Explicit

Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" ( _
                                             ByVal lpPath As String) As Long

Const BadChars = "\/:*?""<>|"

Sub SaveMyAttachments(eID$)
    Const RootFolder = "C:\My_Outlook_Attatchments\"
    Const xlFolder = "\Excel\"
    Const wdFolder = "\Word\"
    Const dbFolder = "\Databases\"
    Const ppFolder = "\PowerPoint\"
    Const SubjectText = "Reports"

    Dim oNewMail As MailItem, sfolder$, itm As Attachment, _
        Ext$, i%, msg$, AtsFilename$, FrientlySenderName$

    Set oNewMail = Application.Session.GetItemFromID(eID)
    msg = "Followed Attatchments have been moved to folder:" & vbCrLf
    With oNewMail
        Debug.Print .SenderEmailAddress
        Debug.Print .SenderName
        
        If .Subject Like "*" & SubjectText & "*" Then 
        'ή If .Subject = SubjectText Then  (για ακριβή αντιστοίχιση)

            For i = .Attachments.Count To 1 Step -1
                Set itm = .Attachments(i)
                Ext = Right(itm.FileName, 4)
                If Ext Like "*" & "xl" & "*" Then
                    sfolder = xlFolder
                ElseIf Ext Like "*" & "doc" & "*" Then
                    sfolder = wdFolder
                ElseIf Ext Like "*" & "pp" & "*" Then
                    sfolder = ppFolder
                ElseIf Ext Like "*" & "db" & "*" Then
                    sfolder = dbFolder
                Else
                    sfolder = vbNullString
                End If
                If sfolder <> vbNullString Then
                    If Trim(.SenderName) <> vbNullString Then
                        FrientlySenderName = RemoveBadChars(.SenderName)
                    Else
                        FrientlySenderName = vbNullString
                        sfolder = Right(sfolder, Len(sfolder) - 1)
                    End If
                    MakeSureDirectoryPathExists RootFolder & FrientlySenderName & sfolder
                    AtsFilename = RootFolder & FrientlySenderName & sfolder & "(" & Replace(Replace( _
                                                          .CreationTime, ":", "_"), "/", "_") & ")_" & itm.FileName
                    itm.SaveAsFile AtsFilename
                    msg = msg & itm.FileName & " at: " & sfolder & vbCrLf
                    .Attachments.Remove itm.Index
                End If
            Next
            If sfolder <> vbNullString Then
                .Body = msg & vbCrLf & .Body
                .Save
            End If
        End If
    End With
End Sub

Function RemoveBadChars(ByRef theSenderName As String) As String
    Dim i As Integer
    For i = 1 To Len(theSenderName )
        If InStr(1, BadChars, Mid(theSenderName, i, 1)) > 0 Then
            theSenderName = Replace(theSenderName , Mid(theSenderName , i, 1), "_")
        End If
    Next
    theSenderName = Replace(theSenderName , " ", "_")
    RemoveBadChars = theSenderName 
End Function
Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών σε VB.Net, Access, Excel, Outlook, Word

Τελευταία επεξεργασία από το χρήστη Tasos : 24-03-11 στις 16:15.
Απάντηση με παράθεση
  #13  
Παλιά 24-03-11, 15:25
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-09-2010
Περιοχή: Θεσσαλονίκη
Μηνύματα: 46
Προεπιλογή

Μου βγάζει μύνημα
Run-time error '91':
Object variable or With block variable not set
Επιλέγοντας Debug μου κτρινίζει τη γραμμή κώδικα
Set oNewMail = Application.Session.GetItemFromID(itm.EntryID)
Τι δεν έχω κάνει καλά.

Γιώργος
Απάντηση με παράθεση
  #14  
Παλιά 24-03-11, 16:19
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 1.328
Προεπιλογή

Καλησπέρα Γιώργο μου!

Άλλαξε το itm.EntryID με το eID.

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών σε VB.Net, Access, Excel, Outlook, Word
Απάντηση με παράθεση
  #15  
Παλιά 24-03-11, 21:00
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-09-2010
Περιοχή: Θεσσαλονίκη
Μηνύματα: 46
Προεπιλογή

Τάσο ευχαριστώ.
Κάτι τελευταίο, στη γραμμή του κώδικα που γράφει
msg = msg & itm.FileName & " at: " & sfolder & vbCrLf υπάρχει κάποι μπέρδεμα αλλά διόρθώνεται εύκολα. Πάρα ταύτα στο body του Mail δεν γράφει το πρόθεμα (CreationTime) που παίρνουν τα αρχεία.
Πως διορθώνεται αυτό.

Γιώργος
Απάντηση με παράθεση
  #16  
Παλιά 25-03-11, 13:24
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 1.328
Προεπιλογή

Καλησπέρα Γιώργο!
Τώρα που βρήκα λίγο χρόνο έφτιαξα το παρακάτω:
Κώδικας:
Option Explicit

Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" ( _
                                             ByVal lpPath As String) As Long

Const BadChars = "\/:*?""<>|"

Sub SaveMyAttachments(eID$)
    Const RootFolder = "C:\My_Outlook_Attatchments\"
    Const xlFolder = "\Excel\"
    Const wdFolder = "\Word\"
    Const dbFolder = "\Databases\"
    Const ppFolder = "\PowerPoint\"
    Const SubjectText = "Reports"

    Dim oNewMail As MailItem, sfolder$, itm As Attachment, _
        Ext$, i%, msg$, AtsFilename$, FrientlySenderName$
        
    Set oNewMail = Application.Session.GetItemFromID(eID)
    
    With oNewMail
    
        If .Subject Like "*" & SubjectText & "*" Then
            '        ή If .Subject = SubjectText Then  (για ακριβή αντιστοίχιση)
                FrientlySenderName = RemoveBadChars(.SenderName)

            msg = "Followed Attatchments have been moved to folder:&nbsp;<a href='" & _
                  RootFolder & FrientlySenderName & "'>" & _
                  IIf(FrientlySenderName = vbNullString, RootFolder, FrientlySenderName) _
                & "</a><br><ul>"

            For i = .Attachments.Count To 1 Step -1
                Set itm = .Attachments(i)
                Ext = Right(itm.FileName, 4)
                If Ext Like "*" & "xl" & "*" Then
                    sfolder = xlFolder
                ElseIf Ext Like "*" & "doc" & "*" Then
                    sfolder = wdFolder
                ElseIf Ext Like "*" & "pp" & "*" Then
                    sfolder = ppFolder
                ElseIf Ext Like "*" & "db" & "*" Then
                    sfolder = dbFolder
                Else
                    sfolder = vbNullString
                End If
                
                If sfolder <> vbNullString Then

                    MakeSureDirectoryPathExists RootFolder & FrientlySenderName & sfolder
                    
                    AtsFilename = RootFolder & FrientlySenderName & sfolder _
                                  & "(" & Replace(Replace(.CreationTime, ":", "_"), "/", "_") & ")_" _
                                  & itm.FileName

                    itm.SaveAsFile AtsFilename

                    msg = msg & "<li><a href='" & RootFolder & FrientlySenderName & sfolder & _
                          "'>" & Replace(sfolder, "\", vbNullString) & " : </a>&nbsp;<a href='" & _
                          AtsFilename & "'>" & itm.FileName & _
                          "</a>" & "</li>"  ' "&nbsp;Date:&nbsp;" & Now & "</li>"   'Αντικαθιστά το & "</li>" 
                                                                  'για να εμφανίζει την ημερομηνία & ώρα

                    .Attachments.Remove itm.Index
                End If
            Next
            
            If sfolder <> vbNullString Then
                .BodyFormat = olFormatHTML
                .HTMLBody = msg & vbCrLf & .HTMLBody
                .Save
            End If
            
        End If
        
    End With
End Sub
Δοκίμασε το και τα λέμε.

Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών σε VB.Net, Access, Excel, Outlook, Word

Τελευταία επεξεργασία από το χρήστη Tasos : 25-03-11 στις 13:39.
Απάντηση με παράθεση
  #17  
Παλιά 29-03-11, 01:04
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-09-2010
Περιοχή: Θεσσαλονίκη
Μηνύματα: 46
Προεπιλογή

Τάσο σ΄ ευχαριστώ πολύ.
Δουλεύει απόλυτα.
Το προσάρμοσα και για άλους τύπους αρχείων και όλα καλά.
Και πάλι σ' ευχαριστώ

Γιώργος
Απάντηση με παράθεση
Απάντηση στο θέμα

Εργαλεία Θεμάτων
Τρόποι εμφάνισης

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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Επιστολόχαρτο στο Outlook soessartite Outlook - Ερωτήσεις / Απαντήσεις 11 07-04-12 19:16
[VBA] ΛΗΞΙΑΡΙΟ ΑΠΟ EXCEL ΣΕ OUTLOOK mak Excel - Ερωτήσεις / Απαντήσεις 6 05-07-11 18:18
Πρόβλημα στο άνοιγμα του Outlook manolis Outlook - Ερωτήσεις / Απαντήσεις 5 02-04-11 15:53
Outlook custom Forms ktmrider Outlook - Ερωτήσεις / Απαντήσεις 6 18-03-11 11:42
webbrowser και outlook σε φόρμα atlasgr Access - Ερωτήσεις / Απαντήσεις 3 29-06-09 20:02


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