Stránka 1 z 1

Excel - makro na upravu listu

Napsal: 25 kvě 2017 09:48
od Gotchi
Dobry den, predem se omlouvam pokud uvadim tema/pozadavek spatne, popr. pokud zde jiz neco takoveho je. Potreboval bych od nekoho zkuseneho poradit ohledne tvorby makra.
A) Mam na prvnim listu (List1=Prehled) seznam s hodnotami A-X. Z tohoto seznamu bych chtel vytvorit pro kazdou hodnotu list s nazvem z odpovidajici bunky seznamu. Tedy razeni listu v sesite by bylo "Prehled" a nasledne listy A-X. Neco podobneho jsem nasel, ale neni to zcela dle mych predstav. (V pripade shodnych hodnot by tato byla preskocena).
B) Na kazdem nove vytvorenem listu by bylo tlacitko/bunka s hypertext. odkazem ktera by vracela vzdy na prvni list, tedy na "Prehled".
Muze mi prosim nekdo poradit jak na to?
Mnohokrat dekuji.

Re: Excel - makro na upravu listu

Napsal: 10 črc 2017 22:16
od JozefB
Ahoj, tu je časť kodu (treba dokončiť Hyperlinks s odkazem na list Prehled)
rozdelil som to na 3 samostatné makra:
Sub AddSheets()
' tvorba listu se seznamu
Dim cell As Excel.Range
Dim wsWithSheetNames As Excel.Worksheet
Dim wbToAddSheetsTo As Excel.Workbook
Set wsWithSheetNames = ActiveSheet
Set wbToAddSheetsTo = ActiveWorkbook
'For Each cell In wsWithSheetNames.Range("A2:A5") rozsah bunek alebo select, ako je o riadok nižšie
For Each cell In Intersect(Selection, ActiveSheet.UsedRange)
With wbToAddSheetsTo
.Sheets.Add After:=.Sheets(.Sheets.Count)
On Error Resume Next
ActiveSheet.Name = cell.Value
On Error GoTo 0
End With
Next cell
Call LIST
End Sub

Sub LIST()
' pro seznam listu
Sheets("Prehled").Select
Sheets.Add After:=ActiveSheet
ActiveSheet.Name = "list"
Dim mySheet As Worksheet, myRow As Long
With Sheets("list")
' .Range("A:A").Clear
myRow = 1
For Each mySheet In ActiveWorkbook.Worksheets
If mySheet.Name <> "Menu" Then
.Hyperlinks.Add Anchor:=.Cells(myRow, 1), Address:="", SubAddress:= _
"'" & mySheet.Name & "'!A1", TextToDisplay:=mySheet.Name
myRow = myRow + 1
End If
Next mySheet
End With
Call Hyperlinks
End Sub

Sub Hyperlinks()
' treba ešte dokončiť Hyperlinks na list "Prehled" !!
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
With ws
' treba dokončiť Hyperlinks na list Prehled
End With
Next ws
End Sub

Pepo