Anzeige
Archiv - Navigation
1308to1312
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
Inhaltsverzeichnis

Hyperlinkformeln per VBA "anklicken"

Hyperlinkformeln per VBA "anklicken"
10.04.2013 13:46:19
Stefan
Hallo
ich wurste schon eine Weile an dem Problem rum, dass VBA
Hyperlinks nicht als solche erkennt, wenn sie per Formel erstellt sind,
m.a.W. c.hyperlinks.count==0

Set c = Cells(i, j)
If c.Formula Like "*HYPERLINK*" And c.Text  "" Then
' geht net:
ActiveWorkbook.FollowHyperlink Address:=c.Formula
' geht aach net:
ActiveWorkbook.FollowHyperlink Address:=Evaluate(c.Formula)
End If

Formel
=WENN(expr;HYPERLINK(blabla,"CLICKMICH"))
Wie krieg ich das ERGEBNIS der Formel (den hyperlink) ausgeführt?
Danke im Voraus! X-)

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hyperlinkformeln per VBA "anklicken"
10.04.2013 15:32:44
Klaus
Hi,
wie man die Aufgabe löst weiss ich nicht, aber hol dir doch die Zellen-Formel als String und knabbere dir da die Hyperlink-Adresse per Stringzerlegung raus
Sub GetHyperlinkFromFormula()
Dim r As Range
Set r = Range("B1")
Dim iPos1 As Integer
Dim iPos2 As Integer
Dim iLen As Integer
iPos1 = WorksheetFunction.Find("(""", r.Formula) + 2
iPos2 = WorksheetFunction.Find(""",""", r.Formula)
iLen = iPos2 - iPos1
Debug.Print VBA.Mid(r.Formula, iPos1, iLen)
End Sub
Grüße,
Klaus M.vdT.

AW: Hyperlinkformeln per VBA "anklicken"
10.04.2013 15:34:54
GuentherH
Hallo Stefan
das Ergebnis in eine variable
HypText=Range("A1").text
und dann den Internetexplorer mit der Seite aufrufen. ggf Pfad der Iexplore.exe nötig
shell "Iexplore " & HypText
Gruß,
Günther

Anzeige
AW: Hyperlinkformeln per VBA "anklicken"
10.04.2013 16:39:16
Stefan
Hallo,
danke für die Denkansätze.
Das Problem ist aber leider nicht, dass ActiveWorkbook.FollowHyperlink nicht funzt.
(BTW Ich nutze Office 2011 auf dem Mac)
c.text und c.value liefern "CLICKMICH" (um bei meinem Beispiel zu bleiben)
c.formula liefert die Formel, nicht deren Ergebnis.
Ich brauche aber das Ergebnis der ausgewerteten Formel,
das was Excel selbst benutzt, wenn ich diesen Link anklicke.
[c.Formula] und evaluate(c.Formula) hab ich auch schon erfolglos getestet ...
Noch Ideen?
vg Stefan
PS: was will ich eigentlich:
ich habe hyperlinks produziert, die anhand von Parametern die Sendungsverfolgung von DHL oder
irgendeiner Post auf dieser Welt aufrufen (1 Zeile = 1 Paket).
jetzt möchte ich nicht alle diese Links mit der Hand anklicken, sondern einfach einen
Browser mit allen offenen Paketen aufmachen:

Sub Paketstatus()
Dim i, zeile, linkS As Integer
Dim c As Range
zeile = Cells(Rows.Count, 1).End(xlUp).Row
linkS = 19  'Spalte S
For i = 2 To zeile
If (Not IsEmpty(Cells(i, 1))) And (Not IsEmpty(Cells(i, 2))) And (Not IsEmpty(Cells(i, linkS) _
)) And IsEmpty(Cells(i, 10)) Then
' funktioniert nur mit harten hyperlinks, nicht mit hyperlinks aus formeln
'If Cells(i, linkS).Hyperlinks.Count Then
'   MsgBox i & ": " & Cells(i, linkS).Hyperlinks(1).Address
'   ThisWorkbook.FollowHyperlink Cells(i, linkS).Value
' Else
'    MsgBox "Kein Hyperlink in " & i & " " & Cells(i, linkS).Value
' End If
Set c = Cells(i, linkS)
If c.Formula Like "*HYPERLINK*" And c.Text  "" Then
MsgBox c.Text
'ActiveWorkbook.FollowHyperlink (c)
End If
End If
Next
End Sub

Anzeige
AW: Hyperlinkformeln per VBA "anklicken"
10.04.2013 17:06:45
Rudi
Hallo,
den Link bekommst du mit
Sub aaaa()
Dim strHyp As String, c As Range
Set c = ActiveCell
If c.Formula Like "*HYPERLINK(*" Then
strHyp = Mid(c.Formula, InStr(c.Formula, "HYPERLINK(") + 11)
strHyp = Left(strHyp, InStr(strHyp, ",") - 2)
End If
End Sub

Gruß
Rudi

AW: Hyperlinkformeln per VBA "anklicken"
10.04.2013 18:27:36
Stefan
Also, das ist die Formel:
=WENN(C35"";HYPERLINK(VERKETTEN(VERWEIS(VERWEIS(F35;Tabelle2!$A$5:$A$17;Tabelle2!$G$5:$G$17); Tabelle2!$A$1:$A$2;Tabelle2!$B$1:$B$2);Tabelle1!C35;T35);VERWEIS(F35;Tabelle2!$A$5:$A$17; Tabelle2!$G$5:$G$17));"")
Was ich brauche, ist nicht
VERKETTEN(VERWEIS(VERWEIS(F35;Tabelle2!$A$5:$A$17;Tabelle2!$G$5:$G$17);Tabelle2!$A$1:$A$2;Tabelle2!$B$1:$B$2);Tabelle1!C35;T35);VERWEIS(F35;Tabelle2!$A$5:$A$17;Tabelle2!$G$5:$G$17))
sondern das hyperlink-Objekt, das Excel beim Auswerten der Formel erzeugt und
normalerweise in c.hyperlinks(1).address ablegt
Da steht dann eine URL drin, z.B.
h-t-t-p-doppelpunkt//nolp.dhl.de/nextt-online-public/report_popup.jsp?extendedSearch=true&lang=en&idc=irgendwas
Und eigentlich will ich nur noch sagen ActiveWorkbook.FollowHyperlink (c.hyperlinks[1])
Geht abba net.

Anzeige
AW: Hyperlinkformeln per VBA "anklicken"
10.04.2013 18:40:04
Klaus
Hi,
warum denn so aufwendig?
Rekorder dir einmal die Formel
=WENN(C35"";VERKETTEN(VERWEIS(VERWEIS(F35;Tabelle2!$A$5:$A$17;Tabelle2!$G$5:$G$17); Tabelle2!$A$1:$A$2;Tabelle2!$B$1:$B$2);Tabelle1!C35;T35);VERWEIS(F35;Tabelle2!$A$5:$A$17; Tabelle2!$G$5:$G$17);"")
per VBA packst du die dann irgenwohin wo Platz ist (meinetwegen U35), dann liest du den String mit Range("U35").value aus, dann Range("U35").clearcontent um die Hilfsformel wieder loszuwerden.
Den String an IE übergeben, fertig.
Grüße,
Klaus M.vdT.

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige