Wir haben eine kleine Excel-Anwendung, deren Ergebnisse ab und an mal ausgedruckt werden müssen. Dabei soll jedoch ersichtlich sein, welcher konkrete Benutzer die Ergebnisse ausgedruckt hat. Daher soll bei jedem Druck der Benutzername des aktuell angemeldeten Benutzers in die Fußzeile des Excel-Dokuments eingetragen werden.
Mit einem kleinen Makro, das man einfach der aktuellen Arbeitsmappe hinzufügen kann, und das den besonderen Namen Workbook_BeforePrint bekommt, ist diese Anforderung recht einfach umzusetzen (obwohl zum Ermitteln des Benutzernamens die Windows-Funktion angesprochen werden muss, daher die kryptischen Befehle am Anfang):
Option Explicit
Private Declare Function WNetGetUser Lib "mpr.dll" Alias "WNetGetUserA" (ByVal lpName As String, ByVal lpUserName As String, lpnLength As Long) As Long
Private Const NO_ERROR = 0
Private Const ERROR_NOT_CONNECTED = 2250&
Private Const ERROR_MORE_DATA = 234
Private Const ERROR_NO_NETWORK = 1222&
Private Const ERROR_EXTENDED_ERROR = 1208&
Private Const ERROR_NO_NET_OR_BAD_PATH = 1203&
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim strBuf As String, lngUser As Long, strUn As String, nameEnd As Long
strBuf = Space$(255)
lngUser = WNetGetUser("", strBuf, 255)
If lngUser = NO_ERROR Then
nameEnd = InStr(strBuf, vbNullChar)
strUn = Left(strBuf, nameEnd - 1)
End If
With ActiveSheet.PageSetup
.LeftFooter = ""
.LeftFooter = "erstellt von " & strUn & " am &D"
End With
End Sub
Wow, genau das, was ich gesucht habe. Jetzt kann ich mit meiner Lohnabrechnung weitermachen.
Vielen Dank und weiter so!
Viele Grüße,
Gunther
Danke für den Tipp. Bei unseren Reports hat das auch noch immer gefehlt, der Druckzeitpunkt wurde schon durch den Drucker aufgebracht und so können wir auch noch den Namen des Ausdruckenden protokollieren!
Fanime
Tausend Dank, schnell und einfach. Diese Excel Tabellen sind somit maschinell erstellt und ohne Unterschrift gültig. 😉
Halli Hallo,
leider bin ich nicht so der Excel spezialist…..
bei mir kommt in der Zeile 11 ein Fehler ( Fehler beim kompilieren – Syntaxfehler) )
WAS muss in der oben dargestellten Formel noch WIE geändert werden===???
VIELEN DANK SCHONMAL
LG MARKUS
Hallo Markus. Das scheint in neueren Excel-Versionen nicht mehr so zu funktionieren. Habe das Makro oben nun etwas angepasst und es sollte jetzt laufen.
Auf Excel 2000 funktioniert das leider nicht, da erscheint “Fehler beim kompilieren – Syntaxfehler”. Gibt es eine Lösung dafür?
Hallo
bei mir funkt es nicht.
Die Datei liegt auf dem Server und ander Banutzer sollten damit arbeiten
aber als Benutzername wird immer mein Name angegeben.
Ich bitte um hilfe
Hallo,
das Makro ist genau was ich suche, jedoch bekomme auch ich einen Syntaxfehler zurück in Zeile 17. Ich nutze in der Firma excel 2003.
Beste Grüße,
Johnny
Hallo Stefan,
dieses Makro ist klasse – wir haben es, bzw. ein vergleichbares bei Excel 2010 eingebaut. Ich hatte nun versucht das auch so in Word 2010 einzusetzen. Ging leider nicht.
Hast du hierfür auch eine Lösung?
LG
Oliver
Hallo Oliver, ich wusste gar nicht mehr, dass ich das Makro mal geschrieben habe 😉 Also nein, ich habe leider keine Lösung für Word. Tut mir leid.