Nevím. Četl jsem to dvakrát a vždy jsem skončil v půlce s tím, že vytvoření tabulky a vložení jako přílohu by bylo asi rychlejší, než ji popisovat a doufat, že všichni mají stejnou představivost, jako já...
ActiveWorkbook může (ale nemusí) dělat neplechu.
Raději bych použil
Dim w as Workbook
Set w= Workbooks("XY")
.
.
.
w.Save
w.Close
set w = nothing
Mno já nevím Já myslím, že UserForm nemluví...
Lze snadno vyuzit kontingenční tabulky a není třeba programovat
Jen pokud máte list s databází, doporučuji nevynechávat řádky.
6 hodnot? a na to máte pokaždé nový soubor?
četl jsem to dvakrát a pokud tomu rozumím, tak ano, existuje a úplně jednoduchý.
sledujte to v jednom souboru a těch 6 hodnot vždy zkopírujte a odešlete. dokonce bych řekl, že ručně je to skoro stejně rychlé jako makrem, takže není co vymýšlet...
to ano. ale v tomto případě?
@marty099
A co si představujete pod pojmem "sofistikovanější řešení"? Excel je tabulkový kalkulátor a textové funkce jsou v podstatě pouze doplňkové.
@all
na druhou stranu jsem ale uvedl, že v excelu téměř neexistuje pojem NEJDE a tak mi to nedalo a také jsem to zkusil
nejdříve se mi líbila funkce DEC2BIN, ovšem pouze do chvíle, kdy jsem zjistil, že pracuje pouze v intervalu od -512 do 511, což je pouze 9 znaků
Maticový
=DEC2BIN(SUMA((B1:B9>C1:C9)*2^(POČET2(B1:B9)-ŘÁDEK(B1:B9)+ŘÁDEK(B1)-1));POČET2(B1:B9))
Pak jsem (nezávisle) dospěl k podobnému řešení jako marjankaj, s tím, že abych se vyhnul 0 na začátku, hodnotím pomocí 1 a 2
Maticový
=""&SUMA(((B1:B15>C1:C15)+1)*10^(POČET2(B1:B15)-ŘÁDEK(B1:B15)+ŘÁDEK(B1)-1))
Tady upřesním, že to bude fungovat max pro 15 řádků, protože excel každé číslo osekává na 15 míst a zbytek doplní nulama (1234567890123456789 oseká na 1234567890123450000)
Takže pokud bych potřeboval opravdu obecné řešení, tak mě bohužel nenapadá jinak, než pomocí vlastní funkce. Např.:
Function COMPARE_AREAS(Range1 As Range, Range2 As Range) As String
Dim sRetValue As String
sRetValue = "#N/A"
If Range1.Columns.Count = 1 Then
If Range1.Columns.Count = Range2.Columns.Count Then
If Range1.Rows.Count = Range2.Rows.Count Then
sRetValue = vbNullString
Dim I As Integer
For I = 1 To Range1.Cells.Count
sRetValue = sRetValue & IIf(Range1.Cells(I).Value > Range2.Cells(I).Value, "A", "N")
Next I
End If
End If
End If
Set Range1 = Nothing
Set Range2 = Nothing
COMPARE_AREAS = sRetValue
End Function
Jenom technicka poznamka. Pokud chcete skryvat vice radku, nedelejte to po jednom, ale najednou.
viz
http://wall.cz/index.php?m=topic&id=10711#post-10712
z mobilu takze kratce a bez formatovani
excelplus.net/forum/viewthread.php?thread_id=783&pid=3305#post_3305
kdo chce, muze se pridat.
mohli byste prosím vy, excela znalý, mě navédst (nebo mě říct že to nejde)...
Excel mám rád, protože skoro nezná slovo NEJDE. Ano lze řadit vzorci a to dokonce podle několika kritérií. Viz příloha.
Nicméně, toto je jeden z mála postupů, o které nejsem ochoten se jen tak podělit...
Ale. Pokud chcete zjistit x-tý prvek v poli podle pořadí, použijte funkci RANK a nemusíte nic řadit.
application.WorksheetFunction.SumIf...
zkusím od boku
If Cells(i, 5).Value = 0 Then
nahraďte
If Cells(i, 5).Value = 0 and Cells(i - 1, 5).Value = 0 Then
nemám už čas to zkoušet tak snad...
Tak makro reaguje, ale nepracuje spravne.
Problem je v radku
If IsEmpty(Cells(i, 5)) Then
Ten je nastaveny na prazdne bunky.
Vy tam ale mate vzorec (externi odkaz), jehoz vysledkem je u mne 0
Pokud to tak je spravne, nahradte
If Cells(i, 5).Value = 0 Then
můžete to tu dát jako přílohu?
jak jste ho zkoušel?
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.