• 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.

Zoeken in kolom A

Senso

Inventaris
Lid geworden
13 jun 2016
Berichten
12.137
Besturingssysteem
W11 Pro 25H2
Office versie
Office 2007 H&S en Office 2021 Prof Plus
In kolom A staat 100 namen welke links zijn om een sheet te openen.
Telkens scrollen is vervelend. Is er een formule of VBA voor D1 dat als ik in C2 een beginnende naam typ dat die gelijk naar de juiste naam in kolom A gaat> Excel 2007
 
in D2
=HYPERLINK("#A" & VERGELIJKEN(C2;A:A; 0); "Jump to Name")
deze vergelijkt de hele naam en niet een deel.
 
Kijk eens of dit in de buurt komt?
In Excel 2007 dien je eventueel de formule afsluiten met Ctrl+Shift+Enter.
 

Bijlagen

Dat is een oplossing, echter jammer je met de uitkomst D2 niet gelijk de juiste sheet kunt activeren.
 
Dat is handiger. Moet kijken of dit kan. Sheet1 waar deze namen opstaan wordt steeds opnieuw gemaakt met onderstaande VBA-code . Dat is dus een vaste opzet. Kun je dan de code uit post 5 integreren?

PHP:
Sub CreateIndexAndBackLinks()
    Dim wsIndex As Worksheet
    Dim ws As Worksheet
    Dim i As Integer
    
    ' Set the first sheet as the Index sheet
    Set wsIndex = Worksheets(1)
    wsIndex.Name = "Index"
    
    ' Clear old index contents starting from row 2
    wsIndex.Range("A2:A100").ClearContents
    
    ' Add a header for the Index
    wsIndex.Range("A1").Value = "Sheet Index"
    wsIndex.Range("A1").Font.Bold = True
    
    i = 2 ' Start row for listing sheets
    
    ' Loop through all sheets in the workbook
    For Each ws In Worksheets
        If ws.Name <> wsIndex.Name Then
            ' Add sheet name to Index sheet and create hyperlink
            wsIndex.Cells(i, 1).Value = ws.Name
            wsIndex.Hyperlinks.Add Anchor:=wsIndex.Cells(i, 1), _
                Address:="", _
                SubAddress:="'" & ws.Name & "'!A1", _
                TextToDisplay:=ws.Name
                
            ' Add "Back to Index" link in cell A1 of each other sheet
            ws.Range("A1").Value = "Back to Index"
            ws.Hyperlinks.Add Anchor:=ws.Range("A1"), _
                Address:="", _
                SubAddress:="'Index'!A1", _
                TextToDisplay:="? Back to Index"
                
            i = i + 1
        End If
    Next ws
    
    MsgBox "Index created successfully!", vbInformation
End Sub
 
Of??
Met een hulpkolom. Deze is nu kolom O welke eventueel verborgen kan worden.
Je hoeft nu niet je eigen VBA code uit te breiden.
 

Bijlagen

Zonder TextBox. Code in module van werkblad Index.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Address <> "$C$1" Then Exit Sub
    With Range("A1", Range("A" & Rows.Count).End(xlUp))
        .AutoFilter
        .AutoFilter 1, Target.Value & "*"
    End With
End Sub
 
Maak van D1 een keuzelijst. Je kan dan ook een deel van de naam tikken.
Zie voorbeeld. Is maar een paar regels code:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)

    On Error GoTo Fout
   
    If Target.Address = "$D$1" Then
        Worksheets(Target.Value).Activate
    End If
   
Fout:
    Exit Sub
   
End Sub
 

Bijlagen

Peter,
Dat werkt natuurlijk, echter het blad Index wordt vaak vernieuwd. Volhouden om telkens formules te plaatsen is geen doen. Dus het zou mooi zijn als we kunnen voortborduren op het voorbeeld van emields d.m.v. één code te maken en in een module te plaatsen, als dat kan..
 
Terug
Bovenaan Onderaan