[Excel] Auto-link een cell-text naar worksheet

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Mastakilla
  • Registratie: Februari 2001
  • Laatst online: 17:42
Hallo,

Ik heb een excel met een 40-50 tal voortdurend veranderende worksheets.

Aangezien Excel maximaal 1 horizontale rij met de worksheet-lijst ondersteund en geen verticale worksheet-lijst of meerdere horizontale rijen als worksheet-lijst, betekent dit dat ik voordurend met die debiele pijltjes moet zitten scrollen tussen mijn worksheets... (of ik moet zo'n 49" breedbeeld monitor kopen)

Ik heb echter ook een "overview-worksheet" met hierin een tabel waarvan de eerste kolom overeenkomt met de namen van alle worksheets. Telkens als ik een worksheet toevoeg, verwijder of hernoem, dan zal ik dit ook doen in de eerste kolom van deze tabel.

Ik vroeg me dan ook af of ik van deze eerste kolom van die tabel geen links kan maken naar mijn worksheets. En dan liefst nog zo dat ik gewoon een nieuwe rij kan toevoegen en dat automatisch hiervoor een link wordt gemaakt naar de bijpassende worksheet, zonder dat een rij / worksheet toevoegen een process van vele ingewikkelde stappen wordt...

Alvast bedankt!

Beste antwoord (via Mastakilla op 19-04-2021 13:22)


  • Belindo
  • Registratie: December 2012
  • Laatst online: 19:45

Belindo

â–ļ ─🔘─────── 15:02

@Mastakilla Ja, dit kan, vrij simpel overigens.

Door middel van de =HYPERLINK() functie. Het eerste argument is de link, het tweede argument is de text die je link moet tonen.

Bijvoorbeeld:
code:
1
=HYPERLINK("https://www.google.com","Google")

Dit geeft je een link-text 'Google' en als je op de link klikt ga je naar https://www.google.com

Een link naar een sheet bevat de sheetnaam en een locatie. Bijvoorbeeld Sheet2!A1 (cel A1 op de sheet 'Sheet2'). Als er een spatie in je sheet naam zit, dan moet je deze wrappen met single quotes: 'Sheet 2'!A1

De enige toevoeging, die je net even moet weten, is dat voor een interne link, je link moet beginnen met een #. Dus als ik naar Sheet 2, cel A1 wil linken doe ik dat als volgt:
code:
1
=HYPERLINK("#'Sheet 2'!A1","Click")


Nu resteert nog ÊÊn stap, en dat is de hardcoded 'Sheet 2' vervangen door whatever er in whichever cell staat.

Als ik nu het woord: Sheet 2 in de cel A1 typ, dan vervang ik de text in de formule door de cel waar nu mijn tekst staat. Maar omdat je text en formule gaat combineren moet je eerst de text afsluiten met een dubbele quote, dan een & teken, dan je cel-locatie, dan een & teken en dan de text weer starten met een dubbele quote. De formule ziet er dan zo uit:
code:
1
=HYPERLINK("#'"&A1&"'!A1","Click")


Nu heb ik een cel waar in het woord 'Click' staat, en als ik daarop klik ga ik naar cel A1 op Sheet 2.

Deze formule kun je dan naast elke cel met daarin je sheet namen zetten. Makkelijker is om een tabel te gebruiken, want dan wordt de formule toegepast op nieuwe rijen.

Plaatje:
Afbeeldingslocatie: https://tweakers.net/i/7VVEtlxIfKOkMui_erkzTXSGcnM=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/LoRxvAmFmwEFQ6zLUoZBcSz8.png?f=user_large

Coding in the cold; <brrrrr />

Alle reacties


Acties:
  • +1 Henk 'm!

  • Titu
  • Registratie: Februari 2010
  • Laatst online: 17-07 08:35
Als je linksonderin met je rechtermuisknop klikt dan krijg je toch gewoon een overzicht van alle worksheets. Dan is het toch een stuk sneller om te switchen tussen de tabbladen?

Afbeeldingslocatie: https://i.imgur.com/ylHBKXb.png

Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • Belindo
  • Registratie: December 2012
  • Laatst online: 19:45

Belindo

â–ļ ─🔘─────── 15:02

@Mastakilla Ja, dit kan, vrij simpel overigens.

Door middel van de =HYPERLINK() functie. Het eerste argument is de link, het tweede argument is de text die je link moet tonen.

Bijvoorbeeld:
code:
1
=HYPERLINK("https://www.google.com","Google")

Dit geeft je een link-text 'Google' en als je op de link klikt ga je naar https://www.google.com

Een link naar een sheet bevat de sheetnaam en een locatie. Bijvoorbeeld Sheet2!A1 (cel A1 op de sheet 'Sheet2'). Als er een spatie in je sheet naam zit, dan moet je deze wrappen met single quotes: 'Sheet 2'!A1

De enige toevoeging, die je net even moet weten, is dat voor een interne link, je link moet beginnen met een #. Dus als ik naar Sheet 2, cel A1 wil linken doe ik dat als volgt:
code:
1
=HYPERLINK("#'Sheet 2'!A1","Click")


Nu resteert nog ÊÊn stap, en dat is de hardcoded 'Sheet 2' vervangen door whatever er in whichever cell staat.

Als ik nu het woord: Sheet 2 in de cel A1 typ, dan vervang ik de text in de formule door de cel waar nu mijn tekst staat. Maar omdat je text en formule gaat combineren moet je eerst de text afsluiten met een dubbele quote, dan een & teken, dan je cel-locatie, dan een & teken en dan de text weer starten met een dubbele quote. De formule ziet er dan zo uit:
code:
1
=HYPERLINK("#'"&A1&"'!A1","Click")


Nu heb ik een cel waar in het woord 'Click' staat, en als ik daarop klik ga ik naar cel A1 op Sheet 2.

Deze formule kun je dan naast elke cel met daarin je sheet namen zetten. Makkelijker is om een tabel te gebruiken, want dan wordt de formule toegepast op nieuwe rijen.

Plaatje:
Afbeeldingslocatie: https://tweakers.net/i/7VVEtlxIfKOkMui_erkzTXSGcnM=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/LoRxvAmFmwEFQ6zLUoZBcSz8.png?f=user_large

Coding in the cold; <brrrrr />


Acties:
  • 0 Henk 'm!

  • Mastakilla
  • Registratie: Februari 2001
  • Laatst online: 17:42
Titu schreef op maandag 19 april 2021 @ 11:03:
Als je linksonderin met je rechtermuisknop klikt dan krijg je toch gewoon een overzicht van alle worksheets. Dan is het toch een stuk sneller om te switchen tussen de tabbladen?

[Afbeelding]
Ook daar moet ik weer scrollen omdat er teveel worksheets zijn.

Dat is dus
click
scroll
click

Veel te veel stappen ;)

Acties:
  • 0 Henk 'm!

  • Mastakilla
  • Registratie: Februari 2001
  • Laatst online: 17:42
Belindo schreef op maandag 19 april 2021 @ 11:37:
@Mastakilla Ja, dit kan, vrij simpel overigens.

Door middel van de =HYPERLINK() functie. Het eerste argument is de link, het tweede argument is de text die je link moet tonen.

Bijvoorbeeld:
code:
1
=HYPERLINK("https://www.google.com","Google")

Dit geeft je een link-text 'Google' en als je op de link klikt ga je naar https://www.google.com

Een link naar een sheet bevat de sheetnaam en een locatie. Bijvoorbeeld Sheet2!A1 (cel A1 op de sheet 'Sheet2'). Als er een spatie in je sheet naam zit, dan moet je deze wrappen met single quotes: 'Sheet 2'!A1

De enige toevoeging, die je net even moet weten, is dat voor een interne link, je link moet beginnen met een #. Dus als ik naar Sheet 2, cel A1 wil linken doe ik dat als volgt:
code:
1
=HYPERLINK("#'Sheet 2'!A1","Click")


Nu resteert nog ÊÊn stap, en dat is de hardcoded 'Sheet 2' vervangen door whatever er in whichever cell staat.

Als ik nu het woord: Sheet 2 in de cel A1 typ, dan vervang ik de text in de formule door de cel waar nu mijn tekst staat. Maar omdat je text en formule gaat combineren moet je eerst de text afsluiten met een dubbele quote, dan een & teken, dan je cel-locatie, dan een & teken en dan de text weer starten met een dubbele quote. De formule ziet er dan zo uit:
code:
1
=HYPERLINK("#'"&A1&"'!A1","Click")


Nu heb ik een cel waar in het woord 'Click' staat, en als ik daarop klik ga ik naar cel A1 op Sheet 2.

Deze formule kun je dan naast elke cel met daarin je sheet namen zetten. Makkelijker is om een tabel te gebruiken, want dan wordt de formule toegepast op nieuwe rijen.

Plaatje:
[Afbeelding]
Dit werkt wel beter dan hoe ik het momenteel doe... Wel jammer dat ik er een extra kolom voor nodig heb, maar bij nader inzien is het waarschijnlijk onmogelijk om dit zonder extra kolom te doen, zonder dat er extra werk bijkomt iedere keer als ik een rij wil toevoegen...

Bedankt!

Acties:
  • +1 Henk 'm!

  • Belindo
  • Registratie: December 2012
  • Laatst online: 19:45

Belindo

â–ļ ─🔘─────── 15:02

Je zou het door middel van Visual Basic code verder kunnen automatiseren tot ÊÊn kolom. Maar ik denk dat je dan langer bezig bent terwijl een extra kolom niet zo'n groot probleem is (lijkt mij).

Met Visual Basic zou je dan aan de volgende stappen kunnen denken:
- Wanneer een cel in een range (rij A:A ofzo) veranderd triggert de code
- De code pakt de waarde in de zojuist veranderde cel en vervangt deze door een hyperlink

Coding in the cold; <brrrrr />

Pagina: 1