.To = mailAdresa
' kopie
'.CC = "a@volny.cz"
.To = mailAdresa nahradíš .To = "honzo@gmail.net"
M@citovat
Zaslal/a
25.7.2014 13:14Ahoj, potreboval by som zmeniť postup makra nasledovne : teraz je tam definovaný postup, že berie mailovu adresu z riadkov 20,20 a ja potrebujem aby bola pevne stanovená jedna adresa : napr. honzo@gmail.net (problém je v riadku mailADRESA
Vedel by mi niekto poradiť ? ďakujem.
Sub EmailSKLAD()
Dim Resp As Integer
Dim poleADR(9, 1) As String, polozka As Variant
Dim poleZAK(7, 7) As String, mailAdresa As String, polePOPIS(7) As String
Dim text_zpravy As String, P1 As Variant, P2 As Variant
Dim VJ As Object
Set VJ = Worksheets("Vyjadreni")
' ----------------------------------------------------------------------------------
' --- v mailu MUSÍ být nastaveno takové písmo, které má stejnou šířku každého znaku
' --- to je například Courier New, nebo Consolas-----------------------------------
' ----------------------------------------------------------------------------------
' ---jinak bude text mailu rozházený -----------------------------------------------
Resp = MsgBox(prompt:="ANO - zkontrolovat email, NE - bez kontroly, nebo STORNO.", _
Title:="KONTROLA EMAILU PŘED ODESLÁNÍM ?", _
Buttons:=3 + 32)
' -----------------------------------------
' --- načtení potřebných hodnot a adres ---
' -----------------------------------------
With VJ
' ------------------------------------------------------------
mailAdresa = .Cells(20, 20)
' ---------------------------------------------------------
polozka = 0
For pocetPolozek = 37 To 51 Step 2
If .Cells(pocetPolozek, 2) = "" Then Exit For
poleZAK(polozka, 1) = .Cells(pocetPolozek, 2) 'cislo SKP
poleZAK(polozka, 2) = .Cells(pocetPolozek, 4) 'nazev vyrobku
poleZAK(polozka, 3) = .Cells(pocetPolozek, 7) 'počet kusu
poleZAK(polozka, 4) = .Cells(pocetPolozek, 8) 'čísko dan. dokl.
poleZAK(polozka, 5) = .Cells(pocetPolozek, 11) 'způsob vyřízení
poleZAK(polozka, 6) = .Cells(pocetPolozek, 14) 'vyjádření
' --- kontrola počtu reklamací ----------------------
If poleZAK(polozka, 2) = "" And poleZAK(polozka, 3) = "" Then Exit For
polozka = polozka + 1
Next pocetPolozek
polePOPIS(0) = "ČÍSLO VÝROBKU (SKP) "
polePOPIS(1) = "NÁZEV VÝROBKU "
polePOPIS(2) = "POČET KUSŮ "
polePOPIS(3) = "ČÍSLO DAŇ. DOKLADU "
polePOPIS(4) = "ZPŮSOB VYŘÍZENÍ REKLAMACE "
polePOPIS(5) = "VYJÁDŘENÍ "
End With
' --- nastavení stejné délky polí ----------------------------
For P1 = 0 To 7
For P2 = 0 To 7
Do While Len(poleZAK(P1, P2)) < 28
poleZAK(P1, P2) = poleZAK(P1, P2) & " "
Loop
Next P2
Next P1
' -----------------------------------------------
' --- vytvoření vlastního textu mailové zpráy ---
' -----------------------------------------------
' --- CHr(13) = další řádek ------------------
text_zpravy = "Automaticky generovaný email - Informace o nové reklamaci / servisní opravě:" & Chr(13) _
& Chr(13) _
& poleADR(1, 0) & " " & poleADR(1, 1) & Chr(13) _
& poleADR(2, 0) & " " & poleADR(2, 1) & Chr(13) _
& poleADR(3, 0) & " " & poleADR(3, 1) & Chr(13) _
& poleADR(4, 0) & " " & poleADR(4, 1) & Chr(13) _
& poleADR(5, 0) & " " & poleADR(5, 1) & Chr(13) _
& poleADR(7, 0) & " " & poleADR(7, 1) & Chr(13) _
& poleADR(8, 0) & " " & poleADR(8, 1) & Chr(13) _
& Chr(13) _
& poleADR(9, 0) & " " & poleADR(9, 1) & Chr(13) _
& poleADR(0, 0) & " " & poleADR(0, 1) & Chr(13) _
& Chr(13) _
& poleADR(6, 0) & " " & poleADR(6, 1) & Chr(13) _
& Chr(13)
For Z = 0 To polozka - 1
dalsi_text = "---- " & Z + 1 & ". reklamace ------------------------------------------ " & Chr(13) _
& polePOPIS(0) & ": " & poleZAK(Z, 1) & Chr(13) _
& polePOPIS(1) & ": " & poleZAK(Z, 2) & Chr(13) _
& polePOPIS(2) & ": " & poleZAK(Z, 3) & Chr(13) _
& polePOPIS(3) & ": " & poleZAK(Z, 4) & Chr(13) _
& polePOPIS(4) & ": " & poleZAK(Z, 5) & Chr(13) _
& polePOPIS(5) & ": " & poleZAK(Z, 6) & Chr(13) _
& "------------------------------------------------------------ " & Chr(13)
text_zpravy = text_zpravy & dalsi_text
Next Z
' & "Vystavil : "
Select Case Resp
'ano ----------------------------
Case Is = 6
Dim myOutlook As Object
Dim myMailItem As Object
Set OUTLApp = CreateObject("Outlook.Application")
Set OUTLNewMail = OUTLApp.CreateItem(olMailItem)
' pokud se má odeslat i aktivní soubor jako příloha, tak
' fName = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name
With OUTLNewMail
' adresát nebo více oddělení čárkou
.To = mailAdresa
' kopie
'.CC = "a@volny.cz"
' předmět mailu
.Subject = "Reklamace " & Worksheets("Vyjadreni").Cells(6, 10)
.Body = text_zpravy
' .Attachments.Add fName
.Display
End With
Set OUTLNewMail = Nothing
Set OUTLApp = Nothing
Set OUTLAttach = Nothing
Set OUTLMess = Nothing
Set OUTLNSpace = Nothing
'NE -------------------------
Case Is = 7
Dim myOutlok As Object
Dim myMailItm As Object
Set OUTLApp = CreateObject("Outlook.Application")
Set OUTLNewMail = OUTLApp.CreateItem(olMailItem)
' pokud se má odeslat i aktivní soubor jako příloha, tak
' fName = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name
With OUTLNewMail
' adresát nebo více oddělení čárkou
.To = mailAdresa
' kopie
'.CC = "a@volny.cz"
' předmět mailu
.Subject = "Reklamace " & Worksheets("Vyjadreni").Cells(6, 10)
.Body = text_zpravy
' .Attachments.Add fName
On Error GoTo errHlaseni
druhyPokus:
.Send
End With
Set OUTLNewMail = Nothing
Set OUTLApp = Nothing
Set OUTLAttach = Nothing
Set OUTLMess = Nothing
Set OUTLNSpace = Nothing
'CANCEL --------------------------
Case Is = 2
MsgBox prompt:="Email byl zrušen.", _
Title:="EMAIL zrušen", _
Buttons:=64
End Select: Exit Sub
errHlaseni:
MsgBox "Neni spuštěn Outlook, spouštím ", vbCritical, "CHYBA"
Shell ("OUTLOOK")
GoTo druhyPokus
End Sub
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.