Vždyť jste sem dostal, až k zaslání dotazu - tak jste asi přehlédnul, že po klikání na
Wall.cz - Forum - MS Excel - tam je první příspěvek nahoře: Pravidla fóra - a v něm bod. 3 - Registrovaní uživatelé mohou vkládat přílohy
Jak je uvedeno výše, pomocí Sumif, v příkladu zde jen praktická ukázka, jak asi na to, výsledek pak můžete zkopírovat jako hodnoty zase do sl.A
Našeptávání myslím umí snad jen nějaká položka v userformu, nevím jistě. Ale dám sem jako ukázku soubor, kde je to udělané přes FILTER - tzn. pro excel od určité nové verze, nejlíp ms365. Zdroj "My Online Training Hub", jména wikipedie.
To bude náročný úkol. Na to já nestačím, ale při čtení zadání mě okamžitě napadlo, že já bych zkusil druhou cestu, udělat si jedno makro, které mi spraví v listu veškeré potřebné formátování a pod. a zachová hodnoty. Boj s uživatelem je totiž vždy předem prohraný a těch zákazů může být nakonec tisíce.
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.
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
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.