Valim do práce, tak jen nástřel.
To elnino
Nikde netvrdím, že vzorec, který sem tu prezentoval je ten jediný správný. Sám si přidal další řešení.
První vzorec, který sem do testovacího souboru použil byl právě Tebou zmíněný
=IFERROR(INDEX(C3:K3;;MAX(KDYŽ(C3:K3<>0;SLOUPEC(C3:K3)))-2);"")
V první buňce kam sem ho zapsal vrátil odpovídající výsledek. Překvapení mě čekalo po rozkopírování dvojklikem na kurzor. U ostatních řádků vrátil 0 .
Netuším proč, každopádně sem nějak neměl chuť po tom pátrat a vydal se cestou nejmenšího odporu => upravil ho do podoby, která je v souborech a v tu danou chvíli vracel relevantní výsledky.
PS: Vzorec z Tvého příspěvku sem znovu vložil do obou souborů, které mi zůstaly na disku, kde nyní vrátil správné výsledky. .
Tož asi tak.
Upraveno
Maticový vzorec, jeho ukončení se zadá trojkombinací CTRL+SHIFT+ENTER
Díky za přání. Vánoce už nestíhám, tak alespoň všem na tomto fóru, vše nejlepší do nového roku a hlavně buďte negativní
Přidal sem jen "okno" pro výběr souboru.
@lugr
Matice se ukončuje CTRL+SHIFT+ENTER
Taky můžeš SUMU nahradit za SOUČIN.SKALÁRNÍ a jednoduše praštit do enteru.
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).
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.