Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  5 6 7 8 9 10 11 12 13   další » ... 286

pr.

Ak ide len o počet riadkov, ktoré sú označené (v akomkoľvek stĺpci) a zároveň viditeľné, stačí
pocet = Intersect(Selection.Parent.Columns(1), Selection.EntireRow).Cells.Count
Ale o to asi nepôjde.

Čo myslíte pod pojmom "pole"? Skutočný VBA Array()? Alebo oblasť buniek? Čo znamená naplniť hodnotami? Akými? Konštantou? Každá je variabilná a počítaná? Zložitosť a týchlosť zápisu bude záležať na množstve vecí. Napr. či sú zapisované stĺpce pri sebe alebo ob-stĺpce, či sú medzi hodnotami vzorce a pod. Čo predstavuje "poleHodnot(idx,0)"?

Musíte to podstatne upresniť, ideálne pomocou anonymizovanej prílohy formou súboru Excelu, kde bude znázornené čo máte, a manuálne vytvorené aj to čo má po úprave vzniknúť + popis podmienok, výpočtov dopĺňaných hodnôt a pod. V prílohe ale musíte zachovať štruktúru a formáty. Ak je niekde vzorec, nechajte ho tam. Je to dôležité napr., ak chcete hromadne zapisovať do viacerých nesúvislých stĺpcov/riadkov, tak sa dá použiť namiesto niekoľkonásobných zápisov, jeden, kde sa aj prepíšu nemenené hodnoty tými istými. Kvôli rýchlosti. To ale nie je celkom možné, ak sú tam vzorce.

Som zatiaľ len na mobile, tak zatiaľ len rada.
Musíte použiť najskôr cyklus
For Each ARE in Selection.EntireRow.Areas
A potom
For Each RIADOK in ARE.Rows
If Not RIADOK.Hidden Then

Alebo
...SpecialCells(xlCellTypeVisible)

Sakriš, LAMBA a MAP nemám, škoda, nevyskúšam.

Na tú fotku máme použiť AI ? 5

To je na figu, lebo som si vlastne nevšimol, že "xxxOstrava-sever,stará," nezačína veľkým písmenom.

Kriste, čo je toto za systém, takto dementný export...

Nič iné ma nenapadá.

EDIT:
Ak by ste v tom zozname "Potřebuji odstranit" mali presné celé texty na odstránenie, tak by to možno šlo. Zabezpečilo by sa aby bola dočasne na začiatku aj konci "," a nahrádzal by sa vždy text ","&text&",".

Neviem, no, treba si nájsť a určiť nejaké pravidlá...

No lenže Vy keď chcete odstrániť "Praha-východ", tak sa musí odstrániť ",Praha-východ,-kopie" alebo "Praha-východ,-kopie,", ale aj "Praha-východ," alebo ",Praha-východ". To je problém, že nie je zaručené, že text za čiarkou nepatrí ešte k predchádzajúcemu mestu.

Takže ma napadá, že jediným identifikátorom rozdeliteľnosti textu na skutočné celé znenia miest, je ",X" - teda čiarka nasledovaná veľkým písmenom. Je to tak?

Ak áno, môžem Vám na to urobiť makro.

=INDEX($5:$5;LARGE(IF(T6:AA6=MIN(T6:AA6);COLUMN(T6:AA6);FALSE);1))
=INDEX($5:$5;LARGE(KDYŽ(T6:AA6=MIN(T6:AA6);SLOUPEC(T6:AA6);NEPRAVDA);1))


1. vzorec je SK
2. vzorec je CZ

Takže to najmenšie číslo v riadku, sa bude v riadku vyskytovať iba raz? Ak viackrát, má sa vypísať sektor, kde sa najmenšia hodnota vyskytla ako prvá zľava->doprava?
=INDEX(T$5:AA$5;MATCH(MIN(T6:AA6);T6:AA6;0))
=INDEX(T$5:AA$5;POZVYHLEDAT(MIN(T6:AA6);T6:AA6;0))

Hmm, no ja myslím že nie. Tiež by sa mi to už pár krát šiklo...

V makre je na testovacie účely tento riadok
If Not DEL Is Nothing Then WS.Activate: DEL.Select, ktorý iba označí bunky. Pre istotu. Skontrolujte si, či to sedí.

Ak je to to, čo ste chcel, tak tento riadok zmažte (alebo deaktivujte pridaním apostrofu na začiatok) a aktivujte ten mazací riadok za ním (vymazaním apostrofu na začiatku)
If Not DEL Is Nothing Then DEL.ClearContents

Dáta sú od 1. riadku? Nie je tam hlavička? Jedná sa o obyč. tabuľky alebo sú to objekty Tabuľky (ListObject)? Mená máte v nejakom zozname, voči ktorému ma prebehnúť kontrola, alebo iba všeobecná kontrola porovnávaním text->text? Rozdiel je ohromný, pri zozname sa skontroluje najskôr existencia v zozname až potom prehľadáva listy. Naopak pri text-text sa prehľadávajú hneď dáta v listoch. Názvy mesiacov sú vždy v CZ? Sú dáta filtrované?

Tak teda príklad:
Sub Generuj_Sektory()
Dim Sektory() As String, MozneSektory() As String, Vysledek() As String
Dim Den As Integer, Delnik As Integer, Pozice As Integer, Sektor As String, bOK As Boolean

Const POCET_DNI As Long = 5
Const POCET_DELNIKU As Integer = 3

Randomize

With ThisWorkbook.Worksheets("Hárok1")
Sektory = Split(Join(Application.Transpose(.Range("A4:A11").Value), ","), ",")
If UBound(Sektory) + 1 < POCET_DELNIKU Then MsgBox "Málo sektorů.", vbCritical: Exit Sub
ReDim Vysledek(1 To POCET_DNI, 1 To POCET_DELNIKU)

For Den = 1 To POCET_DNI
MozneSektory = Sektory

For Delnik = 1 To POCET_DELNIKU
bOK = False

While Not bOK
Pozice = Int(Rnd() * (UBound(MozneSektory) + 1))
Sektor = MozneSektory(Pozice)
bOK = Den = 1
If Not bOK Then
bOK = Sektor <> Vysledek(Den - 1, Delnik)
If Not bOK Then If UBound(MozneSektory) = 0 Then Den = Den - 1: Exit For
End If
Wend

MozneSektory(Pozice) = "•"
MozneSektory = Filter(MozneSektory, "•", False)
Vysledek(Den, Delnik) = Sektor
Next Delnik
Next Den

.Range("E4").Resize(POCET_DNI, POCET_DELNIKU).Value = Vysledek
End With
End Sub

Rýchlejšie by to bolo asi cez kolekcie alebo nahrádzanie v stringu, ale myslím, že pre Vaše potreby je toto cez Filter aj tak ako delo na komára 5

Priamo v PQ asi cez NestedJoin.

Na hárku1 uvádzate oblasť C10:R20, čo je 176 hodnôt (11*16), na hárku2 uvádzate H10:H20, čo je 11 hodnôt. Ak by ste sa iba zmýlil, a na hárku1 je to vodorovne, tak by ste napísal C10:R10. Nie 20. Ale to aj tak nesedí, lebo je to 16 hodnôt. Na hárku2 je 11.

Dajte si prosím záležať, a napíšte správne oblasti.


Strana:  1 ... « předchozí  5 6 7 8 9 10 11 12 13   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