Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Excel - jak na automaticke cislovani v odkazech pod sebou

Ahoj, prosim, mohl by mi nekdo pomoci s cislovanim v Excelu?
Jde o to, ze si do první bunky 1A zadam nejaky text, napriklad https://www.academy.com/shop/pdp/ruger-sr1911-45-auto-centerfire-pistol-201039084. Do druhe (2A) cili o radek niz bych si zadal https://www.academy.com/shop/pdp/ruger-sr1911-46-auto-centerfire-pistol-201039084, o dalsi radek https://www.academy.com/shop/pdp/ruger-sr1911-47-auto-centerfire-pistol-201039084. Odkazy jsou vazne ilustrativni a nemaji se mnou nic spolecneho, chci jen ukazat, ze se lisi cisla 45, 46 a 47.

Jak mam prosim udelat, aby mi Excel vygeneroval na dalsi radky stejny odkaz, ale s ciselnou hodnotou postupne se zvysujici az treba do stovky? Aby byl posledni odkaz https://www.academy.com/shop/pdp/ruger-sr1911-100-auto-centerfire-pistol-201039084.

Dekuji Vam za pomoc

Předmět Autor Datum
Za prvé, bunka sa adresuje ako A1 a nie 1A. Ak napíšeš do A1: https://www.academy.com/shop/pdp/ruge…
robert13 08.04.2019 15:39
robert13
Aby si sa netrápil, tu máš celé makro, ktoré Ti to urobí: Sub FillHyperT() Application.ScreenUpdati…
robert13 08.04.2019 16:26
robert13
Myslím, že to děláš příliš složitým způsobem. V příloze je vzorový dokument. Použil jsem funkci =CON…
Karel6666 08.04.2019 16:54
Karel6666
Když na to přijde není potřeba ani ten pomocný sloupec. Můžeš "číslovat" rovnou ve vzorci. Za předp…
Siki83 08.04.2019 17:10
Siki83
:beer: Skvelé, ten ŘÁDEK ma nenapadol a keď tam doplní ten hyperlink, tak to má komplet =HYPERLINK(… poslední
robert13 08.04.2019 17:19
robert13
Samozrejme, dá sa to i takto a pre dotazovateľa je Tvoja verzia asi skutočne zrozumiteľnejšia, ale t…
robert13 08.04.2019 17:15
robert13
.Copy .PasteSpecial Paste:=xlPasteValues mužeš nahradit za .Value = .Value Application.CutCopyMod…
Siki83 08.04.2019 17:08
Siki83

Za prvé, bunka sa adresuje ako A1 a nie 1A.

Ak napíšeš do A1: https://www.academy.com/shop/pdp/ruger-sr1911-45-auto-centerfire-pistol-201039084
tak do A2 napíš:

=LEFT($A$1;46) & MID($A1;47;2)+1 & RIGHT($A$1;33)

a vyplň vzorcom nadol až kým získaš č 100

Funguje to skutočne len po tú 100, pretože nad 100 je vypočítavaná časť trojciferná a teda vzorec by sa pre stovkové čísla musel upraviť.
Ak by bolo potrebné vyplňovať i stovkové rády (alebo i smerom späť - jednotkové rády) a malo by to byť automatické, je to riešiteľné zapracovaním kontroly dĺžky vstupného reťazca do vzorca.
Avšak - výsledkom sú len reťazce ako výsledky vzorca, teda nie odkazy na stránky.
Pretransformovať ich na hypertextové prepojenie na net sa dá ručne (prelepiť vzorce hodnotami a otrocky do každej bunky vstúpiť a stačí odentrovať - obsah bunky sa zmení na hypertextový odkaz).

Rýchlejšie je to jednorazovým makrom:
celé prelepiť hodnotami, hodiť do cyklu od prvého až po posledný riadok a na každý aplikovať príkaz

ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=ActiveCell.Text

Aby si sa netrápil, tu máš celé makro, ktoré Ti to urobí:

Sub FillHyperT()
    Application.ScreenUpdating = False
    For i = 2 To 56
        With Cells(i, 1)
            .FormulaR1C1 = "=LEFT(R1C1,46) & MID(R[-1]C1,47,2)+1 & RIGHT(R1C1,33)"
            .Copy
            .PasteSpecial Paste:=xlPasteValues
        End With
        ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 1), Address:=ActiveCell.Text
    Next i
    Application.CutCopyMode = False
    Cells(1, 1).Select
End Sub

Tento konkrétny kód to spracováva:
- pre prípad, že začíname v bunke A1
- že sa jedná o ten reťazec, ktorý si uviedol
- končíme so 100-ou

Ak to potrebuješ pre iné umiestnenie, iné textové reťazce, aplikovať pre iné rozsahy, musíš si to upraviť podľa Tvojich potrieb.
Aby si pochopil, ako sa vytvára ďalšia položka, preštuduj si vzorec uvedený v mojej prvej odpovedi.

:beer:
Skvelé, ten ŘÁDEK ma nenapadol a keď tam doplní ten hyperlink, tak to má komplet

=HYPERLINK(CONCATENATE("https://www.academy.com/shop/pdp/ruger-sr1911-";ŘÁDEK()+44;"-auto-centerfire-pistol-201039084"))

anglická verzia:

=HYPERLINK(CONCATENATE("https://www.academy.com/shop/pdp/ruger-sr1911-";ROW()+44;"-auto-centerfire-pistol-201039084"))

Samozrejme, dá sa to i takto a pre dotazovateľa je Tvoja verzia asi skutočne zrozumiteľnejšia, ale tak či tak, Tvojimi výsledkami sú tiež len textové reťazce ako výsledky vzorcov.
Nestačí skryť pomocný stĺpec, zo vzorcov linky nedostane.

Medzitým som našiel i iné riešenie prevodu do hyperlinku: jednoduchý vzorec "=HYPERLINK(odkaz na bunku, obsahujúcej text adresy)"
Pokiaľ mu nevadia pomocné stĺpce, využitím tohto vzorca ich bude už mať dva... ale nemusí robiť s makrami, to je fakt.

Aj moje makro sa na základe tohto vzorca dá prepracovať aby link nezískaval príkazom VBA ale týmto vzorcom ale nič tým nezískam, takže je to jedno.

Zpět do poradny Odpovědět na původní otázku Nahoru