Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  135 136 137 138 139 140 141 142 143   další » ... 286

Je to presne ako som hovoril. Part Number nieje číslo! Idem Vám na to pozrieť. Vydržte, najem sa ...

EDIT:
2 návrhy.
Inak nepoužívajte kontrolu celých stĺpcov, to je pomalé. To radšej použite jeden stĺpec na určenie počtu použitých riadkov (teraz je to D7:D10000) v dynamickom definovanom názve a potom napr. OFFSET-ujte (OFFSET je v CZ POSUN) oblasti, alebo naindexujte. Tabulka1 používa def. názov "PART_NUMBER" a Tabulka2 používa def. názov "OBLAST_DAT" + pomocný stĺpec pre číslo indexu.

Tak ešte raz. Čože Vám to nejde ?

Uvádzate iné rozsahy, iné umiestnenia riadkov, stĺpcov, a možno aj iný typ dát v stĺpci IC. A to bude problém. Ak Vám nefunguje toto, čo som upravil presne podľa Vášho vzorca, tak sem dajte reálne vyzerajúcu prílohu. Citlivé dáte zamente na necitlivé. Skúste IC zameniť za nečíslo, a hneď nemáte žiadne výsledky. Podľa Vás možno drobnosť, ale treba to zmieniť. 4

Excel to čísluje automaticky, a pri vytváraní zvyšuje číslo, aj keď je 1-ka dostupná, lebo už súbor otvorený nieje. Dalo by sa to obabrať asi takto. Vytvorte si niekde na disku prázdny súbor s názvom, ktorý Vám Excel Automaticky ponúka ako prvý predvolený, teda v CZ "Sešit", v SK "Zošit" a uložte ho ako .xlsx. Potom z neho Vašim makrom vytvárajte nový, ako zo šablóny, a dostane vždy číslo 1 a bude neuložený a bez prípony, tak ako klasické vytvorenie nového zošitu Excelom. Len treba v makre najskôr otestovať prípadnú existenciu už predtým vytvoreného "Zošit".
Sub Vytvor_Zosit()
Dim WB As Workbook
On Error Resume Next
Set WB = Workbooks("Zošit1")
On Error GoTo 0
If WB Is Nothing Then
Workbooks.Add Template:="Z:\Zošit.xlsx"
Else
Set WB = Nothing
MsgBox "Môže byť otverený iba jeden súbor s názvom Zošit1", vbExclamation, "Chyba"
End If
End Sub

Máte tam:
-zle umiestnenú zátvoru
-určite potrebujete vkladať "0" (teda text) a nie náhodou 0 ako číslo?
-chýba Vám tam ešte vyhodnotenie stavu, ak nieje splnená druhá podmienka. Potom čo?
=KDYŽ(I9="-";0;KDYŽ(M9>0;M9*P9;čo ak neplatí ani druhá podmienka))

Prílohu ako to vyzerá, čo kde robí čítačka, čo kam dáva, to sem nikto nedá. Ale dopytovať riešenie, to áno.

Príklad vypracovaný hádaním hádaniek.

Pr. maticový vzorec...

Príklad, aj s kontrolou či tam už nejaké dáta sú a pod. Spustíte to iba s ktorými stĺpcami chcete, vkladá rovno hodnoty, nie vzorce. AK by sa Vám nepozdávalo volať 50x procedúru pre každý stĺpec, môžeme to upraviť, aby urobilo všetko naraz.
Dim Otazka As Byte

Sub Vypocitaj()
Otazka = 0
Rozdel ActiveSheet.Columns(1)
Rozdel ActiveSheet.Columns(3)
End Sub


Sub Rozdel(STLP As Range)
Dim Riadkov As Long, Pole(), Kontrola As Long, i As Long, C

With STLP.Resize(Rows.Count - 1).Offset(1, 0)
Riadkov = STLP.Cells(Rows.Count, 1).End(xlUp).Row - 1
If Riadkov > 0 Then
Kontrola = WorksheetFunction.CountIf(.Offset(0, 1), "<>")
If Kontrola > 0 Then
Select Case Otazka
Case 0: Otazka = MsgBox("Vo výslednej oblasti sa už nachádzajú data." & vbNewLine & "Chcete ich prepísať ?", vbQuestion + vbYesNo, "Upozornenie")
If Otazka = 7 Then Exit Sub
Case 7: Exit Sub
End Select
End If

ReDim Pole(1 To Riadkov, 1 To 1)
If Riadkov = 1 Then Pole(1, 1) = .Value2 Else Pole = .Value2

On Error Resume Next
For i = 1 To Riadkov
If Pole(i, 1) <> "" Then
C = Split(Pole(i, 1), "-")
Pole(i, 1) = TimeValue(C(1)) - TimeValue(C(0))
Select Case Err.Number
Case Is > 0: Pole(i, 1) = CVErr(xlErrValue): Err.Clear
Case 0: If Pole(i, 1) < 0 Then Pole(i, 1) = CVErr(xlErrValue)
End Select
End If
Next i
On Error GoTo 0

.Offset(0, 1).Value2 = Pole
End If
End With
End Sub

Úprava + pár príkladov dátumových stavov.

Tak len príklad...

Ten Váš kód fungovať nemôže z niekoľkých dôvodov. Premenná RadekOut nikdy nenadobudne inú hodnotu ako 0. Následný cyklus For j% by mal hľadať klienta, no nerobí vôbec nič :) Ďalej o pár riadkov nižšie wsOutput nieje to isté ako wsOutpu.

Uvádzam 2 rozličné prípady. Jeden pridáva neexistujúceho klienta, druhý ho ignoruje.

Je to len ukážka. Záležať bude na tom, koľko dát spracovávate, lebo potom by sa vynechal zápis celého poľa dát, a prepisovali by sa napr. iba zmenené riadky (pozor zápis všetkých napr. 1000 riadkov po 13 stĺpcov nemusí byť pomalší ako zápis 20 riadkov po jednom), alebo by sa mohla použiť kolekcia a pod.

Ale na to slúži poriadne popísaná príloha s príkladom.

Pre možnosť vkladania príloh sa musíte zaregistrovať. Ak Vám nebude vyhovovať KT riešenie od mepexg, tak Vám to makro upravím, ale nechce sa mi vytvárať si zdrojové súbory...

Tak to vysvetľujte ako pre tých, ktorý nevedia čo chcete. To znamená do detailu presne.

1. Zoznam dát je dynamický?
2. Voľba účtu bude v jednej jedinej bunke ?
3. Voľba vety bude v jednej jedinej bunke ?
4. Účet bude vždy navolený len jeden z X?
5. Keď zvolíte účet, potom čo ? Chcete vedľa vidieť, ktoré vety patria pod tento účet, alebo chcete mať na výber z viet, ktoré patria pod tento účet ?
6. Ak si chcete vybrať z viet, ktoré patria pod vybraný účet, čo sa má potom udiať ?
7. Zdrojové dáta sú zoradené ?
8. Prečo nevyhovuje pomocný skrytý stĺpec ? (jeden by sa urobil na získanie jedinečných hodnôt účtov, a druhý na prináležiace vety, z oboch by bol načítavaný dynamický výberový zoznam, tabuľka by bola ako Tabuľka, teda vzorce by sa dopĺňali samé)
9. Ak chcete vidieť všetky vety na základe vybraného účtu, v tom prípade je určo najlepšie SmartFilter, obdobne ako poslal mepexg. Čo Vám nevyhovuje na tomto ?

Nemôžete iba hovoriť, toto je zlé, toto je kostrbaté, toto bude zložité, a čakať, že všetci budú stále tipovať a snažiť sa Vám dodávať rôznorodé riešenia, a Vy len stroho odmietnete. Veď povedzte čo presne Vám vadí na ktorom riešení. Neuviedol ste ani to, čo som sa pýtal už predtým, či sa bude jednať o jedinú bunku, alebo či ide o viacero buniek s rovnakou možnosťou výberu. A ako posledná vec, keď vám niečo nevyhovuje, tak okrem popisu toho čo nevyhovuje a prečo, pridajte presný manuálne vytvorený príklad toho ako to má vyzerať, kde napíšete kľudne do komentára v bunke, že toto tu chcem voliť v rozbaľovacom zozname z týchto dát (kľudne nakreslite šípky), a tuto chcem aby sa v tomto konkrétnom prípade zobrazilo presne toto, lebo to zodpovedá tejto a tejto voľbe...
Proste presne. Pochybujem, že som sám, ktorý nevie čo chcete...

No práve záleží na tom, čo ste neuviedol - čo s tým chcete robiť a čo dosiahnuť, ako sa to má používať. Ak poviete toto, bude sa dať premýšľať nad riešením.

Podľa mňa nechcete filtrovať tabuľku, ale chcete závislý výberový zoznam. Rozdiel je obrovský. To čo vy popisujete sa dá urobiť takto (príloha), a závislý výberový zoznam by musel fungovať na prerobenej tabuľke, kde by boli záznamy jednej úrovne pekne za sebou (stĺpec A) a potom by sa dala ľahko nájsť pozícia prvej bunky a počet rovnakých, ktoré by sa offsetovali na stĺp B, čo by bol zdroj pre závislý výberový zoznam. Takých riešení tu nájdete neúrekom. Výhodou by bola možnosť použiť ich viackrát (napr. fakturácia, vyskladňovanie a pod.). Lebo to čo opisujete je LEN na jednu bunku.

Ak rozumiem správne nieje potrebný maticový vzorec, ale stačí
=COUNTIF(C4:G15;C2)
Ak je 0 tak tam hodnota nieje, ak je >0 tak tam hodnota je. Skúšané na dátumoch.


Strana:  1 ... « předchozí  135 136 137 138 139 140 141 142 143   další » ... 286

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