Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1208to1212
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
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.
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.
AW: HYPERLINK - Quickinfo aus Zelle lesen
31.03.2011 20:01:56
Tino
Hallo,
teste mal dies
https://www.herber.de/bbs/user/74240.zip
Gruß Tino
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
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.
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.

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige