< návrat zpět

MS Excel


Téma: Rozšířený filtr- datum rss

Zaslal/a 13.8.2011 23:30

Dobrý den,
potřeboval bych poradit, jak naprogramovat rozšířený filtr, který by data filtroval podle datového rozmezí.
Pokud si totiž nastavím, že chci data například >5.8.2011 a <9.8.2011 a provedu nastavení ručně, tak vše funguje.
Když to pak ale zkusím pomocí makra, tak se již nic neprovede, zkoušel jsem i makro nahrát, ale stále nic.

Data ukládám pomocí formuláře:
Sub UlozitSoupis(radek As Range)
If ufSoupiska.chbDodavatele.Value = True Then
radek.Cells(4, 15).Value = "Všichni dodavatelé"
Else
radek.Cells(4, 15).Value = ufSoupiska.cbDodavatel.Value
End If
radek.Cells(4, 16).Value = ufSoupiska.cbKomodita.Text
radek.Cells(1, 17).Value = ufSoupiska.tbOd.Value
radek.Cells(1, 18).Value = ufSoupiska.tbDo.Value
radek.Cells(4, 17).Value = ">" & ufSoupiska.tbOd.Value
radek.Cells(4, 18).Value = "<" & ufSoupiska.tbDo.Value
End Sub


A kód pro makro vypadá takto:
Sub Makro7()
'
' Makro7 Makro
'
' Klávesová zkratka: Ctrl+e
'
Sheets("Vaha").Range("A4:I18").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range("Soupiska!Criteria"), CopyToRange:=Range( _
"Soupiska!Extract"), Unique:=False
End Sub


Pravděpodobně bude chyba v uložení data, asi to vba nebere jako datum a tím pádem to podle toho nefiltruje.

Každopádně budu rád za každou radu

Zaslat odpověď >

#005788
Začátečník
Nechci být válečný štváč, ale:
radek.Cells(4, 18).Date = "<" & ufSoupiska.tbDo.Value
bych nahradil:
radek.Cells(4, 18).Value = "<" & ufSoupiska.tbDo.Valuecitovat
#005789
avatar
Já sem vložil špatný kód.
Tu Vaši verzi tam mám (a nefunguje), verzi výše vloženou jsem pouze zkoušel, zda to něco neudělá...
První příspěvek jsem tedy upravilcitovat
#005790
Začátečník
a co chybové hlášky???

nebo zaslat ukázkucitovat
#005791
avatar
Žádnou chybu to nehlásí.
Filtr pouze vyhodnotí, že nic z výchozích dat nesplňuje podmínky a vrátí tedy prázdnou oblastcitovat
#005792
Začátečník
a ukázku?
možná je to profesionální slepota,taky se mi to stávácitovat
#005793
avatar
Přikládám tedy onen soubor.
V listu "Vaha" kliknout na Nabídka a v ní Soupiska, tím se spustí formulář pro zadání kritérií.
A následně v listu "Soupiska" potvrdit tlačítkem (to spustí filtr).

Zápis kritérií je řešen ještě trochu jinak, než jsem ukazoval, ale princip je stejný a nefunguje ani jeden způsob.
Příloha: rar5793_seznam-dodavatelu.rar (610kB, staženo 31x)
citovat
#005794
avatar
Zkus se podívat na http://www.wall.cz/index.php?m=topic&id=5736. AdvancedFilter funguje stejně. Datum musí být celé číslo. R.citovat
#005795
avatar
Dobře, v tom to asi bude.
Můžete mi tedy ještě poradit, jak to ošetřit ve formuláři? Nevím, jak nastavit, aby se mi takhle uložilo.
Děkujicitovat
#005796
avatar
Když to požaduješ od usera tak používej konvenci yyyy-mm-dd a tu si ošetři a nebo cokoliv co Ti převede funkce CDate na typ datum. Až máš správný vstup od usera pokračuj dále ve zpracování, zápisu apod. Zkoušej dále co Ti provedou řádky Debug.Print ">" & Format(CDate("2.1.2011"), "0")
Range("A1").FormulaR1C1 = "="">" & Format(CDate("2.1.2011"), "0") & """"
R.citovat
#005797
avatar
Díky moc, už to funguje.... 2citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse