Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
860to864
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
860to864
860to864
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Ausgewählte Tabellenamen als Hyperlink

Ausgewählte Tabellenamen als Hyperlink
18.04.2007 18:02:45
Fritz_W
Hallo Forumsbesucher,
mit dem folgenden Makro werden die Tabellennamen, der Tabellen der Arbeitsmappe, deren Tabellennamen aus einer Zahl besteht in einen bestimmten Bereich einer Tabelle als Hyperlink eingefügt.
Ich möchte nun, dass der Code so geändert wird, dass von den Tabellen, deren Namen aus einer Zahl besteht, nur diejenigen als Hyperlink in diesen Bereich eingefügt werden, wenn in der betreffenden Tabelle der Zelleintrag in der Zelle E3 jeweils 30 beträgt.
Für eure Unterstützung bei der Verwirklichung meines Vorhabens danke ich im Voraus.
mfg
Fritz

Public Sub Worksheet_Activate()
Dim objWs As Worksheet
Dim lngR As Long
lngR = 2
For Each objWs In Me.Parent.Worksheets
If IsNumeric(objWs.Name) Then
Cells(lngR, 14) = objWs.Name
Me.Hyperlinks.Add Anchor:=Cells(lngR, 14), Address:="", SubAddress:= _
"'" & objWs.Name & "'!A1"
lngR = lngR + 1
End If
Next
Range(Cells(2, 14), Cells(lngR - 1, 14)).Sort Key1:=Cells(2, 14), order1:=xlAscending, header:= _
xlNo
End Sub


5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ausgewählte Tabellenamen als Hyperlink
18.04.2007 19:45:28
Erich
Hallo Fritz,
probier mal

Option Explicit
Public Sub Worksheet_Activate()
Dim objWs As Worksheet
Dim lngR As Long
lngR = 2
Range(Cells(2, 14), Cells(Rows.Count, 14)).ClearContents
For Each objWs In ThisWorkbook.Worksheets
If IsNumeric(objWs.Name) Then
If objWs.Cells(3, 5) = 30 Then
Cells(lngR, 14) = objWs.Name
Me.Hyperlinks.Add Anchor:=Cells(lngR, 14), Address:="", _
SubAddress:="'" & objWs.Name & "'!A1"
lngR = lngR + 1
End If
End If
Next
Range(Cells(2, 14), Cells(lngR - 1, 14)).Sort Key1:=Cells(2, 14), order1:=xlAscending, _
header:=xlNo
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Ausgewählte Tabellenamen als Hyperlink
18.04.2007 20:02:19
Fritz_W
Hallo Erich,
(gewohnt) optimale Umsetzung meines Wunsches.
Ganz herzlichen Dank
und einen schönen Gruß
Fritz

@ Erich G.
18.04.2007 20:25:54
Fritz_W
Hallo Erich,
noch eine Frage: Wie ich das Makro ändern muss, damit alle anderen "Zahlen-Tabellen" (die Tabellen, bei denen in E3 nicht die 30 steht) als Hyperlink eingefügt werden, weiß ich. Jedoch kann ich nur das eine oder das andere Makro in der Arbeitsmappe einsetzen.
Wie könnte ich diese beiden Hyperlinklisten entweder in der gleichen Tabelle in getrennten Bereichen oder in zwei verschiedenen Tabellen der Arbeitsmappe einfügen?
Schönen Gruß
Fritz

Anzeige
AW: @ Erich G.
19.04.2007 07:44:20
Erich
Hallo Fritz,
damit kannst du dir aussuchen, wohin die Links sollen:

Option Explicit
Public Sub Worksheet_Activate()
Dim lngRA(1 To 2) As Long, intC(1 To 2) As Integer, lngR(1 To 2) As Long
Dim wsAus(1 To 2) As Worksheet, ws As Worksheet, ii As Integer
Set wsAus(1) = ActiveSheet       ' Blatt für 30er Hyperlinks (kann and. Sheet sein)
lngRA(1) = 2: intC(1) = 14       ' Anfangszeile und Spalte für 30er Hyperlinks
Set wsAus(2) = Sheets("Andere")  ' Blatt für and. Hyperlinks (kann ActiveSheet sein)
lngRA(2) = 4: intC(2) = 6        ' Anfangszeile und Spalte für and. Hyperlinks
' ---------------------------------------------------------------------- Init
For ii = 1 To 2
lngR(ii) = lngRA(ii)
With wsAus(ii)
.Range(.Cells(lngR(ii), intC(ii)), .Cells(Rows.Count, intC(ii))).ClearContents
End With
Next ii
' ---------------------------------------------------------------------- Hyperlinks
For Each ws In ThisWorkbook.Worksheets
If IsNumeric(ws.Name) Then
ii = IIf(ws.Cells(3, 5) = 30, 1, 2)
With wsAus(ii)
.Hyperlinks.Add Anchor:=.Cells(lngR(ii), intC(ii)), _
Address:="", SubAddress:="'" & ws.Name & "'!A1", TextToDisplay:=ws.Name
lngR(ii) = lngR(ii) + 1
End With
End If
Next
' ---------------------------------------------------------------------- Sorts
For ii = 1 To 2
With wsAus(ii)
.Range(.Cells(lngRA(ii), intC(ii)), .Cells(lngR(ii) - 1, intC(ii))).Sort _
Key1:=.Cells(lngRA(ii), intC(ii)), Order1:=xlAscending, Header:=xlNo
End With
Next ii
End Sub

Hast du eigentlich mit der Prozedur in
https://www.herber.de/forum/archiv/860to864/t862278.htm
etwas anfangen können?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
Toller Service
19.04.2007 14:36:00
Fritz_W
Hallo Erich,
absolut super, was Du da wieder einmal für mich "gechrieben" hast. Service vom Feinsten!
Du darfst absolut sicher sein, dass ich diese kompetente Unterstützung sehr zu schätzen weiss!
Deshalb ist es mir richtig peinlich, dass ich feststellen musste, dass ich wohl vergessen habe, Dir in der anderen Angelegenheit eine Rückmeldung zu geben! Das ist eigentlich nicht mein Stil und ich verstehe auch nicht, warum ich das "vergessen" konnte. Auch damals konntest Du meine Vorstellungen voll und ganz umsetzen. Einerseits ist gerade dann eine Rückmeldung (Dankeschön) besonders angebracht, aber offensichtlich ist die Gefahr "des Vergessens" nur in solchen Situationen gegeben. Ist mir - soviel ich weiß - zum ersten (und hoffentlich auch zum letzten) Mal passiert.
Es wäre auch Dein erster Lösungsvorschlag gewesen, mit dem ich nichts anfangen hätte können.
Nein, ich freu mich jedesmal wenn Du mir Hilfe anbietest.
Nochmals vielen Dank für die viele Arbeit, die Du (auch) für mich hier leistest.
Schöne Grüße
Fritz
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige