Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Rezervna kopija radne knjige i slanje kao attachment

[es] :: Office :: Excel :: Rezervna kopija radne knjige i slanje kao attachment

[ Pregleda: 2766 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

2012

Član broj: 296004
Poruke: 248



+926 Profil

icon Rezervna kopija radne knjige i slanje kao attachment23.02.2015. u 14:32 - pre 110 meseci
Prvo da napomenem da sam detalnji pretrazio ceo Excel podforum pre postavljanja ovog pitanja. Iskreno verujem da je pitanje zanimljivo i da cemo zajedno doci do resenja.

Imam jednu excel aplikaciju (to je izvestaj) koji se svakodnevno dopunjuje, po zavrsetku se izmene snime i taj deo savrseno radi, tu nemam pitanja. Medjutim ostaju sledeci problemi, po zavrsetku izvestaja izvestaj zelim:
- snimiti na drugoj particiji (ali samo value i da se zadrzi izgled - formating, bez formula)
- dokument treba poslati meilom ( ali zelim poslati samo value i format, bez formula)

Trazio sam po internetu, kupio sam i jednu veoma prakticnu knjigu u vezi toga, ali mi sve to ne resava problem. Ja cu zakaciti fajlove koji delimicno resavaju problem, kao i sam code, pa da probamo da nadjemo resenje, verujem da se cesto ovakva potreba moze javiti i drugim diskutantima.

Ovo je macro koji pravi rezervnu kopiju dokumenta sa dodavanjem datuma. Gde u ovom kodu dodati lokaciju i gde treba dodati da kopirani fajl sadrzi samo value vrednosti i da se zadrzi izgled (format)


Code:
Sub Macro15()

'Step 1: Save workbook with new file name
ThisWorkbook.SaveCopyAs _
Filename:=ThisWorkbook.Path & "\" & _
Format(Date, "MM-DD-YY") & " " & _
ThisWorkbook.Name

End Sub


Sledeci makro je za slanje aktivne knjige (workbook) kao attachment

Code:
Sub Macro85()

'Step 1:  Declare your variables
    Dim OLApp As Outlook.Application
    Dim OLMail As Object
    
    
'Step 2:  Open Outlook start a new mail item
    Set OLApp = New Outlook.Application
    Set OLMail = OLApp.CreateItem(0)
    OLApp.Session.Logon
    
    
'Step 3:  Build your mail item and send
    With OLMail
    .To = "[email protected][email protected]"
    .CC = ""
    .BCC = ""
    .Subject = "This is the Subject line"
    .Body = "Hi there"
    .Attachments.Add ActiveWorkbook.FullName
    .Display  'Change to .Send to send without reviewing
    End With
    
    
'Step 4:  Memory cleanup
    Set OLMail = Nothing
    Set OLApp = Nothing

End Sub


Opet imam problem sto salje kompletnu knjigu sa formulama, a meni treba samo value vrednosti

Sledeci makro salje pojedinacnu stranu iz knjige

Code:
Sub Macro87()

'Step 1:  Declare your variables
    Dim OLApp As Outlook.Application
    Dim OLMail As Object
    
    
'Step 2:  Copy Worksheet, paste to new workbook, and save it
    Sheets("Revenue Table").Copy
    ActiveWorkbook.SaveAs ThisWorkbook.Path & "\TempRangeForEmail.xlsx"
    
    
'Step 3:  Open Outlook start a new mail item
    Set OLApp = New Outlook.Application
    Set OLMail = OLApp.CreateItem(0)
    OLApp.Session.Logon
    
    
'Step 4:  Build your mail item and send
    With OLMail
    .To = "[email protected][email protected]"
    .CC = ""
    .BCC = ""
    .Subject = "This is the Subject line"
    .Body = "New Workbook Attached"
    .Attachments.Add (ThisWorkbook.Path & "\TempRangeForEmail.xlsx")
    .Display  'Change to .Send to send without reviewing
    End With
    
    
'Step 5:  Delete the temporary Excel file
    ActiveWorkbook.Close SaveChanges:=True
    Kill ThisWorkbook.Path & "\TempRangeForEmail.xlsx"
    
    
'Step 6:  Memory cleanup
    Set OLMail = Nothing
    Set OLApp = Nothing
    
End Sub


Ali ni ovo ne vrsi posao zato sto u knjizi (izvestaju ima 4-5 strana (sheets)

Poslednji makro salje odredjeno podrucje iz dokumenta (knjige) kao attachment

Code:
Sub Macro86()

'Step 1:  Declare your variables
    Dim OLApp As Outlook.Application
    Dim OLMail As Object
    
    
'Step 2:  Copy range, paste to new workbook, and save it
    Sheets("Revenue Table").Range("A1:E7").Copy
    Workbooks.Add
    Range("A1").PasteSpecial xlPasteValues
    Range("A1").PasteSpecial xlPasteFormats
    ActiveWorkbook.SaveAs ThisWorkbook.Path & "\TempRangeForEmail.xlsx"
    
    
'Step 3:  Open Outlook start a new mail item
    Set OLApp = New Outlook.Application
    Set OLMail = OLApp.CreateItem(0)
    OLApp.Session.Logon
    
    
'Step 4:  Build your mail item and send
    With OLMail
    .To = "[email protected][email protected]"
    .CC = ""
    .BCC = ""
    .Subject = "This is the Subject line"
    .Body = "Hi there"
    .Attachments.Add (ThisWorkbook.Path & "\TempRangeForEmail.xlsx")
    .Display  'Change to .Send to send without reviewing
    End With
    
    
'Step 5:  Delete the temporary Excel file
    ActiveWorkbook.Close SaveChanges:=True
    Kill ThisWorkbook.Path & "\TempRangeForEmail.xlsx"
    
    
'Step 6:  Memory cleanup
    Set OLMail = Nothing
    Set OLApp = Nothing
    
End Sub


U ovom makrou ima navedeno da ono sto se salje bude values i da bude formatirano, ali je problem sto makro salje samo odredjeni deo knjige.

Kako da se iskombinuje da se naprave dva odvojena makroa koji ce snimiti rezervnu kopiju i drugi koji ce poslati kopiju meilom, ali da to u oba slucaja bude samo value bez formula.



Prikačeni fajlovi
 
Odgovor na temu

2012

Član broj: 296004
Poruke: 248



+926 Profil

icon Re: Rezervna kopija radne knjige i slanje kao attachment25.02.2015. u 02:59 - pre 110 meseci
Skoro da sam resio problem, ostao mi je samo jos jedan problem.

Imam Macro koji snima i salje zeljenu stranu (sheet) iz Excel dokumenta (radnje knjige), pre slanja napravi kopiju na zeljenoj lokaciji i to je sve kako treba. Evo Macro-a

Code:
Sub EmailWithOutlook()
    Dim oApp As Object
    Dim oMail As Object
    Dim WB As Workbook
    Dim FileName As String
    Dim wSht As Worksheet
    Dim shtName As String

    Application.ScreenUpdating = False

    ' Make a copy of the active worksheet
    ' and save it to a temporary file
    ActiveSheet.Copy
    Set WB = ActiveWorkbook

    FileName = WB.Worksheets(1).Name
    On Error Resume Next
    Kill "C:\" & FileName
    On Error GoTo 0
    WB.SaveAs FileName:="C:\" & FileName

    'Create and show the Outlook mail item
    Set oApp = CreateObject("Outlook.Application")
    Set oMail = oApp.CreateItem(0)
    With oMail
        'Uncomment the line below to hard code a recipient
        '.To = "[email protected]"
        'Uncomment the line below to hard code a subject
        '.Subject = "Subject Line"
        'Uncomment the lines below to hard code a body
        '.body = "Dear John" & vbCrLf & vbCrLf & _
          '"Here is the file you asked for"
        .Attachments.Add WB.FullName
        .Display
    End With

    'Delete the temporary file
    WB.ChangeFileAccess Mode:=xlReadOnly
    Kill WB.FullName
    WB.Close SaveChanges:=False

    'Restore screen updating and release Outlook
    Application.ScreenUpdating = True
    Set oMail = Nothing
    Set oApp = Nothing
End Sub


Treba mi samo pomoc kako da u ime fajla (excel sheet) dodam datum. Moze ispred imena, moze iza imena.
Tako da mogu dobiti na pr: 25-02-2015 Izvestaj.xlsx ili Izvestaj 25-02-2015.xlsx
 
Odgovor na temu

pera68
Bačka Palanka

Član broj: 98559
Poruke: 121
*.scansafe.net.



+9 Profil

icon Re: Rezervna kopija radne knjige i slanje kao attachment27.02.2015. u 20:38 - pre 110 meseci
Dim adresa As String, Folder As String
adresa = "H:\Bekap excel\"
Folder = Dir(adresa, vbDirectory)
If (Folder = "") Then MkDir (adresa)
ActiveWorkbook.SaveCopyAs adresa & ActiveWorkbook.Name & " " & Format(Now(), "yyyy.mm.dd_hh.mm") & ".xls"
ActiveWorkbook.Save
 
Odgovor na temu

[es] :: Office :: Excel :: Rezervna kopija radne knjige i slanje kao attachment

[ Pregleda: 2766 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.