Já chtěl použít tento vzorec: =VYHLEDAT(2;1/NE(JE.PRÁZDNÉ(A3:E3));A3:E3), ale tady to nefunguje. Z nějakého důvodu se i ty prázdné buňky tváří pro funkci JE.PRÁZDNÉ, jako že prázdné nejsou a já nechápu proč.
Pokud v těch prázdných buňkách zmáčknu DELETE, tak už prázdné jsou. Nerozumím tomu.
Např. buňky B25:E30
Přiznávám, že z toho nejsem vůbec moudrý.
1. Je tam 12 listů a napíšeš" "Akurát v té buňce U2 je datum....." dobrý, ale v kterém listu?
2. "hodí to chybu místo i tam dat o" - tuto větu nechápu vůbec
Toto:
'Target
Sheets("DISORDER_A").Range("J80").Copy
Sheets(Active).Cells(46, o).PasteSpecial xlPasteValues bych nahradil tímto: Sheets(Active).Cells(46, o).Value = Sheets("DISORDER_A").Range("J80") + samozřejmě všechno podobné kopírování.
Jak bylo řečeno SVYHLEDAT, ale k tomu je nutné vědět kde hledat (jak píše marjankaj).
Jinak příloha většinou řekne víc jak tisíc slov, zvlášť když je popis nedostatečný, nepřesný...
Tak zkuste, jestli by to tak mohlo být. Aby to počítalo, musí být vyplněno D i E (v libovolném pořadí).
Funkce v základním tvaru (bez zaokrouhlování) je takto:
x = WorksheetFunction.SumIfs(Worksheets("Data").Range("D:D"), Worksheets("Data").Range("B:B"), Worksheets("List2").Range("D8"), Worksheets("Data").Range("C:C"), Worksheets("List2").Range("E8"))
Učesaná verze:Dim wsData As Worksheet
Dim wsList2 As Worksheet
Dim oblastB As Range
Dim oblastC As Range
Dim oblastD As Range
Dim parametr1 As Range
Dim parametr2 As Range
Set wsData = Worksheets("Data")
Set wsList2 = Worksheets("List2")
Set oblastB = wsData.Range("B:B")
Set oblastC = wsData.Range("C:C")
Set oblastD = wsData.Range("D:D")
Set parametr1 = wsList2.Range("D8")
Set parametr2 = wsList2.Range("E8")
'**** zaokrouhlit **********
parametr2 = WorksheetFunction.Round(parametr2, -1)
'***** SUMIFS **************
y = WorksheetFunction.SumIfs(oblastD, oblastB, parametr1, oblastC, parametr2)
Teď co s tím dál?
Kdy to spustit - tlačítko, událost...
Co počítat - jeden řádek, více řádků ....
Já bych si někam uložil číslo řádku, který je poslední a to bych pak použil do těch cyklů - viz příloha.
pak jedině makrem:
https://pc-help.cnews.cz/viewtopic.php?t=134511
V rámci toho jednoho listu funguje, když při zamykání listu nezaškrtnu "Vybrat uzamčené buňky". Na přiloženém obrázku hned první řádek.
Ale, jak píše lubo, od jinud už kopírovat mohu.
Mimochodem, míst BK má být BL.
Já na to šel od lesa a i když tu jedno řešení je, přidám další:
=KDYŽ(JE.ČISLO(NAJÍT("NAZ PŮVODNÍ";BC4;1));NAHRADIT(BC4;1;14;"");KDYŽ(JE.ČISLO(NAJÍT("NAZ PŮVODNÍ";BE4;1));NAHRADIT(BE4;1;14;"");KDYŽ(JE.ČISLO(NAJÍT("NAZ PŮVODNÍ";BG4;1));NAHRADIT(BG4;1;14;"");KDYŽ(JE.ČISLO(NAJÍT("NAZ PŮVODNÍ";BI4;1));NAHRADIT(BI4;1;14;"");KDYŽ(JE.ČISLO(NAJÍT("NAZ PŮVODNÍ";BK4;1));NAHRADIT(BK4;1;14;"");"")))))
Ještě je otázka, jestli NAZ.PŮVODNÍ je na řádku jen jednou. Co když tam bude víckrát?
Ne možná, ale takhle jo.
Toto funguje. Tisíceré díky.
Dík za nápad, ale také to nefunguje.
Podle mě se tam bijí rozdílné parametry pro word - "Pages" a jiný pro excel "From, To".
Excelovské makro si neporadí s wordovským zápisem a word (který tiskne) zase nezpracuje parametry od excelu - můj názor.
P.S. Jenom proboha nikdo nevymýšlejte žádné složité kody, jak to obejít. Pokud to nejde jednoduše, tak budu tisknout dva jednostránkové soubory.
Prosím o radu. Mám v excelu data, která dosadím do word formuláře a vytisknu word dokument. Chci vytisknout jen jednu stranu, ale nedaří se mi nastavit tiskárnu. Když zadám příkaz: oDokument.PrintOut From:=1, To:=1 tak se sekne a napíše: Run-time eror 13: Type mismatch
Když dám toto: oDokument.PrintOut Pages:="1" tak mi to vytiskne obě stránky.
Už jsem se smířil s tím, že budu mít dva dokumenty "Přední strana.docx a Druhá strana.docx.
Přesto, kdyby někdo měl zkušenost jak si s tím poradit.
Předem díky
Celé makro:
Private Sub cmbPredniStranka_Click()
Dim oDokument As Word.Document
Dim radek As Integer
radek = lstSeznamKlientu.ListIndex + 2
'******************* Ošetřit, když nic nevybere ***************
adresar = ThisWorkbook.Path
soubor = "\" & Cells(radek, 2).Text & " " & Cells(radek, 3).Text & "," & Cells(radek, 10).Text & ".docx"
Set objWord = New Word.Application
Set oDokument = objWord.Documents.Add(adresar & "\SmlouvaNoc.docx")
objWord.Visible = True
oDokument.Bookmarks("prijmeni").Range.Text = Cells(radek, 2).Text & " " & Cells(radek, 3).Text
'********** vytisknout přední stranu **************
oDokument.PrintOut Pages:="1"
a = MsgBox("Chceš vytisknout zadní stranu?", Buttons:=vbYesNo)
If a = 6 Then 'Tisk zadní strany
oDokument.PrintOut Pages:="2"
End If
oDokument.SaveAs (adresar & soubor)
oDokument.Close SaveChanges:=True
ActiveCell.Select
Unload vyberSmlouvu
End Sub
Nebo tak:=IFERROR(INDEX($M$8:$Y$36;POZVYHLEDAT(A8;$M$8:$M$36;0);POZVYHLEDAT($B$3;$M$6:$Y$6;0));"Nenalezeno")
Počítám, že tabulka bude mít více řádků.
Řekl bych, že bez makra to nepůjde.
Ještě mě napadlo tím makrem řádky nevkládat, ale všechno "zkopírovat" o 5 řádků níž a do uvolněného místa vložit nové hodnoty.
Ale bez příkladu neumím posoudit, jestli to je vhodné řešení.
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.