Příspěvky uživatele


< návrat zpět

Strana:  « předchozí  1 2

Omlouvám se za komplikace, ale netušil jsem ze mně toto vyřeší jedno makro.

Ad 1) nee nebude, už není potřeba, vyřešil jste to makrem kde se list pojmenuje podle toho z jaké buňky je makro spuštěno.

Ad 2) V seznamu je to co půjde jako název listu z buňek ve sloupci C (např: abcde) a do buňky B10 v novém makrem vytvořeném listu se dotáhne buňka ze sloupce A stejného řádku (dle příkladu abcde = 12345).

Děkuji za čas a úpravu

elninoslov napsal/a:

Spravil som to takto:
-overuje existenciu listu
-ak list existuje, overí či odkaz v tej bunke sedí s textom v bunke a prípadne odkaz opraví
-ignoruje prázdne bunky
-funguje na multioblasť
-spúšťa sa skratkou Ctrl+M
Sub Vytvor_list()
Dim Are As Range, Bunka As Range, H(), x As Integer, y As Long, idx As Integer

If TypeName(Selection) <> "Range" Then MsgBox "Vyberte oblast buněk.", vbExclamation: Exit Sub

idx = Worksheets.Count
Application.ScreenUpdating = False

For Each Are In Selection.Areas
If Are.Cells.Count = 1 Then ReDim H(1 To Are.Rows.Count, 1 To Are.Columns.Count): H(1, 1) = Are.Value Else H = Are.Value

For y = 1 To UBound(H, 1)
For x = 1 To UBound(H, 2)
If Not IsEmpty(H(y, x)) Then
Set Bunka = Are.Cells(y, x)
With Bunka
If Kontrola_NeExistence(CStr(H(y, x))) Then
If .Hyperlinks.Count > 0 Then
If Not Range(.Hyperlinks(1).SubAddress).Parent.Name = H(y, x) Then .Hyperlinks.Add Anchor:=Bunka, Address:="", SubAddress:="'" & H(y, x) & "'!A1", ScreenTip:=H(y, x)
End If
Else
wsVZOR.Copy After:=Worksheets(idx)
ActiveSheet.Name = H(y, x)
ActiveSheet.Range("A3") = H(y, x)
.Hyperlinks.Add Anchor:=Bunka, Address:="", SubAddress:="'" & H(y, x) & "'!A1", ScreenTip:=H(y, x)
idx = idx + 1
End If
End With
End If
Next x
Next y
Next Are

wsSeznam.Activate
Application.ScreenUpdating = True
End Sub

Function Kontrola_NeExistence(sName As String) As Boolean
On Error Resume Next
Kontrola_NeExistence = Len(Worksheets(sName).Name)
End Function

Vy tam máte ale ešte makro, ktoré Vám pri zmene bunky A3 v ktoromkoľvek liste zmení jeho názov na zmenenú hodnotu.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$3" Then Exit Sub
ActiveSheet.Name = Range("a3").Value
End Sub
Tu vidím veľký problém v tých odkazoch. Vy keď zmeníte názov listu zmenením tej bunky A3, tak Vám prestane správne odkazovať link v liste Seznam.Příloha: 49948_vytvareni-listu-ze-vzoru-s-hyperlinkem.zip (21kB, staženo 2x)


Děkuji, je to super. Ta změna názvu podle listu byla první varianta, kterou jsem to chtěl řešit, ale nakonec to zvládne vaše makro. Do bunky A3 mně to ale vkládá název to bych chtěl z makra zrusit. Co bych ale potřeboval a bylo by to dokonale, kdyby to umelo vlozit na nově vytvořený list do bunky B10 číslo, které je uvedené na stejném řádku ve skoupci A v seznamu. Příklad: na listu "seznam" pustím makro na bunce C4 a makro probehne jako nyní jen jeste vlozi na nový list do bunky B10 obsah bunky A4 z listu "seznam". Tak to by to bylo automatizovane uplne TOP dle mých předtav. Upraveny soubor přikládám a jeste moc prosím o úpravu.

elninoslov napsal/a:

To nebude problém. Len ak vkladáte prílohu XLSM musíte ju zabaliť do ZIP/RAR.


Ok, děkuji a mohl bych poprosit o kód. Přílohu jsem opravil.

Dobrý den, v makrech a vba se vůbec nevyznám, tak Vás zkušené poprosím o radu s vytvořením tohoto makra.

Potřeboval bych aby makro, které spustím na aktivní buňce ve sloupci A na listu Seznam udělalo kopii listu VZOR s umístěním na konec sešitu, pojmenovalo ho shodně s obsahem aktivní buňky ve sloupci A + vytvořilo hypertextový odkaz na tento nový list.

Vzor přikládám a bylo by to takto možné?

Děkuji

elninoslov napsal/a:

Takto?
=AVERAGE(IF((A1:A50<>"")*(COUNTIF(OFFSET(A1;;;ROW(A1:A50));A1:A50)=1);COUNTIF(A1:A50;A1:A50)))
=PRŮMĚR(KDYŽ((A1:A50<>"")*(COUNTIF(POSUN(A1;;;ŘÁDEK(A1:A50));A1:A50)=1);COUNTIF(A1:A50;A1:A50)))
Rozsah 50 si zmeňte na Váš rozsah.


Děkuji, vše funguje jak má, jen mně to do průměru počítalo i prázdné buňky, tak jsem to obešel jinak. Ještě jednou díky moc za cenné rady...

Děkuji, vzorec funguje perfektně pro zvolenou oblast buněk, já mám ale oblast a to jsem před tím neuvedl A1:A10000 do které se mně načítají přibývající data odkazem z externího sešitu. Pokud tedy rozšířím oblast na A:A10000, která obsahuje prozatím i prázdné buňky, tak vzorec počítá nesmyslný průměr. Potřeboval bych tedy aby vzorec počítal průměr jen z buněk, které jsou vyplněné. (prázdná v podstatě není žádná, protože všech 10000 buněk obsahuje odkaz na externí sešit). Půjde to nějak prosím?

Děkuji

elninoslov napsal/a:

Napadá ma maticový vzorec (Ctrl+Shift+Enter):
=AVERAGE(IF(COUNTIF(OFFSET(A1;;;ROW(A1:A31));A1:A31)=1;COUNTIF(A1:A31;A1:A31)))
=PRŮMĚR(KDYŽ(COUNTIF(POSUN(A1;;;ŘÁDEK(A1:A31));A1:A31)=1;COUNTIF(A1:A31;A1:A31)))

elninoslov napsal/a:

Premýšľam ako odpovedať, bo skôr ako napíšem ako fungujú základné veci v Exceli, ako je COUNTIF a relatívne/absolútne adresovanie buniek, tak skôr to vygooglite.)
COUNTIF - spočíta počet výskytov dátumu v oblasti.
Túto oblasť si určíme vždy od prvej bunky $A$1, po aktuálny riadok v stĺpci A. Teda $A$1:A1, $A$1:A2, $A$1:A3 ...
Takže v každom riadku počíta koľko sa tam nachádza tých dátumov od začiatku po práve počítaný riadok.
Rozdiel medzi $A$1 a A1:
$A$1 - absolútne adresovanie buniek
A1 - relatívne adresovanie buniek
Značka absolútneho adresovania, teda $, pribíja danú súradnicu, aby sa nehýbala, pri kopírovaní vzorca. Tu na začiatku pribijeme aj stĺp A aj riadok 1, preto oblasť spočítavania vždy začína v $A$1.
Narozdiel od toho relatívne adresovanie, tam kde $ nieje, sa mení, podľa toho, kam vzorec posunieme/skopírujeme. Preto sa v každom riadku mení adresa koncovej bunky, pri skopírovaní vzorca na A1, A2, A3, ...

PS: Ešte presnejšie by to malo byť $A$1:$A1


Ok, už tomu rozumím, countif sem použil, ale počítalo mně to v každém řádku jen počet výskytů. Další úskalí se kterým se ve stejné tabulce potýkám je, jak získat vzorcem průměrný počet záznamů ze sloupce datum když 8.2. je tam 10x, 9.2. 8x a 10.2. 13x tak by měl být průměr 10,33. Mělo by to být asi nějak takto počet vyplněných buněk ve sloupci A / počet jedinečných hodnot ve sloupci A.

elninoslov napsal/a:

=COUNTIF($A$1:A1;A1)


Děkuji moc, funguje perfektně a můžu ještě požádat o vysvětlení ať pochopím a vím pro příště?

Děkuji

Dobrý den, prosím o radu jak na automatické číslování buněk v závislosti na obsahu sousední buňky.
Příklad: ve sloupci A vypisuji datum, např: 8x pod sebou je datum 8.2.2021, zítra budu pokračovat a zapíšu 9x datum 9.2.2021. Nyní musím do sloupce B očíslovat počet výskytů konkrétního datumu 1-10 a zítra příkladně 1-8. Potřeboval bych, aby se mně do buněk ve sloupci B tyto čísla vzorcem nějak vypisovali (počítaly) automaticky. Děkuji za radu


Strana:  « předchozí  1 2

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