Sub Dopln_email()
'Pokud ve sloupci "B" není email tak se = hodnota buňky ve sloupci "A" + "1csc.cz" bez diakritiky
Dim radek As Long
Dim posledni As Long
posledni = Sheets("otevřené akce").Cells(Rows.Count, 1).End(xlUp).Row
For radek = 2 To posledni
Range("B" & radek).Value = REMOVE_DIACRITICS(Range("A" & radek)) & "@1csc.cz"
Next radek
End Sub
Trochu sem upravil Lugrův soubor, aby nebyly potřeba pomocné vzorce.
nebo tak
Tak to rozhodnutí je pouze na tobě. Sama musíš vědět jakým způsobem pomocí Outlooku přistupuješ ke svým mailům (pop3, smtp), proč se soubor *.pst jmenuje "abc" a je umístěn někde v čoudu (cloudu).
Možná by místo přeinstalace stačilo umístit soubor *.pst do správné složky, kde ho Outlook očekává
C:\Users\Jmeno_uživatele\Documents\Soubory aplikace Outlook\Outlook.pst
Formát buňky - text.
V nastavení toho Outlooku se někdo šťoural?
Normálně je soubor s emaily nazván Outlook.pst (u Tebe abc.pst) a je umístěn v profilu uživatele v dokumentech.
Cesta k Tvému souboru vede do cloudu (OneDrive)?
Není potřeba se k tomu cloudu nějak přihlásit?
Kód sem testoval na Office 2016 a Win7
a běhal bez problému.
Outlook máš taky z Office 2016?
Co znamená nejde?
Zobrazí se chybová hláška nebo se sekne na nějakém řádku?
Ten kód někdy fungoval?
Edit:
Co tento kód:
Option Explicit
Private Sub Send_mail_Click()
Dim Outapp As Outlook.Application
Dim Zprava As Outlook.MailItem
Dim PDF_path As String
'PDF_path = ActiveWorkbook.Path & "\logfile.txt" '"\Objednávka.pdf"
PDF_path = "C:\EXCEL\logfile.txt" '"\Objednávka.pdf"
'ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=PDF_path _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
Set Outapp = New Outlook.Application
Set Zprava = Outapp.CreateItem(olMailItem)
On Error GoTo ERR1
With Zprava
.BodyFormat = olFormatPlain 'format mailu
.Display 'zobrazit okno
.To = Range("b1") 'adresát
.Subject = Range("b2") 'předmět
.Body = Range("b3") 'obsah
.Attachments.Add PDF_path 'příloha
.CC = Range("b4") 'kopie mailu
.Send 'odeslat
End With
GoTo konec
ERR1:
MsgBox "e-mai nebyl odeslán, něco je špatně", vbCritical, "CHYBA !!!"
MsgBox PDF_path
Zprava.Close olDiscard
konec:
End Sub
Při testování jsem měl hodnoty (To, Subject, Body) přímo v kódu. K jednotlivým buňkám si doplň i odkaz na konkrétní list.
Samozřejmě v Tool -> References musí bít vybrána příslušná knihovna (Microsoft Outlook xx.x Object Library).
Použit maticový vzorec. Jeho zadání se ukončí CTRL+SHIFT+ENTER
CZ Excel?
=MOD(ŘÁDEK();2)=0
eLCHa napsal/a:
Pak stačí použít pole a na testování funkci Filter.
Půjčil sem si Lugrův soubor a upravil načítání jmen do Ověření dat.
Maticový vzorec, jeho zadání se ukončí trojkombinací CTRL+SHIFT+ENTER
Dobře, budu za blba, ale zeptám se. Proč kolekce?
Na to by stačilo pole a zbavíš se jednoho cyklu nebo další variantou je Slovník (Dictionary) s funkcí Exists.
Použil sem soubor co vkládal Jirka a doplnil kód pro Pole a Slovník, trochu sem upravil i tu kolekci (v proměnné byl překlep).
Pokud by si u slovníku použil včasnou vazbu, můžeš využít výhod Intellisense
https://excelmacromastery.com/vba-dictionary/
Vyzkoušej tohle, snad Ti to bude fungovat podle představ.
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.