Werkbladnaam in cel

Het kan handig zijn om de werkbladnaam weer te geven in een cel van dat werkblad. Bijvoorbeeld om in de eerste regel van een werkblad deze naam te kunnen gebruiken als titel van dat werkblad. Standaard heeft Excel geen functie om de naam van een werkblad in een cel te zetten, maar met een slimme combinatie van een drietal functies is dat wel mogelijk. Om in een cel van een werkblad de werkbladnaam weer te geven, kan de volgende functie gebruikt worden:

=DEEL(CEL("bestandsnaam";A1);VIND.SPEC("]";CEL("bestandsnaam";A1);1)+1;99)

(NB: Vervang bij Engelstalige Excel-versies DEEL door MID, CEL door CELL, bestandsnaam door filename en VIND.SPEC door SEARCH)

Deze functie geeft overigens een foutmelding als een bestand nog niet is opgeslagen en dan dus geen bestandsnaam heeft. Met de functie CEL(“bestandsnaam”;A1) wordt het volledige pad met de bestandsnaam inclusief de werkbladnaam weergeven. De naam van het bestand wordt hierbij weergegeven tussen blokhaken, waarna direct de werkbladnaam volgt. Met de functie VIND.SPEC wordt de positie van de sluitblokhaak bepaald, waarna met de functie DEEL de tekst wordt weergegeven vanaf deze positie plus 1 tot en met het eind. In feite wordt de tekst weergegeven met een maximale lengte van 99, maar aangezien een werkbladnaam in Excel maar uit maximaal 31 karakters mag bestaan, is dat ruim voldoende.

Er moet een celverwijzing toegevoegd worden aan de CEL-functie (in dit geval A1, maar dat mag ook een andere cel zijn) om daarmee zeker te stellen dat de bladnaam van het huidige werkblad wordt getoond. Als geen celverwijzing is opgenomen wordt de bladnaam van de laatst gewijzigde cel getoond en dat kan een cel zijn op een ander werkblad.

Als de functie op een Nederlandstalige versie wordt ingevoerd en daarna dit bestand wordt geopend in een versie van een andere taal, dan zal deze functie een foutmelding geven omdat ‘bestandsnaam’ niet wordt vertaald. Om dat te voorkomen kan beter in plaats van ‘bestandsnaam’ voor ‘filename’ gekozen worden. Hoewel deze optie niet gekozen kan worden in het keuzemenu dat verschijnt wanneer de CEL-functie wordt ingevoerd, kan dit wel gewoon gebruikt worden. De optie met ‘filename’ werkt in alle taalversies.

 

Interesse in andere tips & trucs? Ga dan naar ons tips&trucs-overzicht of neem een kijkje op onze pagina met tutorials.

Reacties op onze tutorials en tips&trucs zijn van harte welkom. Dat kan door hieronder een reactie toe te voegen of door rechtstreeks contact met ons op te nemen.

59 reacties op Excel werkbladnaam in cel

  • Hallo,

    ik probeer de formule voor werkbladnaam in cel toe te passen. Helaas lukt het mij niet. Ik wil in cel B3 de werkbladnaam laten zien.

    Met vriendelijke groeten,
    Michiel

    • Hoi Michiel,
      Zonder het bestand te zien is dat lastig te beoordelen. Een oorzaak kan zijn dat je het bestand niet het opgeslagen, want zoals beschreven werkt de formule alleen als het bestand is opgeslagen.

      • Hallo Manfred,

        het is al een bestaand bestand, het staat opgeslagen op een server, omdat meerdere mensen het gebruiken.
        Als ik de formule nu in cel B3 plak, krijg ik een foutmelding, in de formule op het “]” gedeelte.

        Groeten, Michiel

        • Hoi Michel,
          Je moet alle dubbele aanhalingstekens na het plakken even vervangen door nieuw ingetypte dubbele aanhalingstekens. Daarna zou het goed moeten gaan. Ik heb de opmaak van de formule op de website aangepast zodat vanaf nu plakken wel goed gaat.
          Groeten, Manfred

          • Hallo Manfred,

            Dat is ‘m!
            Het is gelukt.

            Bedankt.
            Groeten, Michiel

  • Super handig, bedankt!

  • Echt top dit! Ik heb een bestand met heeeeel veel werkbladen, vervolgens werkt de ctrl find niet =( dus ben ik handmatig alle nummers in de eerste cel gaan zetten.. tot ik er na een paar dacht, dit kan toch niet zo!
    Na even googlen kwam ik bij deze tip terecht, Thnx! Dit scheelt veel werk, heel veel werk..

  • Ik heb een nederlandse versie van Excel, en mijn werkblad al op meerdere manieren opgeslagen maar krijg dit niet voor elkaar! Nog andere tips die ik kan proberen?

    • Dit zou normaal gesproken toch goed moeten werken. Krijg je een foutmelding en zo ja welke? Je hebt toevallig toch niet het woordje bestandsnaam uit de formule vervangen door de werkelijke bestandsnaam? In de formule moet namelijk het woord bestandsnaam of filename letterlijk blijven staan en dit moet tussen dubbele aanhalingstekens staan.

    • Lange tijd kreeg ik het niet voor elkaar ieder werkblad automatisch te voorzien van de werkbladnaam in een cel. Door deze Know How werd ik opnieuw geinsprireerd. En ja hoor, het leek te lukken. Toen ik echter na opslaan en opnieuw inlezen van het document de werkbladnamen op de diverse werkbladen nakeek bleken ze allemaal de naam van het laatst opgeslagen werkblad te hebben.

      Marie: mocht dit het probleem zijn dat je hebt, probeer dan eens het volgende, dat bij mij de situatie gisteren oploste in de Excel van Office 360, versie 15.0.4875.1001:
      *. Ga naar Opties. In mijn geval via Bestand.
      *. Kies onderdeel Formules.
      *. Vind balk Berekeningsopties.
      *. Vind optie “Werkbalk berekenen”.
      *. Wijzig de waarde in Handmatig.
      *. Haal de vink voor “Werkmap herberekenen voor opslaan” weg.
      *. Druk op knop OK

      Let wel: hiermee worden je werkbladen niet meer automatisch bijgewerkt en moet je dus zelf op voor jou geschikte momenten op ShiftF9 drukken. Teven worden bij gebruik van ShiftF9 afhankelijke tabbladen niet bijgewerkt. Wil je dat dat wel gebeurt, druk dan op F9, hierdoor wordt het hele document bijgewerkt, waardoor plotseling ieder werkblad dezelfde werkbladnaam bevat, naar mijn idee is het laatste een abuis van de software maker. Ga vervolgens naar ieder afzonderlijk werkblad en druk bij ieder werkblad op ShiftF9, zo worden de juiste werkbladnamen weer in ieder werkblad geplaatst.
      Tip: gebruik op andere werkbladen niet de waardes van de werkbladnamen in de cellen, want dat gaat naar mijn idee altijd mis.

      • Dag Evert,
        Ik mijn Excel-versie kan ik dit gedrag alleen maar reproduceren als je de celverwijzing achter bestandsnaam weglaat. Dus twee keer over

        CEL("bestandsnaam")

        in plaats van

        CEL("bestandsnaam";A1)

        Zoals ik ook al aangeef in de beschrijving is de toevoeging van deze celverwijzing essentieel.
        Groet, Manfred

        • In Excel 2010: ‘DEEL’ vervangen door ‘MIDDEN’

          • Dag Timo,
            De functie MIDDEN is geen standaard Excel-functie. Je bent wellicht in de war met de Engelstalige MID-functie. Deze Engelstalige MID-functie is gelijk aan de Nederlandstalige DEEL-functie.
            Manfred

  • Beste Manfred,
    Ik heb een Excel bestand met ongeveer 40 werkbladen. Is er een mogelijkheid om afhankelijk van een ingevoerde celwaarde in het eerste werkblad, automatisch het bijbehorende werkblad te openen ?

    • Beste Chiel,
      Ja, dat is mogelijk. Je kunt bijvoorbeeld naast de invoercel een cel met een hyperlink maken welke dynamisch wordt samengesteld op basis van de invoerwaarde. Door te klikken op de hyperlink kom je dan automatisch in het gekozen werkblad terecht. Als het helemaal automatisch moet, dus zonder te klikken op een hyperlink, dan zal dat met een macro moeten.

  • kan het ook omgekeerd, dus de waarde die in een cel staat als bladnaam weergeven?
    vb: als ik in cel a1 de waarde “Tutorial” in voer dat dan het werkblad de naam “Tutorial” krijgt?

    • Dat kan alleen met VBA:

      Private Sub Worksheet_Change(ByVal Target As Range)
          ActiveSheet.Name = Range("A1").Value
      End Sub
      • Beste Manfred,

        Heel interessant, hier ben ik al lang naar op zoek. Alleen werkt de regel in vba niet bij mij. excel staat in het Nederlands, maar voor vba maakt dat niet zoveel uit dacht ik. kan je helpen?

        • Hoi Pelle,
          Dank voor je reactie.
          In de VBA code is wat mis gegaan met de weergave van dubbele aanhalingstekens. Ik denk dat dat de oorzaak is.
          Ik ga dat aanpassen.

  • hoe kan ik in 1 grafiek meerdere tabbladen verwerken en ook in grafiek verwijzing naar de tabbladen?

    • Daar is in zijn algemeenheid zonder voorbeeldbestand moeilijk wat over te zeggen. E.e.a. is afhankelijk van hoe de grafiek er uit moet zien en wat de wensen precies zijn.

  • Beste Manfred,

    De formule werkt, bedankt daarvoor.
    Nu zou ik graag de verwijzing niet naar het huidige tabblad hebben, maar naar een ander tabblad.
    Is dit ook te realiseren?

    • Beste Luuk,
      Jazeker kan dat. Neem dan in plaats van alleen celverwijzing A1, de complete verwijzing inclusief werkbladnaam op. Bijvoobeeld:

      =DEEL(CEL("filename";Blad2!A1);VIND.SPEC("]";CEL("filename";Blad2!A1);1)+1;99)
      • Werkt deze nog? ik heb hem geprobeerd in Excel 2016(de nederlandse versie) maar krijg hem niet werkend. ik wil graag het bladnaam van blad 2 laten zien.

        =DEEL(CEL("bestandsnaam";[Blad2]!A1);VIND.SPEC("]";CEL("bestandsnaam";[Blad2]!A1);1)+1;99)
        • Ja dat werkt ook in Excel 2016, maar er zit in fout in jouw formule. De blokhaken om de werkbladnaam horen daar namelijk niet te staan.

  • De formule werkt, echter als daarna het bestand wordt opgelagen als (je plaatst het op een andere schijf / in een andere folder) en je sluit het bestand werkt de formule niet meer wanneer je dat “opgeslagen-als-bestand” opent.
    Er verschijnt dan in de betreffende cel de fout: #WAARDE!

    • Dat is vreemd. Ik heb dit zelf even getest, maar bij mij gebeurt dat niet. Omdat ik dit gedrag niet kan reproduceren, is van afstand niet te bepalen wat in uw geval de oorzaak kan zijn.

  • Hoi,

    Is het andersom ook mogelijk? Dat de naam van het werkblad automatisch veranderd als er een (bepaalde) cel veranderd?

    • Dat kan alleen maar met een macro. In de basis ziet deze er als volgt uit:

      Private Sub Worksheet_Change(ByVal Target As Range)
          If Target.Address = "$A$1" Then
              ActiveSheet.Name = Range("A1").Value
          End If
      End Sub
  • Hoi,
    als ik in een cel de formule [=DEEL(CEL(“bestandsnaam”;A1);VIND.SPEC(“]”;CEL(“bestandsnaam”;A1);1)+1;99)] plaats wordt de tab naam in de cel gezet.
    Zodra ik de waarde van deze cel opneem in [=VERT.ZOEKEN(D4;weeknummers!F2:G53;2)] krijg ik de melding “#N/B” in de cellen.
    hoe kan ik dit verhelpen?

    • Hoi Berno,
      Ik begrijp niet helemaal hoe je dit precies wilt opnemen in de VERT.ZOEKEN-formule. Kun je aangeven in welke cel je de formule met de bladnaam geplaatst hebt en wat je precies met de VERT.ZOEKEN-formule wilt bereiken?

  • Hallo Manfred, Ik zie dat je heul er veel van Excel af weet en anderen probeert te helpen. Chapeau!.
    Dat gemeld hebbende, heb ik ook een vraag….
    Ik heb een excelbestand in Excel2010 (werk) dat bestaat uit een behoorlijk aantal tabbladen die met een VBA formule de naam van een bepaalde cel in een adreslijst overnemen, die lijkt op die je bij Arjan heb opgegeven. Dat gaat goed.
    Nu wil ik graag een kruislijst maken. dwz dat ik op een verzamelblad een totaaloptelling van een bepaalde cel (bijvoorbeeld K16) van ieder tabblad krijg. Wanneer ik [=’11’!$K16] kopieer en plak, moet ik het eerste cijfer(= tabblad=huisnummer) steeds aanpassen. Ik kan het verwijzen naar een cel op hetzelfde totaalblad [=’E2′!$K16] maar die cel heeft een formule [=TRANSPONEREN(Adreslijst!E2:E128)] waardoor ik een foutmelding krijg. kun je mij helpen? Ik wil dit graag snel kunnen kopiëren, ipv alles handmatig aan te passen,
    groet, Sander de Geus

    • Hoi Sander,
      Dank voor je reactie.
      Als je op een totaalblad om optelling wilt hebben van een bepaalde cel dan kun je eens kijken naar mijn uitleg over Excel formules over meerdere werkbladen.
      Maar uit je vraag maak ik ook op dat je als het ware de bladnaam in de formule dynamisch wilt veranderen (de 11 in jouw voorbeeld). Hiervoor kun je gebruik maken van de functie IDIRECT. Hierbij geef je de celverwijzing op als tekst, waarna deze met INDIRECT wordt omgezet naar een echte celverwijzing. En die tekst kun je dan weer met formules dynamisch samenstellen. Als je bijvoorbeeld de huisnummers onder elkaar in bepaalde cellen hebt staan, dan kun je die cellen gebruiken om de celverwijzing te maken.
      Wellicht dat deze tips je verder helpen.
      Groet, Manfred

  • Beste Manfred,

    Ik heb een vraag:
    Ik heb telkens 2 bestanden open.
    Bijvoorbeeld Planning49 en Planning51. Waarbij Planning51 een kopie is van Planning49.
    In planning51 zijn reeds meer orders toegevoegd en met Verticaal zoeken wil ik dan in Planning49 zoeken welke orders ik al afgewerkt heb. Resultaat is dan welke orders ik dus nog moet doen.
    In cel AH5 staat dan de volgende formule [=VERT.ZOEKEN(A5;'[Planning49.xlsx]Planning’!$A$5:$N$133;13;ONWAAR)]

    Ik krijg dan als hij de order vind de waarde die in M5 staat te zien.
    En voor de orders die hij in bestand Planning49 niet vind geeft hij de waarde #N/B.
    Dat betekent dat ik alle orders waar ik #N/B achter te zien krijg nog moet verwerken.
    Mijn vraag is het volgende: De naam planning49 in deze formule is dus elke week anders. Want de volgende keer kan ik in Planning1 werken en willen vergelijken met Planning51.

    Deze formule plaats ik met een macro in cel AH5 waarbij elke keer de naam van het andere geopende bestand handmatig aangepast moet worden. Is hier een oplossing voor om dit te automatiseren?

    Alvast bedankt.

    • Beste Clifford,

      Jazeker is dat mogelijk. Als basis hiervoor kun je onderstaande code gebruiken. Ik ben er daarbij vanuit gegaan dat alle weeknummer 2 cijfers hebben (dus 1 is 01) en dat er maar 2 bestanden open staan. Ik heb deze code uit mijn hoofd geschreven en heb ik daarom niet kunnen testen.

      Sub Betterwin()
          Dim wb As Workbook, sWeekNr As String
          For Each wb In Workbooks
              If wb.Name <> ThisWorkbook.Name Then
                  sWeekNr = Left(Right(wb.Name, 7), 2)
                  ActiveSheet.Range("AH5").Formula = "=VLOOKUP(A5,'[Planning" & sWeekNr & ".xlsx]Planning'!$A$5:$N$133,13,FALSE)"
              End If
          Next
      End Sub
      
      • Hoi Manfred,

        Bedankt voor je snelle reactie. Ik ga dit morgen proberen te simuleren.
        Het gaat om een bestand waar ik op het werk mee werk.
        Ik ben 6 januari pas weer op werk dus dat duurt nog even voor ik het op het werk echt kan testen.

        Als ik daarvoor niet meer reageer dan wens ik je in ieder geval fijne feestdagen toe.

        Groet Clifford

    • Goedendag,

      Vergelijkbare (misschien wel hetzelfde) formule had ik al jaren in gebruik en het werkte top in Excel 2010 voor Windows en in Excel 2011 voor MacOS.

      Alleen heeft de Mac na een update moeten updaten naar Excel 2019 en sindsdien werkt de formule niet meer! Ik heb het ook geprobeerd in de Excel app op mijn Android telefoon, dat werkt ook niet. Ook werkt het niet als je via de webbrowser in de online Excel werkt via Onedrive.

      Is er wellicht een aanpassing nodig in de formule? Of werkt het gewoonweg niet meer in nieuwe versies?

      • Iemand misschien een idee?

        • Hallo Ivan,
          Excuus voor de late reactie. Ik was in het buitenland en had je vraag niet gezien.
          Het klopt dat de formule niet werkt in de online versie van Onedrive. Deze online versie betreft namelijk een ‘uitgeklede’ versie van Excel, waarin de CEL-formule niet beschikbaar is.
          Ik kan het zelf niet testen in de Mac-2019 versie van Excel, omdat ik die versie niet heb. Ik wel benieuwd of de CEL-functie hierin nog werkt. Kun je even doorgeven wat de uitkomst is van de functie =CEL(“bestandsnaam”;A1) in een opslagen bestand? Dit geeft dan wellicht aanknopingspunten voor het wijzigen van de formule.

          • Hallo Manfred,

            Bedankt voor je reactie! Ik had geen melding gekregen, dus kom er een beetje laat achter. Goed om te weten dat het normaal is dat het niet in de online versies werkt. Ik heb het zonet getest op de Mac-2019 versie, maar krijg het volgende uitkomst “#NAME?”.

            Volgens mij is dit een gelijke uitkomst als de online versie van OneDrive, dus misschien werkt het niet meer in de nieuwste versie? Ik hoor het graag.

            • Zoals gezegd beschik ik niet over de Mac-2019 versie, dus ik kan het zelf niet testen. Heb je wel de Engelstalige versie van de formule gebruikt? Zo ja, dan ben ik bang dat de CELL-functie niet beschikbaar is in die Mac-2019 versie.

              • Ik had gewoon je formule gekopieerd:
                =CEL(“bestandsnaam”;A1)
                En verder nog niet bij nagedacht.

                Engelse versie moet ik dan nog proberen. Dit moet dan denk ik zijn:
                =CELL(“filename”;A1)

              • Helaas geeft de Engelstalige formule hetzelfde resultaat.

                Ik kan het dus beter opgeven om deze formule te gebruiken op de MAC?

              • Niet te snel opgeven! De CELL-functie zou moeten werken in de MAC-versie (zie hiervoor cell functie)
                Zoals aangegeven kan ik dat zelf niet testen, omdat ik niet over deze versie beschik.
                Als je formule ingeeft door deze in te typen (dus beginnend met =), dan zie je tijdens het typen alle beschikbare functies in beeld. Als je dus =CE typt dan zou de CELL functie daar zichtbaar moeten zijn. Klopt dat?
                De formule voor de werkbladnaam werkt trouwens alleen in het bestand dat is opgeslagen.

              • Man man man, wat voel ik mij sukkel. Het is gelukt xD.
                =MID(CELL(“filename”;$A$1);FIND(“]”;CELL(“filename”;$A$1))+1;31)
                werkt gewoon, ik hoefde alleen bestandsnaam, naar filename te veranderen. Dit had ik uiteraard al geprobeerd en naar mijn vriendin gestuurd, maar ik zie nu pas dat er een spatie teveel ergens in de formule stond -.-.

                En =CELL(“filename”;A1) werkte niet omdat de aanhalingstekens door het kopiëren andere aanhalingstekens waren geworden. Het moest zijn: =CELL(“filename”;A1). Zoek de verschillen maar ;p.

                Het is in ieder geval gelukt! Dat scheelt weer wat aanpassingen en ik ga er binnenkort weer ermee aan de slag. Nogmaals bedankt voor je hulp en aanmoedigen om niet te snel op te geven!

              • Bedankt voor de terugkoppeling.
                Mooi dat het uiteindelijk toch gelukt is!

              • Nog een late terugkoppeling, want ik ging er pas weer mee aan de slag. Ik kwam een aantal vreemde dingen tegen.

                Zoals eerder vermeld werkt de volgende formule op de Mac:
                =MID(CELL(“filename”;$A$1);FIND(“]”;CELL(“filename”;$A$1))+1;31)

                Dus ik had dit op de Windows pc aangepast en weer doorgestuurd naar de Mac, maar toen werkte die op de Mac ineens niet meer! Het vreemde is, als ik gewoon naar dezelfde formulevak ging en alleen enter klikte, dan werkte de formule ineens wel.. Ik dacht wellicht een bug in Excel 2019.

                Het probleem is denk ik omdat de Mac op Engels staat. Wat mij dus verder opviel is dat al mijn Nederlandse formules zoals ALS enzo netjes werden vertaald naar IF enzo, maar behalve de formule:
                =DEEL(CEL(“bestandsnaam”;$A$1);VIND.ALLES(“]”;CEL(“bestandsnaam”;$A$1))+1;31)
                werd niks mee gedaan vreemd genoeg.

                Ik heb alles aangepast op de Mac en opgeslagen en ik zie dat mijn Nederlandse Excel 2010 alles gewoon alles netjes omzet naar de volgende formule:
                =DEEL(CEL(“filename”;$A$1);VIND.ALLES(“]”;CEL(“filename”;$A$1))+1;31)

                Alleen “filename” laat die dus in het Engels, maar het blijft prima werken op Nederlandse Excel.

                Als ik deze formule zo laat en weer naar de Mac stuur, wordt het nu wel netjes werkend vertaald.

                Mijn conclusie is dus dat het woord “bestandsnaam” op een of andere manier niet wordt vertaald in Excel 2019, maar als ik “filename” gebruik, dan blijven ze in beide versies werken..

                Mijn advies is dus om de formule met het woord “bestandsnaam” die op deze site aan te passen naar “filename”, zodat bij versturen van documenten naar andere Excel /(Mac) en taalversies blijft werken :).

              • Dank voor je terugkoppeling.
                Het klopt dat filename werkt in alle taalversies. Dat had ik ook al geschreven in mijn tekst 🙂

  • Hoi Manfred,

    Ik heb geprobeerd dit na te bootsen.
    Het gaat eerst goed, maar hij gaat volgens mij te vaak door de loop.

    De uiteindelijke formule die ik in de cel krijg is [=VERT.ZOEKEN(A5;Planning!$A$5:$N$133;13;ONWAAR)]
    Dus niet [=VERT.ZOEKEN(A5;'[Planning49.xlsx]Planning’!$A$5:$N$133;13;ONWAAR)]

    Als ik de macro stap voor stap doorloop zie ik dat de macro het bestand de eerste keer als
    ThisWorkbook.Name = “PERSONAL.XLSB” ziet. Dat betekent dat hij uiteindelijk 3 bestanden ziet toch?
    De waarde van sWeekNr = “”.

    Dan gaat de macro terug naar IF en dan veranderd de waarde Wb.Name = Planning49.xlsx
    Als hij bij End If aankomt is sWeekNr = “49” en heeft de cel de juiste formule.
    Namelijk: [=VERT.ZOEKEN(A5;[Planning49.xlsx]Planning!$A$5:$N$133;13;ONWAAR)]

    Dan gaat de macro via Next weer naar If.
    Daar is ThisWorkBook.Name = “Planning51.xlsx” geworden.
    Als de macro weer bij End if aankomt is de waarde sWeekNr = “51” geworden.
    De formule in de cel is dan [=VERT.ZOEKEN(A5;Planning!$A$5:$N$133;13;ONWAAR)]
    Ik ga ervan uit dat de formule geen week nummer heeft omdat 51 ook het actieve bestand is waar de formule in komt.

    Nu gaat hij wel door naar End Sub.

    Het is dus bijna goed, maar doe ik iets verkeerd waardoor hij PERSONAL.XLSX ook als geopend bestand ziet?
    Ik hoop dat je mijn verhaal snapt .

    Ik hoor graag van je.

    • Ik denk dat ik het begrijp. Ik had al aangegeven dat de de macro alleen werkt als er 2 bestanden open staan. Personal.xlsb gebruik ik zelf niet en wordt bij mij daarom nooit geladen. Ik denk dat het met een kleine aanpassing nu goed moet gaan (wederom niet getest):

      Sub Betterwin()
          Dim wb As Workbook, sWeekNr As String
          For Each wb In Workbooks
              If wb.Name <> ActiveWorkbook.Name Then
                  sWeekNr = Left(Right(wb.Name, 7), 2)
                  If IsNumeric(sWeekNr) Then
                      ActiveSheet.Range("AH5").Formula = "=VLOOKUP(A5,'[Planning" & sWeekNr & ".xlsx]Planning'!$A$5:$N$133,13,FALSE)"
                      Exit For
                  End If
              End If
          Next
      End Sub
      
      • Hoi Manfred,

        Geweldig, het werkt!
        Hartstikke bedankt voor je hulp.
        Dit wordt een onderdeel van een wat langere macro.
        Dus ik hoop dat ik het verder alleen af kan .

        Nogmaals hartstikke bedankt en fijne feestdagen.

        • Hoi Clifford,
          Graag gedaan.
          Mooi dat het werkt.
          Jij ook fijne feestdagen gewenst.

  • Hoi Manfred,

    Aangezien je mij vorige keer zo goed geholpen hebt heb ik toch nog een vraag:
    Sorry, ik weet niet hoe ik een nieuwe vraag/topic moet opstarten. Dit is nl. een andere vraag.
    Ik zie wel eens staan dit topic wordt verplaatst.

    Ik heb een draaitabel.
    De gegevens haal ik uit een tabel bestaande uit weeknummers in kolom A een een waarde in kolom B.
    In een nieuwe week komt er dus een nieuwe waarde bij de nieuwe week nummer te staan.
    Ik zoek de waarde die bij de nieuwe week hoort met VBA op en deze wordt hiermee ook gelijk in kolom B ingevuld.

    Nu is het bereik voor de draaitabel telkens de huidige week tot en met een jaar terug.
    Als ik in de draaitabel sta en na rechter muis klik op “Gegevens selecteren” klik dan zie ik nu bijvoorbeeld:
    [=’Minuten planning’!$B$447:$B$492]

    Mijn vraag is dus:
    Ik zou met VBA deze waarde willen afvangen en deze met 1 verhogen. Hiermee zie ik dus weer in de tabel de grafiek met de laatste waarden tot 1jaar terug.
    Het bereik wordt dan in dit geval: [=’Minuten planning’!$B$448:$B$493]
    Het is dus een vast bereik dat telkens als ik de macro doorloop een week opschuift.
    Ter info, als ik het met macro opnemen doe ziet het er zo uit:
    [ Sheets(“Minuten order portefeuille”).Select
    ActiveChart.ChartArea.Select
    ActiveChart.PlotArea.Select
    ActiveChart.FullSeriesCollection(1).Values = _
    “=’Minuten planning’!$B$448:$B$493”
    ActiveChart.FullSeriesCollection(1).XValues = _
    “=’Minuten planning’!$A$448:$A$493”]

    Is zo iets met VBA mogelijk?
    Ik hoor graag van je,

    Alvast bedankt

    • Hoi Clifford,
      Ja dat kan normaal gesproken met VBA. De vraag is wel wanneer dit precies moet gebeuren (dus met welk event). Of wil je een button toevoegen waarmee je de range wilt aanpassen?
      Daarnaast heb je het over een draaitabel, terwijl in de code sprake is van grafieken.
      Hoe de macro er precies uit gaat zien is geheel afhankelijk van de opbouw van je bestand. In plaats van VBA zou ook eventueel wat kunnen proberen met dynamische bereiken. Zie daarvoor Excel dynamische bereiken.

      Je kunt me anders altijd even een (voorbeeld)bestand mailen. Op de contactpagina staat mijn mailadres wel vermeld. Dan wil ik daar per gelegenheid wel even vrijblijvend een blik op werpen.

      • Hoi Manfred,

        Ik heb je zoals gevraagd een voorbeeld bestand gestuurd.

        Alvast bedankt voor de moeite.

        • Hoi CLifford,
          Ik heb je per mail geantwoord.

  • Geinspireerd door bovenstaande formules heb ik er een voor het weergeven van de Bestandnaam gemaakt:
    =DEEL(CEL(“filename”;’Map1′!A1);VIND.SPEC(“[“;CEL(“filename”;’Map1′!A1);1)+1;99)

    Weet alleen niet hoe ik het deel “.xlsx]Map1” uit het resultaat kan verwijderen…

    • Hoi Manfred,
      Deze werkt onafhankelijk van de naam van je werkblad:
      =DEEL(CEL(“filename”;$A1);VIND.SPEC(“\[“;CEL(“filename”;$A1))+2;99)

      Het resultaat is: bestandnaam.xlsx]Map1

      Heb je een idee hoe het einde,, .xlsx]Map1 er af te halen?
      Daniel

  • Oplossing om alleen de bestandnaam te tonen

    Kopieer deze formule in een willekeurige cel:
    =DEEL(CEL(“filename”);VIND.SPEC(“[“;CEL(“filename”))+1;VIND.SPEC(“.xlsx]”;CEL(“filename”))-VIND.SPEC(“[“;CEL(“filename”))-1)

Geef een reactie

Het e-mailadres wordt niet gepubliceerd.