• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Hyperlinks automatisch aanmaken

Status
Niet open voor verdere reacties.

Tafamarx

Nieuwe gebruiker
Lid geworden
5 apr 2012
Berichten
4
Voor mijn werk ben ik bezig met het maken van een transportlijst. Hierin word er aangegeven waneer welke producten naar een klant zijn verzonden. Ik ben al zover dat als ik de naam van de klant intik in de hoofdtab "overzicht01" kolom A er automatisch een nieuwe tab word aangemaakt met een voor opgemaakte opmaak. Aangezien het de bedoeling is dat we veel gaan verkopen kan het aantal tabbladen aardig oplopen. Het is dus handig als er in de hoofdtab achter de naam van de klant een link naar zijn tab met zendingen komt. Is hier een oplossing voor? Misschien met een VBA code of zo, helaas ben ik erg slecht in code schrijven. Maar misschien kunnen jullie me helpen.
Alvast bedankt!

Gr,

T. marx
 
Bedankt voor de snelle reacties! Ik denk alleen dat het niet duidelijk wat ik bedoel.
Ik heb even de lijst bijgevoegd. Alle namen zijn er uit gehaald maar ik denk dat het dan duidelijk is wat ik bedoel.
In kolom A kan ik dus de naam van de klant invullen waarna zich een nieuwe tab opent. Nu wil ik dat er in kolom B een link naar die tab komt. Ik weet dat dit handmatig kan, maar ik wil dit graag automatiseren aangezien mijn overige collega's niet zo handig zijn met excel.

Alvast bedankt!
 

Bijlagen

Tafamarx,

Ik kan je helaas niet helpen met hyperlinks aan maken heb daar wel een bestandje van liggen waarbij die de volgende code gebruikt misschien lukt het je om deze aan te passen.

Hyperlink aanmaken
Cells.Hyperlinks.Add _
Anchor:=ActiveCell, Address:="", SubAddress:="'" & Newname & "'!A1", ScreenTip:="Ga naar nieuw bestand " & Newname & ".", TextToDisplay:="" & Newname
With ActiveCell.Font
.Name = "Arial"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = 5
End With

Deze gebruikt de naam van het nieuwe bestand

Tevens heb ik even naar je macro gekeken en hem iets mooier gemaakt in mijn ogen.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim sh As Worksheet, isect As Range, c As Range
Set isect = Intersect(Target, Columns("A"))

If isect Is Nothing Then Exit Sub
On Error Resume Next
For Each c In isect.Cells
If c <> "" Then
Set sh = Nothing: Set sh = Sheets(c.Value)
If sh Is Nothing Then

' Schermverversing uit (ivm knipperende schermen)

Application.ScreenUpdating = False

' Blanco sheet zichbaar maken

Sheets("Leeg").Visible = True

Sheets("Leeg").Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = c.Value

' Blanco sheet verbergen

Sheets("Leeg").Visible = False
Else
MsgBox "dat werkblad " & c.Value & " bestaat al" & vbLf & "FATAL ERROR"
End If

' Beeldverversing weer aanzetten

Application.ScreenUpdating = True
End If
Next
End Sub

Suc6 verder
 
Laatst bewerkt:
Wederom bedankt voor de reacties. De verbeterde code ziet er idd beter uit zo. Ik heb nog een paar uurtjes gegoogled en heb de onderstaande code gevonden (deze moest ik in een module plaatsen ipv het veld waarin ik de andere code heb geplaatst). Deze maakt de links aan en zet ze op de goede plaats. Het enige nadeel is dat deze zich niet vanzelf update waardoor ik elke keer de macro module opnieuw moet uitvoeren.

Code:
 IndexIt()
    Dim Ws As Worksheet, WsInd As Worksheet, lStartRow%, lStartCol, sBackRange As String
     '##1: Where should the back-to-index-page link be, change if necessary
    sBackRange = "C1"
     
    lStartRow = Selection.Row
    lStartCol = Selection.Column
     
    Set WsInd = ActiveSheet
     
     'Add the links
    For Each Ws In Worksheets
        If Ws.Name <> WsInd.Name Then
            WsInd.Hyperlinks.Add WsInd.Cells(lStartRow, lStartCol), "", "'" & Ws.Name & "'!C3"
            WsInd.Cells(lStartRow, lStartCol).Value = Ws.Name
            lStartRow = lStartRow + 1
             
             '##2: Add link back to index, comment the following 2 lines if you don't want this part
            Ws.Hyperlinks.Add Ws.Range(sBackRange), "", "'" & WsInd.Name & "'" & "!C1"
            Ws.Range(sBackRange).Value = "Terug naar overzicht"
        End If
    Next Ws
     
    WsInd.Activate
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan