Testoval jsem a funguje mi tento kód:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim testValue As Variant
If Target.Cells.Count > 1 Then Exit Sub 'ignoruje zmìny s více než jednou buòkou
If Intersect(Target, Range(Cells(8, 4), Cells(372, 4))) Is Nothing Then Exit Sub 'ignoruje zmìny mimo urèený rozsah
testValue = Target.Value
If IsNumeric(testValue) Then
If testValue >= 0 And testValue < 1 Then
Target.Value = Format(testValue, "h:mm")
ElseIf testValue >= 1 And testValue < 24 Then
If Int(testValue) = testValue Then
Target.Value = Format(testValue, "0") & ":00"
Else
Target.Value = Format(testValue, "h:mm")
End If
End If
End If
End Sub
Jestli se jedná o Windows, tak rozhodně nastavit v Plánování úloh.
bobika99: mě funguje
Oznacene.Rows.Counti na výběr pouze jedné buňky !
Ano, GoTo Kam (značka "Kam:" - tady s dvojtečkou se umístí na požadované místo kódu, musí být jedna jediná)
Používejte "přejít na ..." CTRL+G. Napíše se jen cílový sloupec, č.řádku dáte stejný co jste >> a je to.
Zkuste u všech dotazů na data zakázat refresh na pozadí.
Dodatek - hned jak jsem příspěvek odeslal a ještě znovu četl zadání, napadlo mě, že by to šlo upravit na první písmeno jména - ale pak už JEN na toto první písmeno - tak ještě jeden přiložený soubor.
edit: oprava souboru
Dá se to i bez VBA, viz. přiložený soubor, ale podmínkou je mít Excel v poslední verzi (365?), kde už je funkce FILTER.
Já jsem to dal zatím jen s pomocným polem UNIQUE, tudíž pro MS365.
Tak jestli je to jednorázová akce a nejsou tam v tom vzorce, tak bych to udělal: do pom.sloupce vzadu sloučit Concatenate sloupce, do počtu nejvyššího, mezi si dát oddělovač např. #, nakonec připojit text a pak výsledek rozdělit text do sloupců s tím oddělovačem. Netestoval jsem, ale mohlo by to fungovat. Vzorce samozřejmě roztáhnout na potřebný počet řádků.
EDIT: tak pardon, bylo by to složitější, vytvořený sloupec přeuložit "jako hodnotu" a před rozdělením do sloupců v oblasti nahradit např. ### nebo ## za jeden rozdělovač #. Ale pro 2000 řádků i to se vyplatí
Taky jsem to kdysi hledal, nenašel, tak používám toto pro reset hledání: (nemyslím, že tohle tak moc zpomalí )
Sub reset_hledani()
With ActiveSheet.Range("A1:A5")
Set rreset = .Cells.Find(What:="", _
After:=.Cells(.Cells.Count), _
LookIn:=xlFormulas, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
End With
Set rreset = Nothing
End Sub
Volat z hlavního makra před ukončením pomocí Call.
Tak to je zlé, doufejte v pomoc od elninoslov, ten je tu nejšikovnější.
Už jsem tu před lety dával soubor, který by v tomto případě mohl posloužit, buď úplně nebo jako vzor řešení. Kdysi jsem ho potkal někde na internetu, ale zdroj už přesně neznám.
edit: vinou haprujícího připojení se mi nedaří připojit soubor, ale dá se na Wall.cz vyhledat: hledejte VypisAdresareSoubory_4.zip
nebo by to mělo být v https://wall.cz/index.php?m=topic&id=17836&page=1#post-39166
Ahoj, nevíte někdo jak vyresetovat chování excelu po použití příkazu Text do sloupců? Např. si obrátím jméno/příjmení s pomocí text do sloupců, když následně vkládám textová data se schránky do jiného souboru, vloží se mi do 2 sloupců! Pomůže mi jen zavřít kompletně excel. Excel 365. Na www jsem našel jen nezodpovězený shodný dozat u Lašáků.
pro All - ano, omlouvám se, funguje, nedostal jsem se k tomu "null" , a už vůbec nechápu, že to s tím pak funguje, ale je to tak. Celé si ukládám do svých postupů.
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.