< návrat zpět
MS Excel
Téma: Rozšířený filtr- datum ![rss](./plugins/templates/wall_2C/images/icons/rss.png)
Zaslal/a mukl 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
Začátečník(14.8.2011 19:56)#005788 ![Začátečník](./pictures/avatars/7398.jpg)
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
mukl(14.8.2011 19:59)#005789 ![avatar](./pictures/avatars/no-avatar.jpg)
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 upravil
citovat
Začátečník(14.8.2011 20:01)#005790 ![Začátečník](./pictures/avatars/7398.jpg)
a co chybové hlášky???
nebo zaslat ukázku
citovat
mukl(14.8.2011 20:08)#005791 ![avatar](./pictures/avatars/no-avatar.jpg)
Žá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 oblast
citovat
Začátečník(14.8.2011 20:10)#005792 ![Začátečník](./pictures/avatars/7398.jpg)
a ukázku?
možná je to profesionální slepota,taky se mi to stává
citovat
mukl(14.8.2011 20:45)#005793 ![avatar](./pictures/avatars/no-avatar.jpg)
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:
5793_seznam-dodavatelu.rar (610kB, staženo 31x) citovat
RomanNTA(14.8.2011 21:19)#005794 ![avatar](./pictures/avatars/no-avatar.jpg)
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
mukl(14.8.2011 21:39)#005795 ![avatar](./pictures/avatars/no-avatar.jpg)
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ěkuji
citovat
RomanNTA(15.8.2011 7:53)#005796 ![avatar](./pictures/avatars/no-avatar.jpg)
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
mukl(15.8.2011 8:05)#005797 ![avatar](./pictures/avatars/no-avatar.jpg)
Díky moc, už to funguje....
citovat