Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  52 53 54 55 56 57 58 59 60   další » ... 140

Přišel jsem na to proč to nefunguje.

Není to v CTRL+A (^a), ale v ALT+V (%v). Přes Sendkeys to nevyvolá stisk tlačítka Najít vše, ale pouze jeho výběr. Takže nedojde k vyhledání hodnot. Stisk se mi nasimulovat nepodařilo.

@xlnc
RowDifferences - pěkné a máte pravdu, nepoužívám.

Tak protože SendKeys považuji za nespolehlivé a v podstatě se nedá ladit, tak ho nepoužívám. Vždy jsem to obešel. Takže nevím.

Vyzkoušel jsem - nepamatuje si to nalezené buňky. Proč? Bo je hlupy, no. ;)
Stejně tak háže chybu při odstranění celého sloupce. Proč? No bo je fakt hlupy. ;)

Ale jsem rád, že tohle jednořádkové řešení nefunguje. ;))

Nicméně jste zdůraznil v českém - takže v anglickém to jede?

@xlnc
A tu prdel s nicky taky nechápu.

img
Já myslím, že chápete.
Prostě další YABA.
Dal bych ruku do vody o teplotě 97,7 stupňů Fahrenheita za to, že to znamená "to". Než jsem to začal používat, taxem si to ověřoval, to si pamatuji. Teď to nemůžu najít... img

Nicméně, že to není výmysl tohoto fóra se můžete přesvědčit na jiných fórech. např.:
- na LinkedIn běžně
- ve 14 příspěvku zde
a určitě bych našel i dále..

Jako emotikon se to používá jako obejmutí, takže se to dá volně přeložit jako
@xlnc = milý xlnc img

já si určitě netu.

@marjankaj
To nevadí - v zadání je (doplněno pod čarou), že tam nějaká být musí.

@xlnc
Asi to budete muset vložit. Už se nějak nesoustředím Nakonec bych to stejně udělal nějak podobně jako toto.

@ALL
Tady je mé jednořádkové řešení:
1. varianta: With Range(Range("A1"), ActiveSheet.UsedRange.EntireColumn).Rows(1)
Range(Application.ConvertFormula(Replace(Join(Filter(Evaluate("=TRANSPOSE(TRANSPOSE(" & .Address & ")&""#|_C""&ROW(1:" & .Columns.Count & "))"), "10#|_"), ","), "10#|_", vbNullString), xlR1C1, xlA1, True)).Delete
End With 'Range(Range("A1"), ActiveSheet.UsedRange.EntireColumn).Rows(1)


2. varianta - pracuje s celým řádkem a tak nepotřebuje transpozice: With ActiveSheet.Rows(1)
Range(Application.ConvertFormula(Replace(Join(Filter(Evaluate("=" & .Address & "&""#|_C""&COLUMN(1:" & .Columns.Count & ")"), "10#|_"), ","), "10#|_", vbNullString), xlR1C1, xlA1, True)).Delete
End With 'ActiveSheet.Rows(1)


No a nakonec - co nejkratší řešení (E007 a novější - pro starší by mělo stačit nahradit počet sloupců):Range(Application.ConvertFormula(Replace(Join(Filter(Evaluate("1:1&""#C""&COLUMN(1:16384)"), "10#"), ","), "10#", ""), xlR1C1, xlA1)).Delete

Tak mně napadlo další řešení v souvislosti s tou rekurzí (@marjankaj - stačilo ošetřit a nekončilo by chybou a zadání by splnilo, viz níže) a to využití specifické vlastnosti basicu:10 Columns(WorksheetFunction.Match(10, Range("1:1"), 0)).Delete
20 If WorksheetFunction.CountIf(Rows(1), 10) > 0 Then GoTo 10

Takže je to cyklus a je na 2 řádky. Stejně by šel využít klasický label (ten už ale zadání nesplňuje):lblDel: Columns(WorksheetFunction.Match(10, Range("1:1"), 0)).Delete
If WorksheetFunction.CountIf(Rows(1), 10) > 0 Then GoTo lblDel

Takže můžete klidně přemýšlet dále...

Ještě mně něco napadlo, tak jsem to vyzkoušel.

Pokud se rozhodnete pracovat s celým prvním řádkem, můžete vynechat kroky 1 a 2
10

V extrému jsem se dostal na 140 znaků a už se musím věnovat něčemu serióznímu ;))

Tak mám hotovou jednořádkovou verzi pro mé (tedy původní) zadání ;))

Je to jednoduché - tady je nápověda:
1. transponovat
2. transponovat
3. vyfiltrovat
4. spojit
5. nahradit
6. předělat
7. odstranit

To by Vás mohlo navést 2 10

Moje první řešení bylo právě pomocí Evaluate With Range(Range("A1"), Range("A1").End(xlToRight))
.Value = Evaluate("IF(" & .Address & "=10,NA()," & .Address & ")")
.SpecialCells(xlCellTypeConstants, xlErrors).EntireColumn.Delete
End With 'Range(Range("A1"), Range("A1").End(xlToRight))

Tady zároveň ukazuji, jak jsem to myslel s tím With ;) .
Tato varianta ale nevyhovuje, protože nahrazuje prázdné buňky 0.

aha - takže jednořádkové řešení se týká toho konkrétního zadání nebo jakéhokoliv?
Tak nějak Vám vracím Vaš otázky ;)))

@xlnc
ad a)
Takže jste se dostal stejně daleko, jako já ;))

Rekurze - vložte ukázku.
Bohužel mám teď fofr - to téma mně napadlo nedávno při odpovědi na jiném fóru.

Ten jeden řádek (nedesítky) už máte vyřešený nebo jen spekulujete ;). A jde o nedesítky nebo o menší než 10 ;)))
Popřemýšlím ;)

Ano, vedel.
Ale nepoužil bych combobox, ale frame + images.

Něco podobného jako mám v RichTextBoxu - výběr barev.
http://elcha-en.blogspot.com/2015/02/richtextbox-in-excel_2.html

Ještě dodám.
Berte jako perličku. Pokud bych toto dělal v nějakém projektu, šel bych na to cyklem podobně jako tarantula222. Protože je to obecné a bezpečné řešení.

@marjankaj
Ano - to je ono - využití chyby a pěkně bez cyklu.
Díky.

Pro puntičkáře: samozřejmě, pokud by v prvním řádku byl vzorec s chybnou hodnotou, tak to fungovat nebude.

Díky všem, kdo to zkoušeli - vždy je to stejně jenom o tom, jestli to v té hlavě vystřelí nebo ne ;)

@xlnc
držím palce
chvíli jsem uvažoval, ale nic mně zatím nenapadlo, taxem dal 2.
Zatím ;)

@marjankaj
Teď, když je to v tom tagu, tak vidím, že tam máte Selection a nemáte Select (za který bych Vás mimochodem víte co ;) )
Je to detail, ale takhle to nebude fungovat.

@marjankaj
Poprosím ten kód do tagu Code

Pěkné.
Člověk nikdy nedomyslí ;)) - takže teď ještě s těmi prázdnými buňkami ;)))


Strana:  1 ... « předchozí  52 53 54 55 56 57 58 59 60   další » ... 140

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje