Příspěvky uživatele


< návrat zpět

Strana:  « předchozí  1 2 3 4 5 6 7 8 9   další » ... 10

Tak na 64 bit Office to nejede, poslední dvě deklarace v #ELSE části jsou červené.

Zvláštní, že když v 32 bit změním logiku z
#If VBA7 Then na #If Not VBA7 Then
tak to stejně funguje.

A na 64 bitech když měním totéž, tak to nefachá ani tak ani tak. Rovněž jsem namísto VBA7 alternoval Win64 (dle nějakých googlových nálezů) ale taky žádný vliv

Dík, zatím na 32 bitech to fachá. 64 odzkouším až budu doma.

K té výtce: VBA kódy si ovbykle píšu sám, občas po tupém zkopírování upravuji ke svým potřebám, ale porozumět API (zřejmě myšleno jako ten lepší nápad) je přece jenom jiná liga a nedovedl jsem na na netu dohledat moc smysluplných informací.

OK, nouzově by to šlo i takhle, ale než to pak rozparsuje do tabulky, tak je to docela fuška

To vypadá, že se v soboru něco podělalo, sem tam jsem to už zažil. Jakou má ten soubor velikost? Zkus to otevřít na jiném PC a pokud to půjde, zkus to uložit pod jiným názvem. Pokud tam máš tuny vzorců či podmíněného formátování, popřípadě jestli je soubor sdílený, tak asi by ho chtělo nějak pročistit. Viděl jsem už i situace, soubor naboptnal na 50 MB a po pročištění měl se stejnou funkcionalitou kolem 1 MB.

Pokud to neotevřeš na žádném PC, tak nevím o způsobu jak se dovnitř dostat

Ahoj,
z dřívějška mám soubor, (spouští se dvojklikem do žluté zóny), který umí vypsat obsah libovolného adresáře (volitelně i včetně podadresářů) do tabulky. Z času na čas se tato věcička náramně hodí. Jenomže to využívá API funkce pro 32 bitový Office. Na 64 bit to nefunguje 7

Věděl by někdo z příslušných expertů toto opatřit příslušnými API funkcemi aby to fungovalo i v 64bit Office? Anebo klidně ať to používá jiné technologie, ale ať to umí vypsat obsah nějakého adresáře včetně podadresářů.

Předem dík

Zdar,
je mi záhadou jak jsi vytvořil tu kartu Elektrotrend, která se zjeví na Ribbonu po otevření souboru 7
Ty tlačítka na kartě jsou sice mrtvé, neboť chybí kód, ale ani v ThisWorkbook není žádný kód pro vytvoření této karty, ani v modulech ani v modulech listů ani ve formulářích.
Co je to za trik?

Předem dík, M.

Dík, udělal jsem to jak radíš

Ahoj,¨
v kódu používám metodu Find pro hledání v určité oblasti, přičemž potřebuji mít parametr Lookat:=xlWhole. Toto si bohužel excel zapamatuje a když pak uživatel hledá v listě pomocí Ctrl + F, tak to hledá shodu obsahu celé buňky. Takže pokud je v buňce třeba "Hradec Králové" a do hledacího okýnka napíšu "Hradec", tak to buňku nenajde. Abych to hledání vrátil do výchozího stavu, tak je potřeba kliknout na Možnosti>> a tam odháknout "Pouze celé buňky".

Mohl bych asi do kódu přidat další hledání, tentokrát s parametrem Lookat:=xlPart, ale zbytečně to bude zpomalovat proceduru. Nedá se to ve VBA nastavit ještě někde jinde a čistěji?

Dík, M.

No nevím, je to pakárna prodírat se nekomentovaným cizím kódem, kde prvky formuláře nebyly pojmenovány nějak smysluplně. Pomalost by mohla být zapříčiněna těmi spletitými výpočty nad množinou dat. Zkus je smazat, zdali se to významně nezrychlí.

Pokud ano, pak stojí za to se zamyslet, k čemu ty výpočty slouží a zdali by to nešlo spočítat pouze na vyžádání nebo jinak (třeba smyčkou přes pole - viděl jsi, že to švihá bleskurychle).

Není úplně pravda, že můžeš přiložit pouze jeden soubor, v rámci jednoho adresáře se Shiftem můžeš označit více příloh.

Tvé druhé "lepší" vysvětlení je postiženo stejnou mlhavostí jako to první, takže sorry

Tak to je ostudné, taková slepota.
Díky

Přikládám. Na prvním listě to filtruje v pořádku, na druhém o sloupec vedle.

Do VBA projectu si přidej modul (Insert-Module) a do něj vlož funkci VratCisloRadku (kód úplně dole), která funguje tak, že si nejdříve natáhne data z celého listu do pole a pak jej prohledá. Jakmile narazí na první nález, vrátí číslo řádku. To je to co potřebuješ a vrací to výsledek bleskem a případný filtr v listě Data na to nemá vliv.

Jinak tvoje oblast dat není souvislá, což není úplně dobře. Když se postavíš třeba na buňku A1 a uděláš dvojmat pravý Ctrl + hvězdička, tak se ti označí pouze oblast A1:M6201. Neboť sloupec N je úplně prázdný, ale pak zase data pokračují. Jakmile bys dal třeba omylem seřadit data, tak máš problém. Takže alespoň v těch prázdných sloupcích zapiš do záhlaví libovolný znak - uvidíš, že po dvojhmatu se ti označí celá oblast.

Takže kód pod tlačítkem "Najdi" si změň následovně:
Private Sub Najdi_Click()

i = VratCisloRadku(Me.TextBox17.Text)
If i = 0 Then
MsgBox "Zadaný údaj " & Me.TextBox17.Text & " nebyl nalezen"
Exit Sub
End If
Me.NajdiDalsi.Enabled = True
If i > 3 And Me.Předchozí.Enabled = False Then Me.Předchozí.Enabled = True
If i = 3 And Me.Předchozí.Enabled = True Then Me.Předchozí.Enabled = False
Call PrepisTextBox

End Sub


Public Function VratCisloRadku(strText As String) As Long

Dim ii As Long, j As Long
Dim rgOblast As Range
Dim arPole() As Variant
Dim ws As Worksheet

Set ws = Worksheets("Data")
Set rgOblast = ws.Range("A2").CurrentRegion
arPole = rgOblast

For ii = LBound(arPole, 1) To UBound(arPole, 1)
For j = LBound(arPole, 2) To UBound(arPole, 2)
If arPole(ii, j) = strText Then
VratCisloRadku = ii
Exit Function
End If
Next j
Next ii

End Function

Změň u formuláře vlastnost ShowModal na False, tím umožníš, že bude možné kód krokovat. Jinak důvodem toho, že se nezapíšou hodnoty při aktivnám přepínači Filtr je skutečnost, že metoda Find jednoduše tu hledanou buňku nenajde a tím pádem řádek i = 0, čili žádný zápis se nemůže konat.
Čili potíž vidím v nešťastném prohledávání přes všechny buňky listu, které na filtrem skryté řádky nefunguje. Doporučuji použít vhodnější metodu hledání - třeba výběrem sloupce ve kterém se hledá. Anebo si načtu range do pole a prohledávání pole je řádově rychlejší než prohledávání hodnot na listě.

Pomohl bych ti rád, ale je to nesrozumitelné. A navíc se to chová jinak než popisuješ. Když dám zapsat, tak na listě Data je stále stejný počet řádků jak před akcí a stav přepínače Filtr na to nemá vliv. Anebo jsem nepochopil smysl toho formuláře
Zkus jasně popsat čeho chceš dosáhnout, ve smyslu:
1. ve formuáři udělám tuto změnu/akci ...
2. očekávám, že ...
3. Namísto toho se stane toto ...


Strana:  « předchozí  1 2 3 4 5 6 7 8 9   další » ... 10

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