AL napsal/a:
...Ja Vaše príspevky čítam pozorne...
...edit: aha, Vy to tam fakt píšete, že okrem VBA 2 možnosti, takže ospravedlňujem sa za nepozornosť a hlboká poklona
@Honzyg
ano - ůpěl jsem, když jsem to viděl, nicméně podle prvního příspěvku jsem věděl, že je to překlep (na rozdíl od nekonečného vlákna týkajícího ses nevyditelnych riadkou - do kterého raději ani nekoukám - ale pořád se vrací)
Základy SQL Vám zaberou hodinu studia - nic na tom není
@AL
Ano - odvážně jsem napsal
Pokud nechcete VBA, máte 2 možnosti - Automatický filtr, nebo v listech Skupina 0 a Skupina 1 použít vyhledávací funkce (např.: SVYHLEDAT).
což asi v excelu nikdy neplatí. Pokud si to přečtete jestě jednou, dojde Vám,, že jsem přiložil druhou ze dvou mnou zmiňovaných možností - FUNKCE ve vzorcích ;))
Máte pravdu, na MSQuery zapomínám.
Ale to nemění nic na mém názoru ;))
Já se s Vámi nedohaduju ;)
Máte tam 2 ukázky - jedna SVYHLEDAT, jedna INDEX/POZVYHLEDAT.
Ale věřte nebo ne, podle toho, jak jste to popsal je nejlepší Automatický filtr ;).
Honzyg napsal/a:
svyhledat nejde použít
Nemusí nutně znamenat. Vložte přílohu a někdo se koukne ;)
Pokud jsem pochopil, tak jste si vlastně odpověděl sám.
Protože
Nerad bych v tabulce používal makra :)
a
nehodí prázdné řádky...
tak
Ještě by to šlo samozřejme vyřešit jednou pomínkou a filtrama
Pokud nechcete VBA, máte 2 možnosti - Automatický filtr, nebo v listech Skupina 0 a Skupina 1 použít vyhledávací funkce (např.: SVYHLEDAT). Nicméně v tom druhém případě pravděpodobně budete muset mít nějaké ty rezervní řádky navíc a to je to co nechcete. Já to umím (a to i "bez" těch rezervních řádků) a jsem přesně ten typ nešlo by to o jeden klik méně, ale přesto bych raději volil možnost Automatický filtr.
@rinma
Já vím co chcete. Sice nevím, proč to chcete, když výsledek bude stejný jako u kódu, který jsem vložil (a ušetříte KT), ale když to chcete...
Najděte si na netu něco jak dynamická pojmenovaná oblast (název), vytvořte si ho a ten pak vložte do RowSource.
Ano, mohl. I když těžko hádat, takže třeba takhleSub subAddValues()
Dim w As Workbook 'A
Set w = Workbooks.Open(Filename:=Cesta_k_souboru)
ThisWorkbook.Sheets("List1").Range("A1:A20").Copy 'B
w.Sheets("List1").Range("A1:A20").PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd
Application.CutCopyMode = False
w.Close SaveChanges:=True
Set w = Nothing
End Sub
Takový detail:
ty kluby jsou taky tabulka (kontingencni)
Bohužel to není taky tabulka, ale je to Kontingenční tabulka, což je jiný typ objektu než Tabulka.
Právě proto je obrázek jako příloha nesmysl (i když možná pohodlnější) a kdybyste vložil přílohu rovnou, už byste to měl.
Pokud tu kontingenční tabulku vytváříte jen proto, abyste měl seznam klubů ve formuláři, tak na Vašem místě bych ji zrušil a do modulu formuláře bych vložil kód:Private Sub UserForm_Initialize()
With Me.ComboBox1
.ListIndex = 0
' .Style = fmStyleDropDownList
End With 'Me.ComboBox1
Dim cClubs As Collection
Set cClubs = New Collection
Dim i As Variant
For Each i In Application.Transpose(ActiveSheet.ListObjects("Tabulka2").ListColumns("klub").Range.Value)
On Error Resume Next
cClubs.Add CStr(i), CStr(i)
On Error GoTo 0
Next i
With Me.ComboBox2
.RowSource = vbNullString
Dim j As Integer
For i = 2 To cClubs.Count
For j = 0 To .ListCount - 1
If cClubs(i) < .List(j) Then
Exit For
End If
Next j
.AddItem cClubs(i), j
Next i
Set cClubs = Nothing
.ListIndex = 0
' .Style = fmStyleDropDownList
End With 'Me.ComboBox2
End Sub
Zase příloha jako obrázek, s tím se fakt bezva pracuje...
A v čem je problém. V prvním případě máte oblast převedenou na tabulku, která obsahuje sloupec příjmení a jméno. Tak totéž proveďte s oblastí, která obsahuje sloupec klub. Převeďte ji na tabulku.
Občas lituji, že MS nezvolil C# ...
Jo, sry jsem slepý. ;)
Ne - problém není v uvozovkách. Problém je, že chcete použít textový řetězec jako odkaz. Ale pochybuju, že ten vzorec bude fungovat, i když použijete NEPŘÍMÝ.ODKAZ (např. v oblasti součtu máte M:BN a v podmínce M:BM).
Můžete se zkusit podívat na API funkce
Private Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Private Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Longale, pokud je budete testovat, nemějte rozdělanou jinou práci a počítejte s pády aplikace. Trvalo mi dlouho, než jsem to odladil a používám pouze krátkodobě. Vy to chcete použít po celou dobu spuštění sešitu a tam vidím nebezpečí.
Možnou cestou je napsat utilitku například v C# (zadarmo) - zavolat ji při spuštění souboru a vypnout. Je třeba ale nastudovat spolupráci C# a excel - jde to - někde jsem to použil a tuším, že tam lze používat i události (je už to dlouho ;) )
A protože by to byla krátká utilitka, nebyl by ani problém vložit ji přímo do souboru - dočasně vytvořit a na konci zabít.
U Vašeho kódu mi chybí vypnutí OnTime, něco jakoApplication.OnTime EarliestTime:=eeStart, Procedure:="ThisWorkbook.Zapni_Udalosti, Schedule:=False"Nedělá to problémy?
@Al - jen technická ;)))
AL napsal/a:
@kp57
len technická: podmienka platí, pokiaľ jej výsledok je PRAVDA (t.j. > 0)
Jak napsal Poki - málo informací a jak napsal Jirka - Hromadné korespondence
To si myslim ze nee. Zkousel jsem to a moc se to nechytalo.
Nic osobního - nechytalo se to nebo Vy?
Z toho mála to vidím taky na hromadnou korespondenci.
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.