Komunikujete so zákazníkmi a používate viacero typov komunikácie podľa potreby, či typu zákazníka? Urobte to na 1-2 kliky:

1. klik – vyberte si či chcete poslať mail, alebo vytlačiť list
2. klik – vyberte si variant textu (napr. podľa významnosti zákazníka)

Stačí Vám jediný Word dokument a ten Vám vám vytlačí list, ale i pošle mail s variantou textu ktorú požadujete v zlomku sekundy.

Dva výstupy z jedného dokumentu: dokument pripravený na tlač, alebo mail


Stiahnuť

Stiahnite si jednoduchú funkčnú pomôcku
(vrátane funkčného makra)

Ako to funguje?

Stačí využiť automatizáciu MS Word a jednotlivé časti textu označiť podľa varianty v ktorej budú použité pomocou polí “DOCVARIABLE” napr. “a, b, c…” časti ktoré nebudú označené budú vo všetkých variantách.

Polia vložíte cez Vložiť > Rýchle čast > Pole… > DocVariable. S  nimi už potom bude pracovať jednoduché makro.

Procedúra pre tlač
Sub VyberNaTlac()
'Vytlačí /pripraví na tlač len časť textu podľa vybraných preferencií

Dim ToShow As Integer
Dim myPara As Paragraph
Dim myRange As Range
Set myRange = Range

On Error GoTo ErrorHandler
'reset - nastavý celý text ako "neskrytý"
ActiveDocument.Range.Font.Hidden = False

ActiveDocument.Variables("a").Value = 1
ActiveDocument.Variables("b").Value = 2
ActiveDocument.Variables("c").Value = 3

ActiveDocument.Fields.Update

UserForm1.Show

ToShow = selekcia
ActiveDocument.Fields.Update

If ToShow = 0 Then MsgBox "Vyber si jednu z 3 možností.", vbOKOnly, "Error"

'nastavenie viditeľných riadkov podľa výberu
On Error Resume Next
For Each myPara In ActiveDocument.Paragraphs
   If InStr(1, myPara, ToShow) Then
      If ToShow = myPara.Range.Characters(1) Then
         myRange.SetRange start:=myPara.Range.start, _
           End:=myPara.Range.start + 36
         myRange.Font.Hidden = True
      End If
   End If
Next

'Ak vstupný parameter nezodpovedá možnostiam na výber nevytlačí sa nič

For Each myPara In ActiveDocument.Paragraphs
   If myPara.Range.Characters.Count <> 1 Then
      If IsLetter(myPara.Range.Characters(1)) = False Then
         If myPara.Range.Characters(1) <> ToShow Then
            myPara.Range.Font.Hidden = True
         End If
      End If
   End If
Next myPara

On Error Goto 0

If Application.PrintPreview = False Then
   ActiveDocument.PrintPreview
   ActiveWindow.ActivePane.View.Zoom.Percentage = 100
End If

ActiveDocument.Fields.Update

Exit Sub

ErrorHandler:
Select Case Err.Number
Case Is = 13
   MsgBox "Vyber si jednu z 3 možností.", vbOKOnly, "Error"
   Exit Sub
Case Else
   MsgBox Err.Description
   ActiveDocument.Range.Font.Hidden = False
   Exit Sub
End Select

End Sub
Procedúra pre vygenerovanie e-mailu
Sub sendAsMail()

Dim myPara As Paragraph
Dim myRange As Range
Dim boldPred As String
Dim boldZa As String
Dim mailWord As Object

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

ActiveDocument.Range.Font.Hidden = False

ActiveDocument.Variables("a").Value = 1
ActiveDocument.Variables("b").Value = 2
ActiveDocument.Variables("c").Value = 3

ActiveDocument.Fields.Update

UserForm1.Show

PocOdsekov = ActiveDocument.Paragraphs.Count

With ThisDocument
For i = 2 To PocOdsekov
   .Paragraphs(i).Range.Select
   If Not IsLetter(.Paragraphs(i).Range.Characters(1)) Then
      If selekcia = .Paragraphs(i).Range.Characters(1) Then
         Set myRange = .Paragraphs(i).Range
         myRange.SetRange start:=.Paragraphs(i).Range.start _
         + 35, End:=.Paragraphs(i).Range.End
         textik = textik & myRange & "<br>"
      End If
   Else
      textik = textik & Selection & "<br>"
   End If
Next i
End With

strbody = textik

On Error Resume Next
With OutMail
.BodyFormat = 1
.Display
.To = Email
.CC = ""
.BCC = ""
.Subject = ThisDocument.Paragraphs(1).Range
.HTMLBody = strbody
.Attachments.Add tempPDFFileName
.Display 'or use .Send
End With

Set OutMail = Nothing
Set OutApp = Nothing

End Sub
Kód formulára na výber varianty textu
Private Sub UserForm_Initialize()

With Me.cboVyberVar
   .AddItem "1"
   .AddItem "2"
   .AddItem "3"

   .List(0) = "VIP Klient"
   .List(1) = "TOP klient"
   .List(2) = "bežný klient"
End With

End Sub

Private Sub cbtnOK_Click()

Select Case cboVyberVar
   Case "VIP Klient"
      selekcia = 1
   Case "TOP klient"
      selekcia = 2
   Case "bežný klient"
      selekcia = 3
End Select

Unload Me

End Sub

Private Sub cbtnCancel_Click()
   End
End Sub
Pre fungovanie funkcionality generovania mailov musíte mať aktivovanú knižnicu Microsoft Outlook Object Library (VBA editor > Tools > References)