Hyperlink für 50 Tabellenblätter in Mappe automatisch erstellen!

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Nun ist es mir selber gelungen ohne das verflixte .Select die Eintragungen vorzunehmen:

Sub all_Linked_D()
Dim I As Long
Dim LinkName As String
For I = 2 To 9
    LinkName = "Tabelle" & I & "!A1" ' Ergibt Tabelle2!A1, Tabelle3!A1.....
    With Sheets("Tabelle1")
        .Hyperlinks.Add Anchor:=Sheets("Tabelle1").Cells(I, 1), Address:="", SubAddress:= _
        LinkName, TextToDisplay:=LinkName
    End With
Next I
End Sub

KoldeGer 
Fragesteller
 03.06.2014, 13:51

Hallo,

danke für Deine Hilfe, aber:

Ich starte es und nichts passiert.

Ich habe Tabelle in BEW geändert, da bei mir ja die Blätter so lauten. Habe mich in Zelle A5 gestellt, ab dort soll ja von 2 bis 50 durchnummeriert werden ... und wie gesagt, nichts. Es existiert kein Hyperlink in A5 oder A6 usw.

Was mache ich noch falsch? Mein Code sieht nun so aus:

Sub allLinkedD()

Dim I As Long

Dim LinkName As String

For I = 2 To 50

LinkName = "BEW" & I & "!A1" ' Ergibt BEW2!A1, BEW3!A1.....

With Sheets("BEW1")

    .Hyperlinks.Add Anchor:=Sheets("BEW1").Cells(I, 1), Address:="", SubAddress:= _

    LinkName, TextToDisplay:=LinkName

End With

Next I

End Sub

0
PauleVBA  03.06.2014, 22:50
@KoldeGer
  1. es muss eine Tabelle (ein Blatt) existieren, die "BEW1" heißt

  2. hinter SubAddress:= _ darf keine Leerzeile folgen, sondern direkt LinkName

  3. gibt es eine Fehlermeldung? Dann stell sie hier ein. Und wo die gelbe Markierung im Code ist.

4 ich habe deinen Code im Excel 2003 ausprobiert, er macht was er soll.

Ggf. hast du ein ganz neues Excel und das kennt zwei Dateiarten: eine mit und eine ohne VBA, da musst du dann nachlesen.

0
KoldeGer 
Fragesteller
 04.06.2014, 11:07
@PauleVBA

Hallo,

  1. existiert
  2. ist ok
  3. 1004 Laufzeitfehler, Anwendungs- oder objektdefinierter Fehler
  4. Excel 2010 als Arbeitsmappe mit Makros gespeichert

Fragen:

a) Wo muss der Code gespechert werden? DieseArbeitsmappe oder Auswertung (wo ja die Hyperlinks rein sollen) b) woran erkennt der Code, dass er in Zelle A5 den Hyperlink zu BEW2, in Zelle A6 den Hyperlink zu BEW3 usw. setzen muss? c) Die Datei heißt Bewerberliste.xlsm ... muss das irgendwo noch vermerkt werden (obwohl alle Tabs in der datei enthalten sind)

0
PauleVBA  04.06.2014, 12:51
@KoldeGer

Rückfrage: Arbeitest Du mit mehreren geöffneten Mappen?

Dann erklärt sich die Fehlermeldung. Und wir müssen den Code anpassen. Also ist hier eine exakte Beschreibung der Mappen, deren Blätter (Tabellen) etc erforderlich.

zu den Fragen:

A) den Code in ein neues Modul speichern

B) bisher wird BEW2 in Zelle A2 geschrieben. Zuständig ist das I in der Cells-Zuweisung

Anchor:=Sheets("BEW1").Cells(I, 1)  

Wenn BEW2 in A5 landen soll muss es heißen:

Anchor:=Sheets("BEW1").Cells(I + 3, 1)

Geh mal auf das Cells und drücke F1, lies die Hilfe und versuch zu verstehen.

D) es kommt darauf an. Auf D) antworte ich, wenn meine Rückfrage ausführlich beantwortet wurde.

0

Ja, VBA: Einen Code schreiben und auf einen neuen Button im Menue legen. Hier der Code beispielhaft für Tabelle2, Tablle3... bis Tabelle9

Sub all_Linked()
Dim I As Long
Dim LinkName As String
For I = 2 To 9
    LinkName = "Tabelle" & I & "!A1" ' Ergibt Tabelle2!A1, Tabelle3!A1.....
    Sheets("Tabelle1").Cells(I, 1).Select
    Selection.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
        LinkName, TextToDisplay:=LinkName
Next I
End Sub

Wenn Du Address:= auch noch füllst, kannst du auch auf andere Mappen zugreifen.

Frage an die anderen Profis: wie bekommt man das ohne .Select hin?

Ich habe es mit einem Range versucht, trotz Zuweisung wird der Hyperlink dann nur immer in die aktive Zelle geschrieben. Die Zuweisung wird einfach missachted.