4.8k Aufrufe
Gefragt in Tabellenkalkulation von petra65 Experte (1.8k Punkte)
Hallo,

und schon wieder eine Frage zu meiner Tabelle....

Es ist unheimlich nervig 100 Hyperlinks per Hand einzufügen, daher nun meine Frage:

Ab A9 stehen die Kundennummern, es gibt genausoviele Tabellenblätter (benannt nach der Kundennumner),
Ist es nun möglich über die Kundennr. zu dem dazugehörigen Tabellenblatt zu springen???

Die Formel HYPERLINK kann ich nicht verwenden, da in den Zellen bereits Formeln enthalten sind ... also dann als Makro - oder geht das evtl. auch anders?

Vielen Dank für eure Antworten ..

Gruss - Petra

12 Antworten

0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

habe ich es richtig verstanden, dass du auf die Kundennummer Klickst und dann soll der Wechsel auf das entsprechende Tabellenblatt erfolgen

Gruß

Helmut
0 Punkte
Beantwortet von petra65 Experte (1.8k Punkte)
Hallo,

Ja, genau das meine ich ... (sorry, mal wieder schlecht ausgedrückt).

Gruss - Petra
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Petra,

ich würde es so machen

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("A9:A100")) Is Nothing Then
Worksheets(Target.Value).Select
End If
End Sub


In A9:A100 stehen die Kundennummern, die Tabellennamen haben die gleichen Nummern.
Linksklick auf eine Nummer springt zum gleichnamigen Blatt.

Gruß
Rainer
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Petra,

noch ein Nachtrag.

Ich vermute Du willst in Spalte A auch Änderungen vornehmen, da kannst Du das SelectionChange _Ereignis nicht verwenden.

Verwende das DoubleClick_Ereignis, als erste Makrozele ersetzen durch...

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)


Gruß
Rainer
0 Punkte
Beantwortet von petra65 Experte (1.8k Punkte)
Hallo,

das funktioniert ja mal wieder super ... ;-))

Habe nur eine kleine Änderung vorgenommen

Worksheets(Target.Value +4).Select

da die ersten vier Tabellenblätter der Auswertung
dienen.

Vielen, vielen Dank und einen schönen Tag....

Gruss - Petra
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Petra,

falls du doch Hyperlinks verwenden willst, so lassen sie sich mit dem folgenden Code erstellen:
Sub HyperlinksEinfuegen()
Dim raZelle As Range
For Each raZelle In Range("A9:A200")
If raZelle <> "" Then ActiveSheet.Hyperlinks.Add Anchor:=raZelle, _
Address:="", SubAddress:="'" & raZelle & "'!A1"
Next raZelle
End Sub

Die Formel Hyperlink kannst du auch verwenden, nach diesem Prinzip (da ich deine Formel nicht kenne steht B9 dafür):

=HYPERLINK("#'"&B9&"'!A1";B9)

Bis später,
Karin
0 Punkte
Beantwortet von petra65 Experte (1.8k Punkte)
Hallo Karin,

der VBA-Code ist ja klasse - hab ich mir direkt gespeichert (man weiss ja nie wofür man ihn noch braucht :-)))

Zu dem HYPERLINK: habe beide B9 durch die bereits bestehende Formel ersetzt, doch leider erhalte ich die Fehlermeldung "Ungültiger Bezug" .... Habe ich das Ersetzen von B9 richtig gemacht???

So sieht die Formel zur Zeit aus:
=WENN($A9="";"";SVERWEIS($A9;[MB_Kunden.xls]Kunden!$A$7:$C$302;2;FALSCH))

Sie sieht diese mit HYPERLINK aus:
=HYPERLINK("#"&WENN($A9="";"";SVERWEIS($A9;[MB_Kunden.xls]Kunden!$A$7:$C$302;2;FALSCH))&"!A1";WENN($A9="";"";SVERWEIS($A9;[MB_Kunden.xls]Kunden!$A$7:$C$302;2;FALSCH)))

Habe auch versucht "!A1" durch "!A9" zu ersetzen (da dort die erste Kundennummer steht), doch ohne Erfolg.
Kannst Du den Fehler sehen ???

Gruss - Petra
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Petra,

mit SVERWEIS() erhältst du den Zellinhalt, die Formel HYPERLINK() benötigt jedoch eine Zelladresse:

=WENN(A9="";"";HYPERLINK("[MB_Kunden.xls]Kunden!B"&VERGLEICH(A9;[MB_Kunden.xls]Kunden!$A$1:$A$12;0);SVERWEIS($A9;[MB_Kunden.xls]Kunden!$A$7:$C$302;2;FALSCH)))

Da in deiner Formel auf eine andere Arbeitsmappe verwiesen wird, fällt der Teil "#" weg.

Bis später,
Karin
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Petra,

Korrektur: da du einen anderen Bereich verwendest als ich beim Testen verwendet habe, muss die Formel so heißen

=WENN(A9="";"";HYPERLINK("[MB_Kunden.xls]Kunden!B"&VERGLEICH(A9;[MB_Kunden.xls]Kunden!$A$7:$A$302;0)+6;SVERWEIS(A9;[MB_Kunden.xls]Kunden!$A$7:$C$302;2;FALSCH)))

Bis später,
Karin
0 Punkte
Beantwortet von petra65 Experte (1.8k Punkte)
Hallo Karin,

erstmal vielen Dank für die Hilfe ....

;-) die Formel funktioniert .... allerdings leider falsch herum ......

Mal von Anfang an:

Es existieren 2 Tabellen:
1. Kunden
2. Behandlungen

Über die Kunden-Tabelle kann ich per Links in das entsprechende Tabellenblatt (pro Kunden 1 Blatt in Tabelle 2) springen.
-> HIER würde ich übringens auch gerne die Funktion HYPERLINK einsetzen.

In der Tabelle Behandlungen befinden sich diverse Tabellenblätter, unter anderem 2 Blätter für Auswertungen (HIERFÜR war die Funktion gedacht !!)
Ich möchte nun in dem Blatt 208AUSW per HYPERLINK in das entsprechende Tabellenblatt springen.

Deine Formel springt in die Tabelle Kunden.

Um das ganze mal anschaulicher zu machen habe ich beide Tabellen online gestellt.

Tabelle Kunden
www.file-upload.net/download-1684343/MB_Kunden.xls.html

Tabelle Behandlungen
www.file-upload.net/download-1684362/MB_Behandlungen.xls.html

Viele Grüße - Petra
...