Zaslal/a Morfeuss 25.2.2021 8:44
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:
To nebude problém. Len ak vkladáte prílohu XLSM musíte ju zabaliť do ZIP/RAR.
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)
elninoslov napsal/a:
Skúste. Je to aj s popisom (ignorujte pls gramatické chybky).Příloha: 49958_reporting-nakup-2.zip (90kB, staženo 2x)
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.