Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

HYPERLINK - Quickinfo aus Zelle lesen

Forumthread: HYPERLINK - Quickinfo aus Zelle lesen

HYPERLINK - Quickinfo aus Zelle lesen
May
Hallo Forums-Leser,
ich habe in einer Exceltabelle eine Liste mit Dateinamen, Dateigröße, Dateidatum, Dateiuhrzeit. Mit der Excel HYPERLINK-Formel kann ich die jeweiligen Dateien aus aufrufen. Was allerdings mit der Formel nicht funktioniert ist, als Quickinfo eine Verkettung der Informationen Dateidatum, Dateiuhrzeit und Dateigröße anzuzeigen. Gibt es hier eine Möglichkeit per VBA die entsprechenden Hyperlinks mit Quickinfo zu erzeugen?
Vielen Dank im Voraus.
Gruß
M.
Anzeige
AW: HYPERLINK - Quickinfo aus Zelle lesen
31.03.2011 16:59:41
ransi
HAllo
Was allerdings mit der Formel nicht funktioniert ist, als Quickinfo eine Verkettung der Informationen Dateidatum, Dateiuhrzeit und Dateigröße anzuzeigen. Was funktioniert denn nicht, bzw. was hat du denn schon probiert ?
Tabelle1

 ABCDE
1C:/irgendwohin.txt31.03.201116:5312345 kB31.03.11-16:53-12345 kB
2     

Formeln der Tabelle
ZelleFormel
E1=HYPERLINK(A1;TEXT(B1;"TT.MM.JJ")&"-"&TEXT(C1;"hh:mm")&"-"&D1)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4

Syntax


HYPERLINK(Hyperlinkadresse;Freundlicher_Name)


ransi
Anzeige
AW: HYPERLINK - Quickinfo aus Zelle lesen
31.03.2011 17:42:25
May
Hallo Ransi,
vielen Dank für Deine Antwort. Dein Formelvorschlag ist aber nicht ganz das was ich suche. Der Hyperlink "C:/irgendwohin.txt" soll selbst angezeigt werden. Wenn man mit der Maus über diese Zelle fährt dann soll als Quickinfo die Verkettung aus Dateidatum, Dateiuhrzeit und Dateigröße angezeigt werden, also in o.g. Bsp. "31.03.11-16:53-12345 kB". Gibt es hierfür eine Möglichkeit per VBA, da es formelmäßig nur wie oben beschrieben geht?
Vielen Dank!
VG
M.
Anzeige
AW: HYPERLINK - Quickinfo aus Zelle lesen
01.04.2011 13:17:27
May
Hallo Tino,
vielen lieben Dank für Deine Mühen. Im Prinzip ist es genau das was ich suchte. Ich habe den VBA-Code aus Deinem Beispiel in meine Datei kopiert. Dieses Coding funktioniert allerdings nur bei Hyperlinks die man über Menüpunkt "Einfügen" und dann "Hyperlink" von Hand setzt.
Bei mir ist es aber aufgrund der Vielzahl an benötigten Hyperlinks so, dass ich die Liste mit den kompletten Dateinamen inkl. Verzeichnis (z.B. "c:\eigene dateien\test.txt") in den Zellen "A1:A500", der Tabelle 1 abgelegt habe. In Zelle "B1:B500" habe ich nun die Formel "=Hyperlink(A1)" stehen. Gehe ich nun mit der Maus auf die Zelle "B1", so sehe ich in der Quickinfo nach wie vor nur "c:\eigene dateien\test.txt", anstelle von "Letzte Änderung 01.04.2011 10:00, Grösse 40 Bytes.
Kann man Dein Coding so anpassen, das dies auch für Hyperlinks funktioniert, die man über die Hyperlink-Formel erzeugt?
Vielen Dank im Voraus und schönes Wochenende!
M.
Anzeige
ist mir nicht bekannt.
01.04.2011 23:24:38
Tino
Hallo,
wie dies bei einer Formel geändert werden kann ist mir nicht bekannt.
Evtl. könntest Du die Hyperlink- Formel suchen (mit SpecialCells u. InStr)
den Pfad ermitteln (mit Replace) und damit die Daten als Kommentar einfügen.
Gruß Tino
Version mit Kommentar
02.04.2011 11:00:49
Tino
Hallo,
hier mal so wie ich es evtl. machen würde.
https://www.herber.de/bbs/user/74251.zip
Gruß Tino
Anzeige
optimiert
02.04.2011 11:51:35
Tino
Hallo,
habe den Code etwas optimiert, damit er nicht stehen bleibt bei einem.
kommt als Code in Tabelle1
Option Explicit 
 
Private Sub Worksheet_Change(ByVal Target As Range) 
Dim rngFormel As Range, ArrayFormel, lngRow& 
 
 
Set rngFormel = Intersect(Range("A2", Cells(Rows.Count, 2)), Target) 
If Not rngFormel Is Nothing Then 
    For Each rngFormel In rngFormel.Areas 
         
        If rngFormel.Columns(1).Column = 2 Then 
            Set rngFormel = rngFormel.Columns(1) 
        ElseIf rngFormel.Columns(1).Column = 1 Then 
            Set rngFormel = rngFormel.Columns(1).Offset(0, 1) 
        End If 
         
        ArrayFormel = Range(rngFormel, rngFormel.Offset(0, -1)).Formula 
         
        Delete_Comment rngFormel 
         
        For lngRow = 1 To Ubound(ArrayFormel) 
             
            If InStr(ArrayFormel(lngRow, 2), "=HYPERLINK") > 0 Then 
                With rngFormel.Cells(lngRow, 1) 
                    .AddComment FileInfo(ArrayFormel(lngRow, 1)) 
                    .Comment.Shape.TextFrame.AutoSize = True 
                End With 
            End If 
        Next lngRow 
    Next rngFormel 
End If 
End Sub 
 
Private Sub Delete_Comment(rngZelle As Range) 
On Error Resume Next 
rngZelle.Comment.Delete 
End Sub 
kommt als Code in Modul1
Option Explicit 
Dim fso As Object 
 
Private Declare Function GetFullPathName Lib "kernel32.dll" Alias _
"GetFullPathNameA" (ByVal lpFileName As String, ByVal nBufferLength As Long, _
ByVal lpBuffer As String, ByVal lpFilePart As String) As Long 
 
 
Public Function GetRelativePath(PathTo As String) As String 
  Dim pszPath As String 
  Const MAX_PATH = 255 
  pszPath = Space(MAX_PATH) 
  'API-Funktion aufrufen 
  GetFullPathName PathTo, MAX_PATH, pszPath, vbNullString 
  'Rückgabe des relativierten Pfads 
  GetRelativePath = Left$(pszPath, InStr(pszPath, Chr(0)) - 1) 
End Function 
 
Function FileInfo(ByVal strHyperlinkAddress$) As String 
Dim sFullPath As String 
Dim f1 As Object 
If strHyperlinkAddress = "" Then FileInfo = "Error": Exit Function 
ChDrive Left$(ThisWorkbook.Path, 2) 
ChDir ThisWorkbook.Path 
 
If fso Is Nothing Then _
Set fso = CreateObject("Scripting.FileSystemObject") 
 
strHyperlinkAddress = GetRelativePath(strHyperlinkAddress) 
If Dir(strHyperlinkAddress, vbNormal) <> "" Then 
 
    Set f1 = fso.GetFile(strHyperlinkAddress) 
     
    FileInfo = "Letzte Änderung: " & f1.DateLastModified & Chr(10) & "Grösse: " & f1.Size & " Bytes" 
Else 
    FileInfo = "Datei nicht gefunden!" 
End If 
End Function 
Gruß Tino
Anzeige
AW: optimiert
02.04.2011 21:05:47
May
Hallo Tino,
erneut vielen Dank für Dein Coding. Ich habe soeben das Coding in meine Datei eingebaut, sehe aber noch nicht das gewünschte Ergebnis. Soll heißen in Zelle A1 steht "C:\1\TestFile1.txt" und in Zelle B1 steht die Formel "=HYPERLINK(A1)". Es wird weder nach Eingabe der Hyperlink-Formel in Zelle B1 ein Kommentar erzeugt, noch wird die Quickinfo entsprechend geändert. Mache ich etwas falsch?
VG
M.
Anzeige
erst ab A2:B2
02.04.2011 21:31:13
Tino
Hallo,
dies wirkt erst ab A2:B2 weil ich davon ausgehe das in Zeile 1 eine Überschrift ist.
Ab A1 müsste die Zeile so geändert werden.
Set rngFormel = Intersect(Range("A1", Cells(Rows.Count, 2)), Target)

Sonst kann ich nicht sagen warum es bei Dir nicht geht?!
Gruß Tino
Anzeige
AW: erst ab A2:B2
04.04.2011 13:06:34
May
Hallo Tino,
ich habe das Coding wie von Dir beschrieben in die Datei kopiert und trotzdem sehe ich keinerlei Änderung. Die Txt-Dateien befinden sich auf der Festplatte und in Zelle A2 steht genau der Speicherort "C:\1\TestFile1.txt" und in Zelle B2 steht die Formel "=HYPERLINK(A2)". Es wird in Zelle B2 auch ein Hyperlink erstellt, jedoch ohne Information über Datum, Uhrzeit oder Dateigröße.
Vielleicht kannst Du Dir das nochmal ansehen?
https://www.herber.de/bbs/user/74263.xls

Die Datei https://www.herber.de/bbs/user/74264.txt wurde aus Datenschutzgründen gelöscht


Vielen Dank!
VG
M.
Anzeige
Formel ohne + Zeichen
04.04.2011 15:26:55
Tino
Hallo,
mach einfach bei der Formel dieses + raus.
Hier die erweiterete Version, sollte für normale Hyperlinks und Formel gehen.
https://www.herber.de/bbs/user/74270.zip
Gruß Tino
AW: Formel ohne + Zeichen
06.04.2011 09:38:51
May
Hallo Tino,
Ich kann den Zip-File leider nicht öffnen. Kannst Du es bitte nochmals hochladen?
Vielen Dank!
VG
M.
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

HYPERLINK mit Quickinfo aus Zelle in Excel nutzen


Schritt-für-Schritt-Anleitung

  1. Vorbereitung der Tabelle: Erstelle eine Excel-Tabelle mit den Dateinamen, Dateigrößen, Dateidatum und Dateiuhrzeit in den Zellen A1 bis D500.

  2. Hyperlinks einfügen: In den Zellen B1 bis B500 kannst Du die Hyperlinks mit der Formel =HYPERLINK(A1) erstellen. Dadurch wird der Hyperlink aus der Zelle A1 angezeigt.

  3. VBA-Code einfügen: Öffne den VBA-Editor (Alt + F11) und füge den folgenden Code in das entsprechende Modul ein. Dieser Code erstellt eine Quickinfo, wenn Du mit der Maus über die Hyperlink-Zelle fährst:

    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim rngFormel As Range, ArrayFormel, lngRow
       Set rngFormel = Intersect(Range("A2", Cells(Rows.Count, 2)), Target)
       If Not rngFormel Is Nothing Then
           For Each rngFormel In rngFormel.Areas
               If rngFormel.Columns(1).Column = 2 Then
                   Set rngFormel = rngFormel.Columns(1)
               ElseIf rngFormel.Columns(1).Column = 1 Then
                   Set rngFormel = rngFormel.Columns(1).Offset(0, 1)
               End If
               ArrayFormel = Range(rngFormel, rngFormel.Offset(0, -1)).Formula
               Delete_Comment rngFormel
               For lngRow = 1 To UBound(ArrayFormel)
                   If InStr(ArrayFormel(lngRow, 2), "=HYPERLINK") > 0 Then
                       With rngFormel.Cells(lngRow, 1)
                           .AddComment FileInfo(ArrayFormel(lngRow, 1))
                           .Comment.Shape.TextFrame.AutoSize = True
                       End With
                   End If
               Next lngRow
           Next rngFormel
       End If
    End Sub
  4. Datei-Info-Funktion: Füge eine Funktion hinzu, die die Dateiinformationen abruft:

    Function FileInfo(ByVal strHyperlinkAddress As String) As String
       Dim fso As Object
       Dim f1 As Object
       Set fso = CreateObject("Scripting.FileSystemObject")
       If Dir(strHyperlinkAddress) <> "" Then
           Set f1 = fso.GetFile(strHyperlinkAddress)
           FileInfo = "Letzte Änderung: " & f1.DateLastModified & vbNewLine & "Größe: " & f1.Size & " Bytes"
       Else
           FileInfo = "Datei nicht gefunden!"
       End If
    End Function
  5. Testen: Gehe zurück zur Excel-Tabelle und teste, ob die Quickinfo angezeigt wird, wenn Du mit der Maus über die Zellen mit Hyperlinks fährst.


Häufige Fehler und Lösungen

  • Problem: Die Quickinfo wird nicht angezeigt.

    • Lösung: Stelle sicher, dass Du den VBA-Code korrekt eingefügt hast und dass die Hyperlinks in den Zellen B1 bis B500 korrekt erstellt wurden.
  • Problem: Die Dateiinformationen sind nicht korrekt.

    • Lösung: Überprüfe den Pfad in den Zellen A1 bis A500, um sicherzustellen, dass die Dateien vorhanden sind.

Alternative Methoden

Wenn Du keine VBA-Programmierung verwenden möchtest, kannst Du stattdessen die Funktion HYPERLINK in Kombination mit Kommentaren nutzen. Füge die Informationen als Kommentar zu den Zellen hinzu, anstatt sie als Quickinfo anzuzeigen.


Praktische Beispiele

  • Beispiel 1: Du hast in Zelle A1 den Dateipfad C:\1\TestFile1.txt und in B1 die Formel =HYPERLINK(A1). Bei Hover über B1 sollte die Quickinfo "Letzte Änderung: [Datum] Grösse: [Größe] Bytes" erscheinen.

  • Beispiel 2: Wenn Du mehrere Dateien hast, kannst Du die obigen Schritte für jede Datei wiederholen, um eine umfangreiche Excel-Liste mit Hyperlinks und Quickinfos zu erstellen.


Tipps für Profis

  • Effiziente Nutzung: Verwende die Funktion HYPERLINK in Kombination mit VBA, um die Benutzerfreundlichkeit Deiner Excel-Dateien zu erhöhen.

  • Automatisierung: Du kannst den VBA-Code so anpassen, dass er automatisch beim Öffnen der Datei ausgeführt wird, um die Quickinfos zu aktualisieren.


FAQ: Häufige Fragen

1. Frage
Kann ich die Quickinfo auch ohne VBA erstellen?
Antwort: Ja, Du kannst die Informationen als Kommentare zu den Zellen hinzufügen, jedoch ist dies nicht so dynamisch wie mit VBA.

2. Frage
Welches Excel-Version benötige ich für diese Funktionen?
Antwort: Der VBA-Code funktioniert in Excel 2010 und höheren Versionen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige