AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein EXCEL - Hyperlink auf ein anderes Tabellenblatt

EXCEL - Hyperlink auf ein anderes Tabellenblatt

Ein Thema von Nimmersatt · begonnen am 2. Jul 2014 · letzter Beitrag vom 4. Jul 2014
Antwort Antwort
Nimmersatt

Registriert seit: 14. Feb 2014
86 Beiträge
 
#1

EXCEL - Hyperlink auf ein anderes Tabellenblatt

  Alt 2. Jul 2014, 15:53
Hallo,

Ich möchte über Delphi in Excel ein Hyperlink setzen, das auf ein anderes Tabellenblatt verweist.

folgender Versuch ist fehlgeschlagen

excel.sheets[1].Hyperlinks.Add(excel.sheets[1].cells[1,1],excel.sheets[2].cells[2,2]);



Ein Versuch den Hyperlink auszulesen, um die korrekte Adressierung zu erfahren, ist fehlgeschlagen

if Excel.Range['a1', 'a1'].Hyperlinks.Count > 0 then ShowMessage(Excel.Range['a1',a1'].Hyperlinks[1].Address);



Mein nächster Versuch ist ebenfalls fehlgeschlagen

excel.sheets[1].Hyperlinks.Add(excel.sheets[1].cells[1,1],’Tabelle2!B2');



Welche Adresse müsste ich für den Sprung zum 2. Tabellenblatt für die Zelle B2 angeben

excel.sheets[1].Hyperlinks.Add(excel.sheets[1].cells[1,1],’Adresse’);


Danke
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#2

AW: EXCEL - Hyperlink auf ein anderes Tabellenblatt

  Alt 2. Jul 2014, 17:19
Ich hab das mal direkt in Excel getestet, Makrorekorder ist schon was feines:
Code:
ActiveSheet.Hyperlinks.Add ActiveSheet.Cells(5, 5), "", "Tabelle1!B6", , "Test"
Umgemünzt auf dein Szenario ungefähr so, wobei man die Adresse des Ziels scheinbar als String braucht, d.h. das müsstest du ggf. ermitteln, ich habs mal fix mit Zelle B2 auf Sheet Tabelle2 angenommen:

excel.sheets[1].Hyperlinks.Add(excel.sheets[1].cells[1,1],'','Tabelle2!B2',EmptyParam,'Linktext');
Ralph
  Mit Zitat antworten Zitat
Nimmersatt

Registriert seit: 14. Feb 2014
86 Beiträge
 
#3

AW: EXCEL - Hyperlink auf ein anderes Tabellenblatt

  Alt 3. Jul 2014, 12:08
Hallo Jumpy,

Danke, es hat wunderbar geklappt.

Aber ich habe noch ein klitzekleines Problem.
Wenn ich den Namen des Tabellenblattes verändere und der Hyperlink auf diesen veränderten Namen verweist,kommt die Meldung - Bezug ist ungültig.
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#4

AW: EXCEL - Hyperlink auf ein anderes Tabellenblatt

  Alt 3. Jul 2014, 14:52
Kannst du mMn nicht verhindern und hast du auch, wenn du einen Hyperlink von Hand anlegst. Im Gegensatz zu Excel-Zellen und -Formeln die diese Bezüge bei Veränderungen anpassen scheint mir das bei den Hyperlinks fix zu sein.
Ralph
  Mit Zitat antworten Zitat
Nimmersatt

Registriert seit: 14. Feb 2014
86 Beiträge
 
#5

AW: EXCEL - Hyperlink auf ein anderes Tabellenblatt

  Alt 3. Jul 2014, 16:00
Hallo Jympy,

Ich hatte schon vorher die Namen der Tabellenbätter verändert.

Wenn ich dann in EXCEL per Hand ein Hyperlink anlege, dann funktioniert der Hyperlink.
Unter Delphi funktioniert der programmierte Hyperlink nicht.

Ich habe es auch über einen Sheet-Index versucht, bisher hat es nicht funktioniert.
Vielleicht gibt es da einen Weg ?

Ich kann mir nicht vorstellen, das da in Excel für dieses Problem keine Vorkehrungen getroffen wurden.
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#6

AW: EXCEL - Hyperlink auf ein anderes Tabellenblatt

  Alt 4. Jul 2014, 08:48
OK, verstehe was du meinst. Du willst einen Link z.B. auf Sheet 2, dass aber irgendwie heißt und nicht Tabelle2.

Dafür kannst du doch einfach sagen
Delphi-Quellcode:
var HyperlinkTarget : String;
    HyperlinkText : String;
[...]
// für excel.sheets[2].cells[2,2]:
HyperlinkTarget:=excel.sheets[2].name & '!B2'
HyperlinkText:='Hier geht's weiter'

excel.sheets[1].Hyperlinks.Add(excel.sheets[1].cells[1,1],
'',HyperlinkTarget,EmptyParam,HyperlinkText);
Ralph
  Mit Zitat antworten Zitat
Nimmersatt

Registriert seit: 14. Feb 2014
86 Beiträge
 
#7

AW: EXCEL - Hyperlink auf ein anderes Tabellenblatt

  Alt 4. Jul 2014, 14:15
Hallo Jumpy,

Ich habe den Fehler gefunden.
Wenn der Name des Tabellenblattes ein Leerzeichen, ein Minuszeichen oder ein bestimmtes Sonderzeichen enthält, ist eine Adressierung über Delphi nicht möglich. Per Hand in Excel ist das aber möglich.
Alle meine Tabellenblätter hatten irgendwelche Sonderzeichen, wie z.B. die Namen des Tabellenblattes Score-Werte, 1. Variante und genau das hat mich in die Irre geführt.

Aber vielen Dank für deine Hilfe.
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#8

AW: EXCEL - Hyperlink auf ein anderes Tabellenblatt

  Alt 4. Jul 2014, 14:22
Das mit den Leerzeichen zumindest (Sonderzeichen nicht getestet) müsste doch mit Quoted-String gehen:

Obiges Beispiel angepasst, Name des Sheets sei "Willi Bald 123":

Delphi-Quellcode:
var HyperlinkTarget : String;
    HyperlinkText : String;
[...]
// für excel.sheets[2].cells[2,2]:
HyperlinkTarget:=QuotedStr(excel.sheets[2].name)+'!B2'
// oder: HyperlinkTarget:=''''+excel.sheets[2].name+''''+'!B2'
HyperlinkText:='Hier geht's weiter'

excel.sheets[1].Hyperlinks.Add(excel.sheets[1].cells[1,1],
'',HyperlinkTarget,EmptyParam,HyperlinkText);
Ralph
  Mit Zitat antworten Zitat
Nimmersatt

Registriert seit: 14. Feb 2014
86 Beiträge
 
#9

AW: EXCEL - Hyperlink auf ein anderes Tabellenblatt

  Alt 4. Jul 2014, 15:14
Hallo Jumpy,

Bingo !
QuotedStr kannte ich gar nicht.
Das mit den anderen Sonderzeichen funktioniert jetzt auch.
Jetzt sind alle Probleme gelöst.

Danke !
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz