INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Excel: Get Last Author aus BuiltInDocumentProperties



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

09.11.2010, 10:56
Beitrag #1

GerdW Online
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
Excel: Get Last Author aus BuiltInDocumentProperties
Hallo zusammen,

kann mir jemand bei dieser Frage weiterhelfen? (Ich hatte im NI-Forum schon mal gefragt, aber bisher leider ergebnislos.)

Ich benötige die Angabe, wer ein Excel-Workbook zuletzt bearbeitet hat (wer und nicht wann!). Dies ist eine Excel-Property und kann prinzipiell per ActiveX abgefragt werden. Leider scheitere ich an der Umwandlung des Variants, welches ich von Excel zurück bekomme, siehe Beispiel-VI oder Crosspost. Im VI ist auch noch ein Link zum entsprechenden MSDN-Eintrag angegeben... Beispiel-VI inLv85_imghängt an.


Angehängte Datei(en)
Sonstige .vi  Excel_Props.vi (Größe: 21,57 KB / Downloads: 342)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
09.11.2010, 12:55 (Dieser Beitrag wurde zuletzt bearbeitet: 15.08.2011 13:55 von SeBa.)
Beitrag #2

SeBa Offline
LVF-Guru
*****


Beiträge: 2.025
Registriert seit: Oct 2008

09SP1 & 10 FDS
2008
DE

65xxx
Deutschland
Excel: Get Last Author aus BuiltInDocumentProperties
Weiß auch nicht. Huh

Will dich aber trotzdem nicht im Regen stehen lassen und biete mal folgenden Workaround an:


VBA Funktion importieren und aufrufen, Ergebnis auswerten.


Folgenden Code als Get_BuiltinDocumentProperties.bas abspeichern.
Code:
Function Get_BuiltinDocumentProperties(p As String) As String
   Get_BuiltinDocumentProperties = ThisWorkbook.BuiltinDocumentProperties(p)
End Function


Angehängte Datei(en) Thumbnail(s)
   

Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.

Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.

Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.11.2010, 14:33
Beitrag #3

GerdW Online
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
Excel: Get Last Author aus BuiltInDocumentProperties
Hallo SeBa,

schon mal danke für die Antwort. Momentan scheitere ich noch an Office-Sicherheitseinstellungen ("Der programmatische Zugriff auf das Visual Basic-Projekt ist nicht sicher"...), aber ich habe wieder einen Ansatz.

Schöner wäre der direkte Zugriff, ohne erst Code in Excel zu injizieren...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.11.2010, 14:38
Beitrag #4

SeBa Offline
LVF-Guru
*****


Beiträge: 2.025
Registriert seit: Oct 2008

09SP1 & 10 FDS
2008
DE

65xxx
Deutschland
Excel: Get Last Author aus BuiltInDocumentProperties
Ist ja auch nicht unbedingt nötig, falls das Excelfile statisch ist und du vorher die Funktion darin ablegen kannst. Dann brauchst du nur das Makro aufrufen.

Gruß SeBa

Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.

Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.

Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.11.2010, 14:43 (Dieser Beitrag wurde zuletzt bearbeitet: 09.11.2010 14:44 von GerdW.)
Beitrag #5

GerdW Online
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
Excel: Get Last Author aus BuiltInDocumentProperties
Hallo SeBa,

so geht's natürlich auch. Schön, dass ich der Admin dieser Excel-Liste binSmile(Und die Kollegen eher weniger in Excel/VBA unterwegs sind...)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.11.2010, 09:27 (Dieser Beitrag wurde zuletzt bearbeitet: 10.11.2010 15:00 von GerdW.)
Beitrag #6

GerdW Online
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
Excel: Get Last Author aus BuiltInDocumentProperties
Hallo,

noch ein Nachtrag:
Leider beißt sich das Aufrufen einer eingebetteten Excel-Funktion (und wahrscheinlich auch alle andere ActiveX-Zugriffe) mit der gleichzeitigen Verwendung von DotNet/System.FileWatch zur Überwachung von Dateiänderungen/-zugriffen. Ergibt nur eine schöne, dauernd aktive Event-SchleifeWacko

Muss ich also weiter auf die Angabe verzichten, wer zuletzt auf "meine" Dateien zugegriffen hat und "von Hand" nachschauen...

Nachtrag:
Der dämliche WindowsExplorer kommt natürlich an die gewünschte Information, ohne den System.Filewatch auszulösen... Grrr

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.11.2010, 13:02
Beitrag #7

SeBa Offline
LVF-Guru
*****


Beiträge: 2.025
Registriert seit: Oct 2008

09SP1 & 10 FDS
2008
DE

65xxx
Deutschland
Excel: Get Last Author aus BuiltInDocumentProperties
Ja, stimmt. Habs auch mal ausprobiertBig Grin
ActiveX Verbindung zu einem Excelfile feuert ne Menge Events...

Hmmm... du willst also wissen, wer (und wann vielleicht) die Datei bearbeitet hat.

Als weitere Möglichkeit könnte ich dir hier ein Logfile anbieten.

So was in der Art:

Time-open / Time-close / User / File / Saved?

Das Logfile könnte an beliegiger Stelle als Textfile abgelegt werden.


Wäre das eine Option?

Gruß SeBa

Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.

Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.

Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.11.2010, 14:26
Beitrag #8

GerdW Online
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
Excel: Get Last Author aus BuiltInDocumentProperties
Danke SeBa,

aber langsam wird das Overkill zur gewünschten Funktionalität...

Ich verwalte eine Liste, in der meine User ihre Änderungswünsche eintragen. Momentan lasse ich ein Popup erscheinen, sobald jemand auf diese Liste zugreift. Es wäre schön gewesen, wenn der Popup mir auch gleich mitteilt, wer da zugegriffen hat - dann muss ich nicht erst die Exceldatei öffnen (, sondern könnte nach "Sympathie" sortierenSmile).

Jetzt habe ich das Makro in die Exceldatei integriert und lasse mir den Nutzer im Excelsheet anzeigen. Funktioniert ausreichend komfortabel...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.11.2010, 16:15 (Dieser Beitrag wurde zuletzt bearbeitet: 15.08.2011 13:26 von SeBa.)
Beitrag #9

SeBa Offline
LVF-Guru
*****


Beiträge: 2.025
Registriert seit: Oct 2008

09SP1 & 10 FDS
2008
DE

65xxx
Deutschland
Excel: Get Last Author aus BuiltInDocumentProperties
NachtragBig Grin

Zum Thema Overkill... whahahaha was ist schon Overkill. Den Filewatcher auf das Log ausrichten und auf Änderung überwachen. Dann die letzte Zeile lesen und du weißt was du wissen wolltest.

Diese wenigen Zeilen erzeugen schonmal ein Minilog. Sicher kann man das noch aufhübschen...
Das mit dem feststellen, ob gespeichert wurde klappt leider nur, wenn der User auch selbst vor Beenden speichert. Klickt man auf das X rechts oben, wird nicht mehr registriert ob Änderungen gespeichert/verworfen werden. Daher hab ichs auch mal weggelassen.

Code:
' kopieren in "DieseArbeitsmappe"
Option Explicit

Dim sTimeOpen  As String
Dim sTimeClose As String
Dim sSaved     As String
Dim sUsername  As String

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim sLine As String
    sTimeClose = CStr(Now())
    sLine = sTimeOpen & vbTab & sTimeClose & vbTab & sUsername & vbCrLf
    
    Call Log(sLine, ThisWorkbook.path & "\Log.txt")
End Sub

Private Sub Workbook_Open()
    sUsername = Environ("username")
    sTimeOpen = CStr(Now())
    sSaved = "No"
End Sub

Private Sub Log(msg As String, path As String)
    Dim iFileNumber As Long

    iFileNumber = FreeFile()
    Open path For Append As #iFileNumber
        Print #iFileNumber, msg
    Close #iFileNumber
End Sub

Gruß SeBa

Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.

Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.

Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.11.2010, 10:02
Beitrag #10

rasta Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 245
Registriert seit: Oct 2006

LabVIEW 2009-2017
2006
EN

53909
Deutschland
Excel: Get Last Author aus BuiltInDocumentProperties
Hallo GerdW, hallo SeBa
es gibt folgende Möglichkeit:
Unter http://support.microsoft.com/kb/224351 befindet sich in der „DsoFileSetup_KB224351_x86.exe“ eine dsofile.dll die durch ausführen der *.exe installiert wird und somit LabVIEW zur Verfügung steht (ActiveX).
Alle OLE-Dokumenteigenschaften der MS-Office-Dateien können abgefragt und zum Teil gesetzt werden.

lv09VI im Anhang:
Gruß
Ralf


Angehängte Datei(en)
Sonstige .vi  DSO_File_Ole.vi (Größe: 24,2 KB / Downloads: 304)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: