Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1352to1356
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

Hyperlink-Zugriffe Loggen / Aufzeichnen

Hyperlink-Zugriffe Loggen / Aufzeichnen
03.04.2014 10:35:20
P+S
Guten Tag miteinander
In einer grösseren Excel-Arbeitsmappe sind unterschiedlichste Hyperlinks auf Dokumentationen im Firmenweb abgelegt.
Durch einen Klick auf einer dieser Hyperlinks wird das entsprechende Dokument aus dem Firmen Dokumentensystem (MS Sharepoint)
geöffnet
Auch die besagte Excel-Arbeitsmappe ist in diesem Firmen Dokumentensystem (MS Sharepoint) abgelegt und wird durch unzählige Users per
Desktop-Verknüpfung geöffnet (nicht ausgescheckt, nur Lesen)
Nun möchten wir gerne per VBA-Makro überprüfen, welcher Hyperlink aus der Excel-Arbeitsmappe wann, wie oft und durch wen angeklickt wurde.
Das Ganze am Besten in eine Art Logfile (Textfile) speichern.
Geht das irgendwie ?
Sind für jeglichen Lösungsansatz oder Beispielscode sehr dankbar

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hyperlink-Zugriffe Loggen / Aufzeichnen
03.04.2014 15:52:37
Oberschlumpf
Hi #Name?
Geht das irgendwie ?
Jo, das geht - aber!
Schon mal etwas von Datenschutz gehört?
Mit so einem Logfile bekommt ihr ja mit, wer wie oft welche Datei geöffnet/sich angesehen hat, und man kann entsprechende Rückschlüsse ziehen.
Und da ich + auch sonst niemand weiß, um welche Dateien es sich genau handelt, und was ihr mit den Ergebnissen im Logfile vorhabt, werde ich (und ich hoffe, auch niemand anders) so ein Logfile programmieren.
Aber es würde gehen...is auch eigtl nich sooo schwierig.
Ach ja, noch etwas.
Du "traust" dich ja noch nicht mal, uns deinen realen Namen zu verraten.
Wieso?
Ciao
Thorsten

Anzeige
AW: Hyperlink-Zugriffe Loggen / Aufzeichnen
03.04.2014 16:01:32
P+S
Hallo Thorsten
Unsere realen Namen haben wir unabsichtlich nicht verraten. Sorry.
Wir sind ... Pascal + Selina
Programmieren derzeit zusammen an einem kleinen Projektchen rum.
Natürlich haben wir wirklich nicht an Datenschutz gedacht. Aber... natürlich bestehen auch rein gar keine Absichten, irgendwa rückzuschliessen oder jemanden an den Pranger zu stellen.
Ziel des Logs ist... wir wollen in einer Linksammlung prüfen, welche Links (auf Dokumentationen) rege noch gebraucht werden und welche wir löschen können.
Natürlich geben wir uns auch schon damit zufrieden, wenn wir im Log bloss sehen, wie oft (ohne jegliche Benutzernamen und so... ein Hyperlink geöffnet wurde.
Hoffen sehr... dass uns trotzdem jemand hier weiterhelfen kann.
Besten dank !
P+S alias Pascal und Selina

Anzeige
AW: Hyperlink-Zugriffe Loggen / Aufzeichnen
03.04.2014 16:48:19
fcs
Hallo Pascal und Selina,
die Datenschutzaspekte solltet ihr mit eurem Datenschutzbeauftragten abstimmen.
Im Prinzip funktioniert es mit nachfolgendem Makro. Ich weiss aber nicht ob die Textdatei dann auch so angelegt werden kann, da ja der Zugriff auf die Dateien in eurem Dok-Verwaltungssystem wohl auf lesen beschränkt ist.
Jeder Zugriff auf über einen Link erzeugt eine Textzeile.
Die weitere Auswertung müßt ihr dann in Excel machen, z.B. via Pivottabellenbericht.
Gruß
Franz
'Code im VBA-Editor  unter "DieseArbeitsmappe" des Dokumentregisters
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
Dim strHypAddress As String, strHypName As String
Dim strDatum As String, strZeit As String
Dim strFile As String, strTxt As String, FF As Integer
Const strSep As String = vbTab
On Error GoTo Fehler
Application.EnableEvents = False
strHypAddress = Target.Address
strHypName = Target.Name
strDatum = Format(Date, "YYYY-MM-DD")
strZeit = Format(Time, "hh:mm:ss")
'Name der Log-Datei
strFile = ThisWorkbook.FullNameURLEncoded
strFile = Left(strFile, InStrRev(strFile, ".") - 1) & "Log.txt"
strTxt = strDatum & strSep & strZeit
strTxt = strTxt & strSep & """" & strHypAddress & """"
strTxt = strTxt & strSep & """" & strHypName & """"
FF = FreeFile
Open strFile For Append As #FF
Print #FF, strTxt
Close #FF
Application.EnableEvents = True
Fehler:
With Err
Select Case .Number
Case 0
Case Else
Application.EnableEvents = True
Close
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description, , "Log - Hyperlink-Zugriff"
End Select
End With
End Sub

Anzeige
AW: Hyperlink-Zugriffe Loggen / Aufzeichnen
04.04.2014 18:10:45
P+S
Guten Abend Franz
Herzlichen Dank für deinen Beispielscode, welchen wir am kommenden Montag zu zweit austesten werden.
Selbstverständlich geben wir hier dann entsprechend Feedback
Grüsse und schönes Wochen-Ende:
Selina und Pascal

AW: Hyperlink-Zugriffe Loggen / Aufzeichnen
04.04.2014 19:44:38
P+S
Guten Abend Franz
Wir haben nun gleichwohl (obwohl nicht Montag :-) ) kurz mal auf die Schnelle die Funktionsweise Deines Makro-Vorschlags getestet.
Vorab:
Der Code macht eigentlich genau das was wir suchen und brauchen.
Doch...vielleicht hätten wir noch erwähnen müssen, dass der User die Links nicht direkt aus dem Excel-Sheet raus öffnet sondern ... die Links werden zuerst ab Excel-Sheet in eine UserForm in ein Textfeld gelesen.
Dort kann der User dann auf das Textfeld (welches den Hyperlink anzeigt) einen Doppelklick drauf machen um das Dokument zu öffnen.
Hinter dem Textfeld haben wir folgenden Code:
Private Sub Zielsuche_TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
'######## Hyperlink Textbox1 per Doppelklick öffnen / Dokumentation öffnen
Workbooks(Workbookname_WDB).Activate
ActiveWorkbook.FollowHyperlink Link, NewWindow:=False
End Sub
Jetzt stellt sich uns natürlich die Frage...
wie bauen wir Deinen tollen Code um, damit dieser auch aufzeichnet, wenn die Hyperlinks nicht direkt aus dem Excel-Sheet raus, sondern eben aus einer Textbox raus geöffnet werden ?
aber ... ansonsten eine Super-Lösung von Dir!
Danke herzlich für Deine Unterstützung:
Grüsse:
Selina & Pascal

Anzeige
AW: Hyperlink-Zugriffe Loggen / Aufzeichnen
05.04.2014 12:20:08
fcs
Hallo Selina und Pascal,
mit folgenden Anpassungen sollte es auch von einem anderen Makro aus funktionieren.
Gruß
Franz
Private Sub Zielsuche_TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
'######## Hyperlink Textbox1 per Doppelklick öffnen / Dokumentation öffnen
Workbooks(Workbookname_WDB).Activate
ActiveWorkbook.FollowHyperlink Link, NewWindow:=False
Call prcLogBook(strWDB:=Workbookname_WDB, strLink:=Link)
End Sub
Private Sub prcLogBook(ByVal strWDB As String, ByVal strLink As String)
Dim strDatum As String, strZeit As String
Dim strFile As String, strTxt As String, FF As Integer
Const strSep As String = vbTab
On Error GoTo Fehler
Application.EnableEvents = False
strDatum = Format(Date, "YYYY-MM-DD")
strZeit = Format(Time, "hh:mm:ss")
'Name der Log-Datei
strFile = ThisWorkbook.FullNameURLEncoded
strFile = Left(strFile, InStrRev(strFile, ".") - 1) & "Log.txt"
strTxt = strDatum & strSep & strZeit
strTxt = strTxt & strSep & """" & strWDB & """"
strTxt = strTxt & strSep & """" & strLink & """"
FF = FreeFile
Open strFile For Append As #FF
Print #FF, strTxt
Close #FF
Application.EnableEvents = True
Fehler:
With Err
Select Case .Number
Case 0
Case Else
Application.EnableEvents = True
Close
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description, , "Log - Hyperlink-Zugriff"
End Select
End With
End Sub

Anzeige
AW: Hyperlink-Zugriffe Loggen / Aufzeichnen
07.04.2014 09:57:58
P+S
Guten Morgen Franz
Besten Dank für deinen angepassten Code. Den werden wir uns nun gleich mal austesten. Feedback folgt selbstverständlich auch noch.
Grüsse und herzlichen Dank schon mal vorab!
Selina

AW: Hyperlink-Zugriffe Loggen / Aufzeichnen
07.04.2014 15:31:25
P+S
Hallo Franz
des funzt ja prächtig! genau wie wir uns das wünschten.
nun können wir weiterbasteln an unserem projekt. Es gilt nun für uns die Logfiles regelmässig auszuwerten und ... anhand der geloggten Hyperlinks ... die Aktualität der dokumente regelmässig zu prüfen.
Besten Dank
Grüsse: Selina und Pascal

AW: Hyperlink-Zugriffe Loggen / Aufzeichnen
07.04.2014 15:50:46
P+S
Tja...gleichwohls noch kurz ne kleine Ergänzungsfrage...
das logfile wird zwar sauber und korrekt geschrieben und erstellt, allerdings ist dieses nicht für jedermann sichtbar.
d.h. wenn wir die Excel-Datenbank in einem Zentralen Pfad ablegen, so wird dort - für den ersten User welcher einen Link öffnet auch eine Logdatei erstellt. Allerdings ist diese nur für diesen User selber einsehbar. Alle anderen Users sehen diese Datei nicht. Warum ?
Zudem... wenn der zweite User einen Link anklickt, so wird offenbar dann versucht die Logdatei des ersten Users zu überschreiben... statt dort drin weiterzuschreiben.
Müssten wir also gleichwohl noch irgendwo was anpassen in unserem Code?
Grüsse: Pascal

Anzeige
AW: Hyperlink-Zugriffe Loggen / Aufzeichnen
08.04.2014 07:10:32
fcs
Hallo Pascal,
ich hatte ja bereits in meiner 1. Antwort geschrieben, dass ich mir nicht sicher bin, ob der Zugriff auf die Textdatei reibungslos funktioniert.
https://www.herber.de/forum/messages/1356036.html
Ich bin mit der Netzwerksadministration jetzt nicht so bewandert, dass ich sagen kann wie man das jetzt am besten löst.
Entweder muss die Log-Textdatei in einem Verzeichnis angelegt werden, in dem alle relevanten User Schreib- und Leserechte haben, oder du musst eine leere Textdatei als Logdatei anlegen, deren Berechtigung für Lesen/Schreiben dann für alle relevanten User erteilt wird. Das musst du dann ggf. durch eurem System-Admin erledigen lassen.
Im Code musst du dann die folgenden Zeilen anpassen, so dass die richtige Datei mit den Daten gefüllt wird.
        'Name der Log-Datei
strFile = ThisWorkbook.FullNameURLEncoded
strFile = Left(strFile, InStrRev(strFile, ".") - 1) & "Log.txt"
Gruß
Franz

Anzeige
AW: Hyperlink-Zugriffe Loggen / Aufzeichnen
08.04.2014 10:14:09
P+S
Hallo Franz
Besten Dank für Dein Feedback.
Wie auch immer wir es anstellen... wir schaffen es nicht, das im Dokumentensystem zentral abgespeicherte Logfile korrekt zu beschreiben. Dies obwohl selbstverständlich alle Benutzer die Vollzugriffsrechte drauf haben. Es erscheint immer Fehlermeldung: Laufzeitfehler 52 ....
Sobald wir das ganze Prozedere aber auf einem Rechner lokal starten, dann funzt die Befüllung des Logfiles (welches auch lokal auf dem Rechner liegt) aber problemlos und korrekt.
Hast Du allenfalls noch eine Idee, wie wir das lösen könnten?
Ich überlege mir....
Warum nicht - bei jedem Anklicken eines Links eine Email an eine bestimmte Adresse senden (natürlich mit gleichen Informationen, welche wir ins Log schreiben würden?)
dann beim Empfänger dieser Emails eine Regel einrichten, die diese Emails sammelt und in einem Ordner in Outlook 2010 ablegt ?
was meinst Du?
Grüsse: P+S alias Pascal + Selina

Anzeige
AW: Hyperlink-Zugriffe Loggen / Aufzeichnen
08.04.2014 23:25:47
fcs
Hallo Pascal und Selina,
da bin ich jetzt mit meinem Latein fast am Ende.
Mich verwundert schon dass es im Netzwerk nicht mit dem Zugriff auf die Datei funktioniert. Hab ihr mal im Schrittmodus (per Haltepunkt im Code) den Wert der Variablen strFile überprüft, ob da der Pfad der Datei beim Arbeiten im Netzlaufwerk korrekt ermittelt wird?
Probiert es ggf. mal mit
strFile = ThisWorkbook.FullName
statt
strFile = ThisWorkbook.FullNameURLEncoded
Evtl. kommt die Open-ANweisung mit der URLEncode-Schreibweise für eine Datei in einem Netztlaufwerk nicht klar.
Wenn das auch nicht hilft, dann scheint es eines Besonderheit eines MS Sharepoints zu sein, die hier Probleme bereitet - von der ich aber keine Ahnung habe, da ich mit Excel bisher nicht mit Sharepoints gearbeitet hab.
Gruß
Franz

Anzeige
AW: Hyperlink-Zugriffe Loggen / Aufzeichnen
09.04.2014 10:27:19
P+S
Sali Franz
Es scheint sich hier wohl wirklich um ein sehr heimtückisches Ding in MS Sharepoint zu handeln.
Obwohl wir nun auch das URLEncoded rausgenommen haben, erhalten die Users ständig Laufzeitfehler 52
...
Wir ziehen nun mal eine Möglichkeit, - statt in Logfiles zu schreiben - Emails an eine definierte Adresse zu senden - in den Vordergrund.
die Dort eintreffenden Emails gilt es dann mittels einer Outlook-Regel in einen bestimmten Outlook-Ordner zu verschieben, von wo aus wir sie dann auswerten können.
Mal sehen, ob wir sowas hinkriegen.
Grüsse: Pascal

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige