Menu Sluiten

Controleren of een werkblad bestaat

Functies vba excel macro

Er bestaat geen standaard functie om te controleren of een bepaald werkblad bestaat in een Excel workbook. Met de onderstaande zelf geschreven functie kun je dit wel controleren. Als parameter geef je de naam van het werkblad mee. Het resultaat/antwoord krijg je dan terug in de vorm van een string ( “ja” of “nee”). Je kunt met deze functie ook een deel van van het werkblad meegeven. Als een werkblad deze tekst bevat dan zal het resultaat van de functie dus ook “ja” zijn.

Function WerkbladBestaat(Werkblad As String) As String
  For Each sh In Sheets
        If sh.Name Like Werkblad Then
            WerkbladBestaat = "ja"
            Exit For
        Else
            WerkbladBestaat = "nee"
        End If
    Next
End Function

Heeft dit artikel je geholpen?

2 reacties

  1. Teun

    Op zich een goede manier, echter worden er in mijn VBA Excel een duizend tal tabbladen aangemaakt, waarvan bij het aanmaken van de tabbladen iedere keer gecontroleerd moet worden of deze als voorkomt. Hierdoor wordt bovenstaande functie ook zeer traag. Zou hier een ander oplossing voor zijn?

    • MartinR

      Hoi Teun,

      Ik heb even mijn hersens laten kraken voor je 😉 en ik heb een oplossing bedacht. Je zou ook een functie kunnen gebruiken waarin je probeert een tabblad met de te controleren naam probeert te activeren.
      Hier zet je dan netjes error handling omheen. Gaat het activeren goed dan geeft de functie terug dat het tabblad bestaat. Ging het activeren fout dan vangt de error handling je code op en geeft hij terug dat het
      tabblad niet bestaat.

      Function WerkbladBestaat(Werkblad As String) As String
      On Error GoTo BladBestaatNiet
      ' Probeer het werkblad te activeren
      Sheets(Werkblad).Activate
      WerkbladBestaat = "ja"
      Exit Function

      BladBestaatNiet:
      ' Als een fout optreedt, bestaat het werkblad niet
      WerkbladBestaat = "nee"
      On Error GoTo 0 ' Reset error handling
      End Function

      Mvg,

      Martin

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *