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

Zoekfunctie werkblad selecteren

Status
Niet open voor verdere reacties.

rkraats

Gebruiker
Lid geworden
20 jun 2015
Berichten
46
Goedemorgen,

Ik heb een Excel bestand met tientallen werkbladen. Nu wil ik een zoekfunctie op het eerste werkblad waar je in een zoekvenster een (Gedeeltelijke) naam van een ander werkblad op kan geven en dat je dan naar dit werkblad gaat. Mocht het werkblad niet bestaan dan graag een foutmelding.

Wie kan mij hiermee helpen?
 
Die 'zoekfunktie' zit al linksonder in je scherm bij de knoppen om door de werkbladen te scrollen: klik daar op de rechtermuisknop.
 
Die 'zoekfunktie' zit al linksonder in je scherm bij de knoppen om door de werkbladen te scrollen: klik daar op de rechtermuisknop.

Bedankt voor de tip maar dan heb je nog geen zoekvenster.
 
Maak een indexpagina via de Asap Utilities.
Deze levert een oplijsting van alle bladen met bijhorende hyperlink.
 
Ik heb de oplossing gevonden. Bedankt voor jullie antwoorden.

Code:
Sub Zoekcol()
    Dim strWSName As String
    
    strWSName = InputBox("Welke naam zoek je?")
    If strWSName = vbNullString Then
        Exit Sub
    End If
    
    If SheetExists(strWSName) Then
        Worksheets(strWSName).Activate
    Else
        'look if it at least contains part of the name
        Dim s As Worksheet
        For Each s In ThisWorkbook.Sheets
            If InStr(s.Name, strWSName) > 0 Then
                s.Activate
                Exit Sub
            End If
        Next s
        MsgBox "Deze naam komt niet voor!"
    End If
    
End Sub
Function SheetExists(strWSName As String) As Boolean
    Dim ws As Worksheet
    On Error Resume Next
    Set ws = Worksheets(strWSName)
    If Not ws Is Nothing Then SheetExists = True
End Function
 
Het is alleen nog hoofdletter gevoelig. Hoe kan ik dit aanpassen?
 
Probeer Ucase of Lcase eens.

Als ik de hele naam pak dan werkt het wel. Een deel van de naam werkt het niet. Terwijl als ik begin met een hoofdletter dan werkt een deel van de naam wel.
Zowel met Ucase als Lcase.
 
Zoek eens in de hulpbestanden van de VBeditor bij instr.
 
Ucase werkt wel degelijk:

Code:
   For Each s In ThisWorkbook.Sheets
            If InStr(UCase(s.Name), UCase(strWSName)) > 0 Then
                Sheets(s.Name).Activate
                Exit Sub
            End If
        Next s
 
Je hebt gelijk Cobbe. Ik had hem alleen toegepast op "strWSName".
Bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan