No, takže jinak.
Spousta chyb v sešitě, nefunguje to co má.
Vytvoř si tam list, který se bude jmenovat třeba Word, do něj na první řádek zapiš nadpisy položek, které chceš mít v tom dokumentu (jako záhlaví sloupců).
Pak tam vlož data (okopírováním, makrem), to je mi jedno.
Poté Ti na to vytvořím hromadku, ale abych tohle ještě louskal, opravoval a mořil se s tím, na to fakt nemám čas.
Díky za pochopení.
Lon
Co mě asi tak napadá.
Samozřejmě musí toto makro být umístěno na Listu3 v sekci Worksheet_SelectionChange!
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'test na změnu položky A2
If ActiveCell.Row = 2 And ActiveCell.Column = 2 Then ' nejsi na buňce A2
Jmeno = Cells(2, 2)
If Cells(2, 151) = Jmeno Then
' položka se shoduje - nedělej nic
Exit Sub
Else
' ulož si položku pro příští porovnání
Cells(2, 151) = Jmeno
End If
Sesit = "MyJob"
List = ActiveSheet.Name
pocet = Sheets.Count
' přidej nový list do sešitu Ulohy
Sheets.Add After:=Sheets(pocet)
' přejmenuj jej na požadovaný název
Sheets(pocet + 1).Name = Jmeno
' otevři sešit - v tomto případě MyJob - uložený ve stejném adresáři
Workbooks.Open Filename:=Sesit + ".xlsx"
' zkopíruj oblast buněk A1 až EU35
Workbooks(Sesit).Sheets(Jmeno).Range("A1", "EU35").Copy
' ulož ji do nově vytvořeného listu
Workbooks("Ulohy").Sheets(Jmeno).Cells(1, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
' potlačení hlášky o oblasti kopírování ve schránce
Application.DisplayAlerts = False
' zavři sešit MyJob
Workbooks(Sesit).Close
Application.DisplayAlerts = True
Application.CutCopyMode = False
Sheets(List).Select
End If
End Sub
Lon
Byla by možná ukázka obou zmiňovaných sešitů?
Pokud tomu dobře rozumím, tak při jakékoliv změně v buňce A2 se má vytvořit nový list s daty a data přenést do jiného sešitu s názvem listu v A2?
Umístění obou sešitů předpokládám ve stejném adresáři.
Taky nejsem profesional.
Lon
To je otázka 5-ti minut.
Co sem dát oba soubory? Excel i Word.
Lon
To je to nejjednodušší.
Jaké MSO máš? 2007?
Lon
Co vytvořit jeden list, kde budou pouze položky faktury s nadpisy sloupců a použít hromadnou korespondenci.
Lon
Pro nic, jen pro upřesnění.
Tak jak jsi na tom s funkcí VAL()?
Lon
Dobře, tak trošku jinak.
Excel má funkci "Záznam makra", pokus se nejprve sám provést to co potřebuješ a pak sem dej případný výsledek k dotvoření a "učesání". Tedy pokud se chceš něčemu přiučit a trošku porozumět.
Nejlépe se naučíš na svých chybách
Nejsem tak starý, ale hodně pamatuju
Lon
Zkus nápovědu v excelu.
Kdo Ti dělal ten formulář?
Na rychlo:
Cells(start, 7) = Val(JedCpred_f)
Cells(start, 8) = "=RC[-2]*RC[-1]" ' vzorec
Cells(start, 7).NumberFormat = "#,##0.00 Kč"
Cells(start, 8).NumberFormat = "#,##0.00 Kč"
Range(Cells(start, 3), Cells(start, 8)).Borders(xlEdgeLeft).LineStyle = xlContinuous
Range(Cells(start, 3), Cells(start, 8)).Borders(xlEdgeTop).LineStyle = xlContinuous
Range(Cells(start, 3), Cells(start, 8)).Borders(xlEdgeBottom).LineStyle = xlContinuous
Range(Cells(start, 3), Cells(start, 8)).Borders(xlEdgeRight).LineStyle = xlContinuous
Range(Cells(start, 3), Cells(start, 8)).Borders(xlInsideVertical).LineStyle = xlContinuous
Lon
Pak:
Cells(start, 7) = Val(JedCpred_f)
Cells(start, 7).NumberFormat = "#,##0.00 Kč"
I přesto, že DIM JedCpred As Integer
Lon
Zkus použít:
Cells(start, 7) = Format(JedCpred_f, "#,##0.00 Kč")
Lon
Pak by musel být znám nějaký logický algoritmus pro vyhodnocení kódu, tak aby se dal správně interpretovat.
Buď pouhými funkcemi, nebo složitějším vyhodnocení pomocí VBA kódu (makra).
Z takto obecně zadané informace nelze nic konkrétního napsat.
Pokud má zadaný textový řetězec standardní délku, pak stačí využít funkci ČÁST(text; start; počet_znaků). V anglické verzi MID(text; start; počet_znaků)
Problém je v tom, že Application.Dialogs(xlDialogSendMail).Show odesílá aktuálně otevřený soubor.
IMHO, proč neodeslat soubor .xlsx se zamčenými buňkami, místo *.pdf? Pokud však chceš odeslat soubor v *.pdf, pak to bude muset být pravděpodobně provedeno ručně.
Lon
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.