[EXCEL] Tabbladnaam als waarde in een cel

Pagina: 1
Acties:
  • 45.232 views

Onderwerpen


Acties:
  • 0 Henk 'm!

  • deepbass909
  • Registratie: April 2001
  • Laatst online: 19:47

deepbass909

[☼☼] [:::][:::] [☼☼]

Topicstarter
Ik ben voor m'n werk een geautomatiseerde excel-spreadsheet op te zetten waarin scores van projecten worden bijgehouden. Per project is er een tabblad waarin basisinfo staat (naam aanvrager, naam project) en de scores van een adviescommissie.
Deze basisinfo wordt met een zoekfunctie uit een overzichtsblad gehaald, waar alle projecten in staan. Als zoekfunctie gebruikt excel het projectnummer, dat gelijk is aan de tabbladnaam.

Uiteraard wil ik zo min mogelijk met de hand moeten invoeren en als het moet, maar maximaal 1 keer, om én de kans op fouten zo klein mogelijk te maken, én om bij toekomstige projecten het aanpassen van de spreatsheet zo simpel mogelijk te maken.

Nu moet ik het projectnummer nog met de hand invoeren in zowel het tabblad als de bewuste cel, maar het is mogelijk om de naam van een tabblad automatisch in een cel te plaatsen.
Dat doe ik met de volgende formule:
code:
1
=DEEL(CEL("bestandsnaam");VIND.SPEC("]";CEL("bestandsnaam");1)+1;10)


Een kleine toelichting:
CEL("bestandsnaam") :
Geeft als resultaat het volledige pad + bestandsnaam tussen rechte haken ([&]) en daarachter de naam van het tabblad.

VIND.SPEC("]";CEL("bestandsnaam");1) :
Zoekt de positie van teken "]" tellend vanaf karakter 1 (achter "]" staat de naam van het tabblad)

DEEL(CEL("bestandsnaam");VIND.SPEC("]";CEL("bestandsnaam");1)+1;10) :
De uiteindelijke formule, waarbij de waarde van VIND.SPEC + 1 (de tekst die ik wil hebben start namelijk 1 positie verder dan de positie van de zoekwaarde) de begin waarde van het deel uit het resultaat van CEL("bestandsnaam") dat ik wil hebben bepaald en vervolgens de 10 opvolgende tekens als resultaat geeft.

Dit werkt op zich goed en is volgens mij ook de kortst mogelijke formule om tot het gewenste resultaat te komen.

Maar nu het probleem.
Het resultaat dat weergegeven wordt, is in alle tabbladen waar deze formule toegepast wordt, gelijk, namelijk de naam van het laatste tabblad waar deze formule is toegepast en niet de naam van het bewuste tabblad.

De bron van het probleem zit in de functie CEL("bestandsnaam"), deze geeft op elk tabblad namelijk hetzelfde resultaat. Hoe is dit op te lossen?

Andere oplossingen die hetzelfde zouden kunnen doen, werken met VBA, maar daar wil ik liever vandaan blijven, wegens én gebrek aan kennis en problemen intern wat betreft beveiliging en veiligheidsrisico's met scripts (waardoor een VBA-script dus onbetrouwbaar wordt).

Waarschuwing, opperprutser aan het werk... en als je een opmerking van mij niet snapt, klik dan hier


Acties:
  • 0 Henk 'm!

  • deepbass909
  • Registratie: April 2001
  • Laatst online: 19:47

deepbass909

[☼☼] [:::][:::] [☼☼]

Topicstarter
Dit had ik al gevonden. Ook daar speel je met macro's (alleen geen VBA-macro's), maar daar wil ik dus eigenlijk zo veel mogelijk vandaan blijven.

Ik wil het eigenlijk beperken tot een zoekfunctie in de cel waar ook het resultaat moet komen.

Waarschuwing, opperprutser aan het werk... en als je een opmerking van mij niet snapt, klik dan hier


Acties:
  • 0 Henk 'm!

Verwijderd

die oplossing lijkt me toch bruikbaar (zeker als de volgorde van de tabs niet wijzigt)?
het gaat om een zogenaamde "naam". excel geeft bij het openen van een dergelijke spreadsheet iig geen waarschuwing over macro's of wat dan ook.
misschien kan je eens wat meer zeggen over die zoekfunctie, dan kunnen we met je meedenken over alternatieven.

Acties:
  • 0 Henk 'm!

  • deepbass909
  • Registratie: April 2001
  • Laatst online: 19:47

deepbass909

[☼☼] [:::][:::] [☼☼]

Topicstarter
De zoekfunctie staat uitgewerkt en gelegd in mijn startpost. Deze werkt ook, maar gaat fout door het resultaat dat CEL("bestandsnaam") genereert dat op elk tabblad gelijk is aan het laatst gegenereerde resultaat (en niet het tabblad waar hij op staat).

Misschien handig om te weten, ik zit vast aan Excel 2002 (ik weet het, we werken hier met een hopeloos verouderde office...) en ik weet niet hoe dit gaat bij nieuwere Excel-versies.

Een andere reden dat ik overigens ook weg wil blijven bij macro's/scripts is dat ik niet de enige gebruiker ben van de spreatsheet, maar collega's bij nieuwe opdrachten hem makkelijk moeten kunnen aanpassen naar de nieuwe opdracht. Voorwaarden als dat de volgorde van de tabs niet mogen veranderen, gaan dus niet werken.

Waarschuwing, opperprutser aan het werk... en als je een opmerking van mij niet snapt, klik dan hier


Acties:
  • +2 Henk 'm!

  • Okkienoot
  • Registratie: Mei 2010
  • Laatst online: 11-09 11:12
Het is een tijd terug dat ik me in die formule verdiept heb maar hierbij de formule die voor mij het werk doet, misschien heb je er iets aan:

=DEEL(CEL("bestandsnaam";$A$1);VIND.ALLES("]";CEL("bestandsnaam";$A$1))+1;31)

Dit geeft de naam van het openstaande tabblad weer. Door $A$1 te veranderen in een pad naar een tab geeft dit de formule de naam van dat tabblad.

Acties:
  • 0 Henk 'm!

  • deepbass909
  • Registratie: April 2001
  • Laatst online: 19:47

deepbass909

[☼☼] [:::][:::] [☼☼]

Topicstarter
Okkienoot schreef op woensdag 19 mei 2010 @ 15:11:
Het is een tijd terug dat ik me in die formule verdiept heb maar hierbij de formule die voor mij het werk doet, misschien heb je er iets aan:

=DEEL(CEL("bestandsnaam";$A$1);VIND.ALLES("]";CEL("bestandsnaam";$A$1))+1;31)

Dit geeft de naam van het openstaande tabblad weer. Door $A$1 te veranderen in een pad naar een tab geeft dit de formule de naam van dat tabblad.
HELD _/-\o_

Waarschijnlijk was de verwijzing naar een cel op het tabblad genoeg om te zorgen dat de functie CEL nu wel doet wat hij moet doen. Dat is namelijk het enige substantiële verschil tussen jouw functie en mijn functie (VIND.ALLES en VIND.SPEC zijn namelijk in dit geval uitwisselbaar).

Waarschuwing, opperprutser aan het werk... en als je een opmerking van mij niet snapt, klik dan hier


Acties:
  • 0 Henk 'm!

  • Okkienoot
  • Registratie: Mei 2010
  • Laatst online: 11-09 11:12
Graag gedaan :)

Acties:
  • 0 Henk 'm!

  • svanweelden
  • Registratie: Mei 2003
  • Laatst online: 17-07 10:47
Voor de gebruikers met een engelstalige versie van Excel:

=MID(CELL("filename";$A$1);FIND("]";CELL("filename";$A$1))+1;31)

Acties:
  • 0 Henk 'm!

  • g0tanks
  • Registratie: Oktober 2008
  • Laatst online: 23:56

g0tanks

Moderator CSA
svanweelden schreef op maandag 11 januari 2021 @ 09:55:
Voor de gebruikers met een engelstalige versie van Excel:

=MID(CELL("filename";$A$1);FIND("]";CELL("filename";$A$1))+1;31)
Dank voor de toevoeging, maar aangezien het een 10+ jaar oud topic betreft doe ik er gelijk een slotje op. Mocht iemand er toch niet uitkomen dan mag hij of zij een nieuw topic openen. :)

Ultrawide gaming setup: AMD Ryzen 7 2700X | NVIDIA GeForce RTX 2080 | Dell Alienware AW3418DW

Pagina: 1

Dit topic is gesloten.