Delen via

Hoe kun je in elk tabblad de naam van het tabblad in een cel plaatsen

Anoniem
2023-08-14T00:15:24+00:00

Ik wil in elk tabblad de naam van het tabblad in een cel plaatsen, bijv in A1. Met CELL("filename") leek mij dat geen probleem. Maar het vervelende is dat als ik bijvoorbeeld tabblad1 doorreken, dan wordt tegelijkertijd in tabblad2 de naam van tabblad2 vervangen door de naam van tabblad1.

Voorbeeld:

  • stel tabblad1 heet January en tabblad2 heet February en
  • cel A1 in tabblad January bevat CELL("filename") // Dan vertoont in A1 van tabblad January : <path>*January*
  • cel A1 in tabblad February bevat CELL("filename") // Dan vertoont in A1 van tabblad February : <path>*February*

Als ik dan tabblad January doorreken en vervolgens switch naar tabblad February, dan is daar cel A1 veranderd in <path>*January.*

Nu kan ik natuurlijk het doorrekenen op handmatig zetten, maar dat vind ik niet handig. Hoe kan ik ervoor zorgen dat in elk tabblad de juiste naam te zien blijft zonder de berekeningen op handmatig te zetten?

Michi

Microsoft 365 en Office | Excel | Voor thuisgebruik | Windows

Vergrendelde vraag. Deze vraag is gemigreerd vanuit de Microsoft Ondersteuning-community. U kunt met een stem aangeven of de inhoud nuttig is, maar u kunt geen opmerkingen of antwoorden toevoegen of de vraag volgen.

0 opmerkingen Geen opmerkingen

Antwoord geaccepteerd door vraagauteur

  1. Anoniem
    2023-08-14T10:24:16+00:00

    Zonder vba en ervan uitgaande dat je als lijstscheidingsteken de komma gebruikt:

    • In Excel 365:

    Engeltalige versie: =TEXTAFTER(CELL("filename",A1),"]")

    NL-versie: =TEXT.NA(CEL("bestandsnaam",A1),"]")

    • In Excelversies vóór 365

    Engelstalige versie: =MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255)

    NL-versie: =DEEL(CEL("bestandsnaam",A1),VIND.SPEC("]",CEL("bestandsnaam",A1))+1,255)

    NB: In de Nederlandstalige versie van Excel wordt doorgaans de puntkomma ( ; ) als lijstscheidingsteken gebruikt in plaats van de komma; let daar op bij gebruikmaking van de formule(s).

    Was dit antwoord nuttig?

    3 personen vonden dit antwoord nuttig.
    0 opmerkingen Geen opmerkingen

Antwoord geaccepteerd door vraagauteur

  1. Anoniem
    2023-08-14T01:37:10+00:00

    Hallo Michiel2,

    Ik ben Ibhadighi en ik help je graag met je vraag. In dit forum zijn we Microsoft-consumenten, net als jij.

    U kunt een aangepaste functie in VBA gebruiken om de bladnaam in een cel weer te geven. Hier is hoe je het kunt doen:

    Druk op Alt + F11 om de VBA-editor (Visual Basic for Applications) te openen. Klik in de Projectverkenner met de rechtermuisknop op de naam van de werkmap en selecteer Invoegen > module. Plak in de module de volgende code: Functie SheetName() Als tekenreeks Application.Volatile Bladnaam = Application.Caller.Worksheet.Name Eindfunctie

    Sluit de VBA-editor en ga terug naar uw Excel-werkmap. Voer in een cel de formule =SheetName() in om de naam van het blad weer te geven. Deze aangepaste functie geeft altijd de naam weer van het blad waarin het wordt gebruikt, zelfs als berekeningen op andere bladen worden uitgevoerd.

    Ik hoop dat dit helpt! Laat het me weten als je nog vragen of opmerkingen hebt.

    Hartelijke groeten Ibhadighi

    Deze reactie is automatisch vertaald. Hierdoor bevat het wellicht gramaticale fouten of vreemde zinnen.

    Was dit antwoord nuttig?

    3 personen vonden dit antwoord nuttig.
    0 opmerkingen Geen opmerkingen

2 extra antwoorden

Sorteren op: Meest nuttig
  1. Anoniem
    2023-08-14T17:34:55+00:00

    Hi Aalpha,

    Dankjewel voor je hulp in deze. Jouw voorstel is een adequate manier om de tekst te ontleden. Ik kwam ongeveer op hetzelfde uit, alleen maakte ik gebruik van de VERVANGEN functie in plaats van de DEEL functie. Maar ik had de toevoeging van A1 in de CEL functie weggelaten en dat maakt het grote verschil. Met A1 erin werkte het wel, alhoewel je dan niet de cel naar boven toe kunt kopiëren. Dan krijg je een error. Maar dat kan natuurlijk eenvoudig worden opgelost door A1 te vervangen voor $A$1.

    NL-versies:

    =DEEL(CEL("bestandsnaam";$A$1);VIND.SPEC("]";CEL("bestandsnaam";$A$1))+1;255)

    =VERVANGEN(CEL("bestandsnaam";$A$1);1;VIND.SPEC("]";CEL("bestandsnaam";$A$1));"")

    Ik heb tot nog toe altijd zonder VBA gewerkt (gewoon omdat ik het niet beheers). Maar de VBA oplossing van Dighi werkt niet alleen perfect, het is ook veel eenvoudiger (als je het werken met VBA geen probleem vindt). Het is voor mij dan ook een extra motivatie om VBA verder te exploreren.

    Ik ben inmiddels ook niet meer zo dol op functies met argumentwaardes zoals CEL, omdat ik me nu realiseer dat die taal specifiek zijn. Als ik de Excel sheet naar iemand stuur met een andere taal versie van Excel dan gaat het fout. Dus mijn conclusie tot zo ver is, dat het verstandig en handig is om de VBA oplossing van Dighi te gebruiken, maar dat wist je natuurlijk zelf ook wel.

    Fijne dag.

    Michi

    Was dit antwoord nuttig?

    2 personen vonden dit antwoord nuttig.
    0 opmerkingen Geen opmerkingen
  2. Anoniem
    2023-08-14T07:01:08+00:00

    Hi Dighi,

    Hartelijk dank voor je reactie. Woww, it works like a charme. Dit was mijn eerste ontmoeting met VBA en ik moest de code wat bijstellen vanwege de automatische vertaling, maar het werkt nu geweldig. Je hebt voor mij een nieuw hoofdstuk geopend in het Excel boek, waar ik vast nog veel van kan leren.

    Michi

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen