online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Taka vom 09.12.2019, 18:03 Options

Excel : In einer Zelle hinterlegter Hyperlink in Zelle daneben in Textform anzeigen lassen

In einer Zelle hinterlegter Hyperlink in Zelle daneben in Textform anzeigen lassen.


Habe eine Liste von 500 Hyperlinks in Spalte A.

Zu diesen Links möchte ich ein Makro erstellen, dass bei jedem angegebenen Link eine Webabfrage durchführt. Dafür benötige ich die Links in Textform. Diese sollen nun in der Spalte B angezeigt werden.


Antwort schreiben

Antwort 1 von Marie vom 09.12.2019, 18:31 Options

na dazu müssten wir genau wissen, was in dem Hyperlink steht, steht dort
Zitat:
=HYPERLINK("
Endezeichen Klammer zu?? Dann brauchste doch nur den Zellinhalt rüberkoüieren, dann überall die ersten 12 zeichen entfernen =HYPERLINK(" und danach noch die beiden letzten, oder versteh ich das falsch?

Gruß marie

Antwort 2 von Massaraksch vom 09.12.2019, 18:48 Options

=TEXT(A1;"@")
Aber wozu der Umweg? Wenn du eh schon ein Makro schreibst, dann ermittle das Ziel aus den Hyperlinks auch gleich im Makro selbst, z.B.
Ziel = Range("A1").Text

Massaraksch

Antwort 3 von Taka vom 09.12.2019, 18:52 Options

Vielen Dank für die schnelle Antwort.

Tschuldigung falls ich es blöd formuliert habe, mach sowas nicht allzuhäufig und bin vielleicht grad etwas unbeholfen (-;

Also in Spalte A stehen Namen. Wenn ich auf einen Namen klicke, öffnet sich der Browser und die verlinkte Seite wird aufgerufen.

Die Links stehen also nicht in der Form "http://www. usw." in Spalte A. Genau diese Form benötige ich aber, in Spalte B, um mir das gewünschte Makro zu erstellen für die Webabfragen zu den jeweiligen Links.

Sicherlich gehe ich im gesamten viel zu komplizert vor, bei meinem Vorhaben. Das geht bestimmt alles noch viel einfacher, aber ich mag lieber selber Lösungen finden, auch wenn kompliziert, sonst lern ich nix. Nur hier hake ich schon den halben Tag dran, ich find einfach keine Möglichkeit den in einer Zelle hinterlegten Link, der ja einfach nur nicht angezeigt wird, "sichtbar" zu machen.

Antwort 4 von Marie vom 09.12.2019, 18:58 Options

Also ich hab jetzt eben mal probiert, habe einen Hyperlink in Zeile 7 Spalte B geschrieben in der Form =HYPERLINK("http://www.blabla.de") und wollte gerade den String zerlegen, aber das ist gar nicht nötig, excel liest nur den String aus, also

Private Function fktHypertext()
Dim strText As String

strText = ActiveSheet.Cells(7, 2)
MsgBox strText
ActiveSheet.Cells(7, 5) = strText

End Function

schreibt den Text http://www.blabla.de in Zelle 7,5 und lässt =HYPERLINK("") weg.

Gruß Marie

Antwort 5 von Marie vom 09.12.2019, 19:05 Options

reinschauen was drinsteht bitte mit der Pfeiltaste, nicht draufklicken. Mit der pfeiltaste in die Zelle, in der der Hyperlink steht und dann siehste oben in der zeile was drinsteht und kannst es rauskopieren.

Steht da zum beispiel in dem Feld für Dich sichtbar "Mathilda Butterfliege", dann könnte der Zellinhalt zum beispiel lauten =HYPERLINK("http://www."Mathilda_ Butterfliege.de";"Mathilda Butterfliege"), das müsstest Du halt aber erstmal selber anschauen und uns schreiben. Das meinte ich doch oben schon, also bitte nicht mit der maus anklicken, sondern mit den Pfeiltasten in das feld reinrücken, um lesen zu können was da steht.

gruß Marie

Antwort 6 von Taka vom 09.12.2019, 19:30 Options

http://s3.directupload.net/file/d/1271/cv4khtlo_jpg.htm

Habe mal ein Screen gemacht, wie die Tabelle aussieht und was wie angezeigt wird.

In A1 steht also der Link als Textform, in B1 hab ich ihn mit "Hyperlink bearbeiten", kopiert - dort wird er ja so angezeigt wie ich benötige - und in B1 eingefügt.
Diese Methode kann ich aber nicht mit einem Makro "automatisieren". Bei 500 Links von Hand vorzugehen wäre sicherlich etwas zeitaufwendig, allerdings muss ich gestehen, dass ich wahrscheinlich damit jetzt schon durch wäre, solange wie ich davor schon sitze.

Es sei erwähnt, dass ich ein Makro nur als Aufzeichnung meiner Eingaben verstehe, ich habe keine Ahnung wie ich jetzt z.B. die Lösung

Private Function fktHypertext()
...
End Function

anwenden kann. Also ich kann keine Makros "schreiben", nur aufzeichnen...

Antwort 7 von Marie vom 09.12.2019, 20:03 Options

Zitat:
in B1 hab ich ihn mit "Hyperlink bearbeiten", kopiert


das habe ich nicht verstanden, aber probier jetzt mal diese Zelle B1 an der rechten unteren Ecke nach unten zu ziehen, wäre möglich, dass Du dann in 5 sekunden das hast was Du willst.

Gruß marie

Antwort 8 von Taka vom 09.12.2019, 20:43 Options

Der Tipp war jetzt garnicht so übel, sah im ersten Moment aus, als ob es funktioniert. Leider zählt er das Datum am ende des Links in B1 nur weiter, sprich ist derselbe Link nur halt am Ende jeweils mit

2007-09
2007-10
2007-11
...

usw.

Das mit dem kopieren meinte ich so :

1) Ich selektiere A1
2) rechte Maustaste
3) Hyperlink bearbeiten
4) Den Link unter Adresse markieren
5) STRG C
6) Menü Abrechen
7) B1 selektieren
8) STRG V

Das Problem was ich habe ist, dass mein Makro die Punkte 3-6 nicht mit aufzeichnet.

Vielen lieben Dank für die Mühe, auch wenn ich weiterhin noch keine Lösung gefunden habe.
Ohne "echte" VBA-Kenntnisse komme ich hier wohl nicht weiter.
Bevor sich jemand nochmal die Mühe macht und so eine Lösung hier anbietet, die ich nicht zu Nutzen weiß, fange ich besser von Hand an.

Viele Grüsse und danke nochmal an alle!!

Antwort 9 von Taka vom 09.12.2019, 21:12 Options

Ich hab nochmal ein wenig gesucht und diese Lösung gefunden. Mit diesem Code in einem Modul funktioniert es wohl. Kann mir vielleicht jemand erklären, wie ich den wo eingeben muss?


Option Explicit
Sub hyperlinks_auslesen()
Dim lngI As Long 'Zähler für Schleife
Dim lngMax 'Variable für letzte gefüllte Zelle
'letzte gefüllte Zelle in Spalte 1 (=A) ermitteln
lngMax = ActiveSheet.Cells(xlLastCell, 1).End(xlUp).Row
For lngI = 1 To lngMax
'steht überhaupt etwas in der Zelle ?
If Cells(lngI, 1) > 0 Then
'hat die Zelle einen Hyperlink ?
If Cells(lngI, 1).Hyperlinks.Count > 0 Then
'schreibe Hyperlink in Spalte 2
Cells(lngI, 2) = Cells(lngI, 1).Hyperlinks(1).Address
End If
End If
Next lngI
End Sub

Antwort 10 von Marie vom 09.12.2019, 22:09 Options

Extras, makro, Visual Basic editor, dann Doppelklick auf Tabelle 1 oder die, wo der Code funktionieren soll. Es öffnet sich ein weißes fenster und dort kopierst Du den Code hinein und lässt ihn laufen.

gruß marie

Antwort 11 von Taka vom 09.12.2019, 22:36 Options

Booooooooooooaaaaaaaaaaaaaaahhhhhhhhhh!!!!!!

Tschuldigung den JUBELSCHREI!!!

Funktioniert, allerdings nicht ganz so wie beschrieben.

Das ermitteln der letzten gefüllten Zelle hat irgendwie nicht so recht funktioniert, nur A1 wurde ausgelesen. Daher hab ich mal eins und eins zusammengezählt und das "ermitteln der letzten gefüllten Zeile" herausgenommen.
Ich weiß ja, dass es genau 499 Einträge sind.


Option Explicit
Sub hyperlinks_auslesen()
Dim lngI As Long 'Zähler für Schleife
For lngI = 1 To 499
'steht überhaupt etwas in der Zelle ?
If Cells(lngI, 1) > 0 Then
'hat die Zelle einen Hyperlink ?
If Cells(lngI, 1).Hyperlinks.Count > 0 Then
'schreibe Hyperlink in Spalte 2
Cells(lngI, 2) = Cells(lngI, 1).Hyperlinks(1).Address
End If
End If
Next lngI
End Sub

Und BINGO, hab meine Liste und kann endlich weitermachen.

Vielen Dank Marie, bist ein Schatz!!!!

Antwort 12 von Taka vom 10.12.2019, 00:42 Options

Also meine Begeisterung ist wirklich kaum in Worte zu fassen, für Euch sicher garnicht nachzuvollziehen.

Es waren jetzt sozusagen die "ersten" Schritte in VBA, ausserhalb der einfachen aufgezeichneten Makros. Habe meine Aufgabe jetzt komplett mit VBA gelöst, indem ich die Schleife auch in das Makro eingebaut habe. Der vollständigkeit halber hier die Lösung, welche mir auf dem zweiten Tabellenblatt zu jedem Link in der Spalte B/Blatt 1 die Daten abfragt.

Sub Makro4()
'
' Makro4 Makro
' Makro am 09.12.2007 aufgezeichnet
'
' Tastenkombination: Strg+o
'
Dim url As String
Dim lngI As Long
Sheets("Tabelle1").Select
For lngI = 1 To 499
Range("B1").Select
Selection.Copy
Sheets("Tabelle2").Select
Range("P1").Select
ActiveSheet.Paste
Sheets("Tabelle1").Select
Range("J1").Select
Selection.Copy
Sheets("Tabelle2").Select
Range("Q1").Select
ActiveSheet.Paste
Range("A1").Select
url = "URL;" & Range("P1").Value2
With ActiveSheet.QueryTables.Add(Connection:=url, Destination:=Range("A1"))
.Name = "2007-12_9"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "4"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
Rows("1:36").Select
Range("A36").Activate
Selection.Insert Shift:=xlDown
Sheets("Tabelle1").Select
Rows("1:1").Select
Selection.Delete Shift:=xlUp
Next lngI
End Sub

Ähnliche Themen

Etwas zu einem bestimmten zeitpunkt in einer Excel Zelle anzeigen lassen?
Rubinia  03.06.2007 - 140 Hits - 2 Antworten

Namen einfügen in excel
Stefan_calc  27.06.2007 - 121 Hits - 3 Antworten

Text in Formeln verwenden mit Bezug auf andere Quellen
Nico2212  12.03.2008 - 12 Hits - 5 Antworten

Excel: If-Bedingung und Hyperlink
waliser  03.04.2008 - 89 Hits - 6 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026