Program/Skrypt który będzie automatycznie zmieniać nazwy plików

Dzień Dobry,

 

Mam taką potrzebę 

 

Mam powiedzmy 100 plików

 

w Formie 

List Intencyjny

List Intencyjny 2

List Intencyjny 3

(…)

 

I te pliki muszę wysyłać do naszych darczyńców. I teraz nie chce za każdym razem zmieniać nazwy pliku z  List Intencyjny 2 na List Intencyjny,  tylko chce aby program skrypt po usunięciu przeze mnie pliku   List Intencyjny,  zmieniał automatycznie nazwę następnego z   List Intencyjny 2  na  List Intencyjny

 

Każdy ten list jest inny od razu mówię, zaadresowany do konkretnej osoby

 

Serdecznie Pozdrawiam

 

S.G

 

 

Wiesz co to korespondencja seryjna ?

Ok, skoro chcemy się tak bawić

 

Proszę wstawić mi do korespondencji seryjnej drugi załącznik który jest taki sam dla wszystkich do tego treść do meila która nie jest załącznikiem. Jeśli na znasz darmowy sposób na to w office 2013, to proszę napisz. 

 

http://stackoverflow.com/questions/21634702/outlook-2010-macro-add-attachments-with-dynamic-file-name

Owszem, ale widzisz w dalszym ciągu pliki będą wysyłane z cyferkami a tego nie chce bo to wygląda nie profesjonalnie. 

Spróbuj skryptu z tej strony:

http://word.mvps.org/FAQs/MailMerge/MergeWithAttachments.htm

Z drobnymi modifikacjami:

 

Sub emailmergewithattachments()
Dim Source As Document, Maillist As Document, TempDoc As Document
Dim Datarange As Range
Dim i As Long, j As Long
Dim bStarted As Boolean
Dim oOutlookApp As Outlook.Application
Dim oItem As Outlook.MailItem
Dim mysubject As String, message As String, title As String, dirName As String, strName As String
Set Source = ActiveDocument
' Check if Outlook is running. If it is not, start Outlook
On Error Resume Next
Set oOutlookApp = GetObject(, "Outlook.Application")
If Err <> 0 Then
    Set oOutlookApp = CreateObject("Outlook.Application")
    bStarted = True
End If
' Open the catalog mailmerge document
With Dialogs(wdDialogFileOpen)
    .Show
End With
Set Maillist = ActiveDocument
' Show an input box asking the user for the subject to be inserted into the email messages
message = "Enter the subject to be used for each email message." ' Set prompt.
title = " Email Subject Input" ' Set title.
' Display message, title
mysubject = InputBox(message, title)
' Display message, title
message = "directory with for attachments np c:\folder name\"
dirName = InputBox(message, title)
message = "name of attachment np nazwa.pdf"
strName = InputBox(message, title)
' Iterate through the Sections of the Source document and the rows of the catalog mailmerge document,
' extracting the information to be included in each email.
MkDir "c:\tmp"
For j = 1 To Source.Sections.Count - 1
    Set oItem = oOutlookApp.CreateItem(olMailItem)
    With oItem
        .Subject = mysubject
        .Body = Source.Sections(j).Range.Text
        Set Datarange = Maillist.Tables(1).Cell(j, 1).Range
        Datarange.End = Datarange.End - 1
        .To = Datarange
        For i = 2 To Maillist.Tables(1).Columns.Count
            Set Datarange = Maillist.Tables(1).Cell(j, i).Range
            Datarange.End = Datarange.End - 1
        If j = 2 Then
        MkDir "c:\tmp\" & Datarange.Text
        Name dirName & "\" & Datarange.Text As "C:\tmp\" & Datarange.Text & "\" & strName
            .Attachments.Add Trim("C:\tmp\" & Datarange.Text & "\" & strName), olByValue, 1
        Else
            .Attachments.Add Trim(dirName & "\" & Datarange.Text), olByValue, 1
            End If
        Next i
        .Send
    End With
    Set oItem = Nothing
Next j
Maillist.Close wdDoNotSaveChanges
' Close Outlook if it was started by this macro.
If bStarted Then
    oOutlookApp.Quit
End If
MsgBox Source.Sections.Count - 1 & " messages have been sent."
'Clean up
Set oOutlookApp = Nothing
End Sub

Dobra…

 

Nazwy plików muszą być kolejne, wytłumaczę o co biega.

I będziesz dodawać po kolei, i ręcznie każdy załącznik.

A jak przypadkowo źle coś dodasz to nikt od tego momentu nie ma swojego załącznika

@Wredotka

Dzięki wielkie o to chodziło:) przerobiłem tylko skrypt aby nie usuwał ale przenosił do innego folderu.

O to mi chodziło super:)

 

@Drobok

Wysłałem ręcznie już ponad 2000meili

mam średnią 3 na minutę. Z początkowych 1/1 minutę. Uwierz skróciłem to jak mogłem.

Wołałbym oczywiście puścić to z automatu

 

A co do drugiego tego makra, to średnio rozumiem co dokładnie robi

A co do makra, czytałeś ten link ?

Masz coś takiego w tabeli:

adres_email załącznik_do_danego_adresata.pdf

adres_email2 załącznik_do_adresata2

No i to makro wysyła email z danym załącznikiem do adresata przypisanego do danego załącznika, dodając treść którą przecież możesz dodać na sztywno (bo niczym się nie różni).

Moja modyfikacja to pobranie nazwy pliku który chcesz wysłać, w sensie tworzę folder tymczasowy (który celowo się nie usuwa, bo nie mam na czym przetestować kodu),

w tym folderze tworzę indywidualne foldery dla każdego z plików (plik pobierany z załącznika ma taką samą nazwę jaką ma plik wysyłany) no i kopiuje tam plik pod nazwą którą mu narzucisz (czyli wszystkie pliki bd miały taką samą nazwę - twoje wymaganie).

A potem dodaje ten załącznik tak jak by to robił program na którym się wzorowałem.

Reasumując masz jakąś listę (musisz przecież jakoś te pliki dobierać do adresata), jak byś się uparł i miał dane adresata w pdf to mógłbyś se tą listę z automatu też wygenerować, no i wg tej listy sam się ten twój spam wysyła :stuck_out_tongue: Bez klikania, bez 3maili na minute :stuck_out_tongue:

Ok czyli rozumiem, że tworze tabele w wordzie i tam odpalam to makro tak?

Jeśli tak to mam taki błąd

 

http://answers.microsoft.com/en-us/office/forum/office_2010-word/mail-merge-with-attachments-office-2010-problem/0c390224-45e8-4cfc-b7f3-7113d66cf15f

Tak międzyczasie znalazłem trzeba dodać referencje.

 

 

Ale niestety dalej makro nie działa, uruchamia się poprawnie wskazuje na plik z tabelą wordowską, pyta o nazwę tematu i pisze po chwili, że wysłano 0 meili

Wprowadziłem drobne poprawki, w tabeli powinieneś mieć tylko nazwy plików (o folder źródłowy powinien zapytać program)

Niestety występuje błąd teraz przy Twojej poprawce. Proszę zapoznaj się z tym co dałem wyżej, bo może mam złą metodę czy coś

 

 

 

PS

 

Jeśli się poddajesz i nie wiesz jak Mi pomóc to napisz proszę, wrócę do ręcznego wysyłania:)

Nie siedze na forum cały czas i nie jestem twoim pracownikiem byś mnie poganiał. // poprawiłem

Ależ zrozumiałeś mnie źle, ja nic Ci nie każe i nie ponaglam, tylko myślałem, że już dałeś sobie spokój co było i tak ok bo dużo zrobiłeś.

 

Niestety mam dalej komunikat, że wysłało 0 meili może mam za nowego outlooka?