Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  71 72 73 74 75 76 77 78 79   další » ... 289

Ak sa jedná o html, a hľadáte text s medzerami, pravdepodobne sa bude jednať o pevnú medzeru kód 160 a medzeru kód 32. Príloha?

príklad bez makra (ale csv som si vymyslel!)

To by som dal cez PQ do dátového modelu, a ten ako zdroj pre KT. urobil som si skúšobnú tbl s 300K a akýkoľvek spôsob mazania náhodných cca 160K riadkov je utópia. Problém je dostať sa čo i len cez blok 2K riadkov. Ten posun ostatných buniek je ohromne náročný. Teda by som to spravil cez PQ.
Dokonca ak máte ten CSV importovať, tak to by som urobil rovnako cez PQ.

Ak tomu teda rozumiem správne. Máte nejaký exportovaný CSV z Vášho systému, ktorý potrebujete spracovať. Tak nechajte ten CSV spracovať rovno cez PQ, a na ten PQ dotaz napojte KT s už odfiltrovanými "0" (to urobí to PQ). Ak je to tak, a ak môžete, tak upravte ten Váš CSV na napr. 3 dátové riadky s vymyslenými údajmi, ale so zachovaním formátu dát. A spravíme na to PQ.

Workbook_Open - spúšťa sa pri otvorení zošitu.
Workbook_BeforeClose - spúšťa sa pri zatvorení zošitu
Ktoré makro ste použila? Obidve? Potom sa nečudujte, že Vám uloží pri zatváraní. A predpokladám, keď tam máte obe, že ste zmenila cestu iba v jednom makre, nie v druhom.
Môj súbor ste skúsila?

Nemohol by ste poslať na ukážku súbor s vymyslenými 5 riadkami dát a zachovanými vzorcami ? Ja by som si z toho už tých 300K odvodil a skúsil odkrokovať, čo trvá najdlhšie. Koľko asi riadkov sa takto maže? Tisícky? Desaťtisícky? Stotisícky? Lebo aj pridávanie oblasti k celku postupne spomaľuje, a značne, tak by sa to spravilo po častiach.

prkld
Sub Zmaz_radky(Tabulka As ListObject, Sloupec As String, Hodnota)
Dim Hodnoty(), Radku As Long, i As Long, Oblast As Range

With Tabulka.ListColumns("abc").DataBodyRange
Radku = .Rows.Count
If Radku = 1 Then
ReDim Hodnoty(1 To 1, 1 To 1)
Hodnoty(1, 1) = .Value
Else
Hodnoty = .Value
End If

For i = 1 To Radku
If Not IsEmpty(Hodnoty(i, 1)) And Hodnoty(i, 1) = Hodnota Then
If Oblast Is Nothing Then Set Oblast = .Rows(i) Else Set Oblast = Union(Oblast, .Rows(i))
End If
Next i
End With

If Not Oblast Is Nothing Then Oblast.Delete Shift:=xlUp
End Sub


Sub Vymaz()
Zmaz_radky Worksheets("Hárok1").ListObjects("Tabuľka1"), "abc", 0
End Sub

Vymazalo hodnoty a riadku ostanú, alebo odstránilo celé riadky?
Je to tabuľka alebo Tabuľka (lebo pri Tabuľke treba myslieť na ponechanie posledného ostávajúceho riadku napr. kvôli vzorcom)?
Od ktorého riadku sa má začať?

Veď o tom píšem, keď to máte červené, znamená to, že je tam nepovolený zápis kód, a keď ste nič iné nemenili okrem textu, tak nedovolený zápis budú medzery medzi riadkami.
Tu máte príklad + overenie adresára.

Tá cesta je správna? Existuje? Lebo makro nerieši vytvorenie neexistujúcej cesty.
Keď ste to skopírovala, zmazala ste medzery medzi riadkami, alebo Vám ostali riadky červené? Kopírovanie kódu z fóra vkladá medzi riadky medzery, a keďže tu je riadok rozdelený podčiarknikom, musí byť spojitý (bez prázdnych riadkov medzi daným príkazom).

Nemáte Total Commander? Tam označíte, Ctrl+M, dáte nahradiť "." a potom "," za "nič".
Dá sa samozrejme aj makrom. Keď píšete hromadne, tak myslíte tak, že si chcete určiť hlavný adresár napr. "C:\leden\" a premenuje všetky podadresáre?

EDIT:
Sub Premenuj(Cesta As String)
Dim objFLD As Object, Chyb As Long
On Error Resume Next
For Each objFLD In CreateObject("Scripting.FileSystemObject").GetFolder(Cesta).SubFolders
objFLD.Name = Replace(Replace(objFLD.Name, ",", ""), ".", "")
If Err.Number <> 0 Then Chyb = Chyb + 1: Err.Clear
Next objFLD
On Error GoTo 0
MsgBox IIf(Chyb = 0, "Všetky adresáre premenované.", "Niektoré adresáre neboli premenované (" & Chyb & ")."), IIf(Chyb = 0, vbInformation, vbCritical)
Set objFLD = Nothing
End Sub


Sub pokus()
Premenuj "e:\Download\1\"
End Sub

Číselné typy nie sú objekty, a teda sa nenastavujú cez Set. A ešte k tomu Integer! Ten má obmedzenie na 32767. Na farby potrebujete Long.

EDIT: A ešte pozerám, že tam vkladáte český vzorec. To nejde do Formula1. To sa dá iba do FormulaLocal, ale podmienený formát takú možnosť nemá. Tam treba iba ENG ekvivalent vzorca vkladať. Možnosť by bola to prekonvertovať cez FormulaLocal nejakej nepotrebnej bunky alebo cez dočasný definovaný názov. Mám sa Vám na to mrknúť?
Hmm, vlastne ani to nepôjde. Lebo ak spustíte na SK alebo EN verzii Excelu vloženie CZ vzorca, síce ako FormulaLocal, výsledok bude rovnaký - nefunkčnosť, lebo "Local" je na EN Office predsa EN, a pod.

EDIT2: No a ešte tam máte ďalšiu zradu. Indexovanie podmienených formátov. Nemôžete používať stále index 1. To sa mení podľa toho, koľko formátov zasahuje do daného rozsahu. Jednoduchšie, prehľadnejšie a menej náchylné k chybe bude priame nastavenie hneď pri vytváraní PF.
Private Sub Workbook_Open()
'Vymazani a naslednem nastaveni podmineneho formatovani

Dim ERR As String
Dim OK As String
Dim X As String
Dim Uvozovka As String
Dim CERVENA As Long
Dim ZELENA As Long
Dim MODRA As Long

Uvozovka = """"
ERR = "ERR"
OK = "OK"
X = "X"

CERVENA = RGB(255, 0, 0)
ZELENA = RGB(0, 255, 0)
MODRA = RGB(0, 0, 255)

With List2
.Cells.FormatConditions.Delete

.Range("A2:A99999").FormatConditions.Add(Type:=xlExpression, Formula1:="=LEN($A2)>17").Interior.Color = vbRed 'CERVENA
.Range("B2:B99999").FormatConditions.Add(Type:=xlExpression, Formula1:="=AND(LEN($B2)<>4;$B2<>"""")").Interior.Color = vbRed 'CERVENA
.Range("A2:A99999").FormatConditions.Add(Type:=xlExpression, Formula1:="=$H2=" & Uvozovka & ERR & Uvozovka & "").Interior.Color = vbRed 'CERVENA
.Range("A2:J99999").FormatConditions.Add(Type:=xlExpression, Formula1:="=$I2=" & Uvozovka & OK & Uvozovka & "").Interior.Color = vbGreen 'ZELENA
.Range("A2:J99999").FormatConditions.Add(Type:=xlExpression, Formula1:="=$I2=" & Uvozovka & X & Uvozovka & "").Interior.Color = vbBlue 'MODRA
End With
End Sub


Ako ešte vidíte, zrovna červená, zelená a modrá farba (a ešte iné) majú svoju konštantu, ktorú Excel rovno pozná a môžete použiť tie. Ak chcete ľubovoľnú farbu mixovať, samozrejme použite to RGB(). V opačnom prípade potom zmažte aj definície aj nastavenie tých premenných farieb.

Skúste maticový vzorec (Ctrl+Shift+Enter):
=INDEX(B2:B7;MATCH(TRUE;EXACT(D2;A2:A7);0))
=INDEX(B2:B7;POZVYHLEDAT(PRAVDA;STEJNÉ(D2;A2:A7);0))

Príklad - PowerQuery

Príklad takého súboru je ... ?
Ktorý list?
Aký rozsah dát?
Koľko je asi tých súborov?
...
Treba informácie, bez toho sa nedá urobiť nič.

Private Sub Workbook_Open()
With List1
.Cells.FormatConditions.Delete
.Range("B2:B99").FormatConditions.Add Type:=xlExpression, Formula1:="=AND(LEN($B2)<>4;$B2<>"""")"
.Range("B2:B99").FormatConditions(1).Interior.Color = 255
End With
End Sub


Strana:  1 ... « předchozí  71 72 73 74 75 76 77 78 79   další » ... 289

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

Týden v roce

Petr92 • 16.7. 15:34

Řazení podle času v kategoriích

veny • 16.7. 11:34

špatný výpočet ze zisku - příčina?

Anonym • 12.7. 22:56

špatný výpočet ze zisku - příčina?

Jakoby • 12.7. 12:35

Řazení podle času v kategoriích

Marekh • 12.7. 9:55

Porovnávací Tabulka

Jess • 8.7. 20:49

Vzorec pro zkopírování obsahu buňky.

veny • 6.7. 8:28