potreboval by som poradiť ohľadom vytvorenia VBA kódu na automatizované vytváranie hypertextového prepojenia.
Som VBA som nerobil, tak netuším ako na to. Mojou predstavou je vytvorenie kódu, ktorý umožní po vpísaní do bunky napríkl.: meno a priezvisko aby otvoril rovnako nazvanú excel tabuľku.
vytvorím si zošit s názvom Jožko Púčik
mám 2. zošit s názvom mená, kde do bunky A2 vpíšem Jožko Púčik
chcem, aby sa bez potreby vytvorenia hypertextového prepojenia, otvárali zošity po kliknutí
A ešte pokiaľ by to bolo možné, aby kopiroval zošit s názvom predloha a premenoval podľa stĺpca A, kde by boli mená.
Pridávam odkaz na súbory.
- Kód: Vybrat vše
http://leteckaposta.cz/449445044
Našiel som kód, ktorý mi vyhovuje ale neviem ho upraviť ako potrebujem.
Module1
- Kód: Vybrat vše
Sub ActivateWorkbook(ByVal sWbName As String)
On Error GoTo ErrorHandle
'The function BookIsOpen checks if
'the workbook is open.
If BookIsOpen(sWbName) Then
'Activate if open
Workbooks(sWbName).Activate
Else
'If it is not open, we check if it exists in the
'same folder as this workbook. If it does, we open it.
If Len(Dir(ThisWorkbook.Path & "\" & sWbName & "*")) > 0 Then
ChDir (ThisWorkbook.Path)
Workbooks.Open (sWbName)
Else
MsgBox "Workbook " & sWbName & " doesn't exist in " & ThisWorkbook.Path
End If
End If
Exit Sub
ErrorHandle:
MsgBox Err.Description & " Procedure ActivateWorkbook, Module1"
End Sub
Function BookIsOpen(sWbName As String) As Boolean
'If the workbook isn't open the following
'triggers an error, so we use On Error Resume Next
On Error Resume Next
BookIsOpen = Len(Workbooks(sWbName).Name)
End Function
Sub FindName(ByVal sName As String)
'Finds and activates the cell with
'the same value as the cell in
'column E in the Index sheet.
Dim rColumn As Range
Dim rFind As Range
Worksheets("Contact Data").Activate
'The range rColumns is set to column A
Set rColumn = Columns("A:A")
'Search column A
Set rFind = rColumn.Find(sName)
'If found activate cell
If Not rFind Is Nothing Then
rFind.Activate
Else
'Else activate cell A1
Range("A1").Activate
End If
Set rColumn = Nothing
Set rFind = Nothing
End Sub
SheetBeforeDoubleClick
- Kód: Vybrat vše
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
If Len(Target.Value) = 0 Then Exit Sub
If ActiveSheet.Name = "Contact Data" Then Exit Sub
With Target
Select Case .Column
Case 1
Module1.ActivateWorkbook .Value
Case 3
On Error Resume Next
Worksheets(Target.Value).Activate
Case 5
Module1.FindName .Value
End Select
End With
End Sub
Ďakujem za radu a poprosím pomaly na mňa.