Microsoft Excel

Herbers Excel/VBA-Archiv

Benuzter welcher zuletzt gespeichert hat in Zelle



Excel-Version: 8.0 (Office 97)

Betrifft: Benuzter welcher zuletzt gespeichert hat in Zelle
von: Bendra
Geschrieben am: 04.06.2002 - 10:04:45

hi

ich suche eine lösung, mit der es möglich ist, den benutzer in einer beliebigen zellen anzuzeigen, welcher das dokument zuletzt bearbeitet und gespeichert hat! sollte sich immer nach dem speichern anpassen und netzwerkfähig sein.

Greetz Bendra


  

Re: Benuzter welcher zuletzt gespeichert hat in Zelle
von: Thomas Lambeck
Geschrieben am: 04.06.2002 - 12:16:57

Hallo Bendra,

ich liefere Dir hier mal den Code, den ich verwende, um Änderungen in einer Datei zu speichern:


Option Explicit

Function ÄNDERUNGSLISTE_AKTUALISIERT() As Boolean
    Static blnSchonGespeichert As Boolean 'Statische Variable für eine einzige Speicherung pro Sitzung! (letzter Speichervorgang)
    Dim lngZeile As Long

    With Worksheets("Änderungsliste") 'Änderungsliste:
        lngZeile = .Cells(Rows.Count, 1).End(xlUp).Row 'Letzte Zeile bestimmen.
        If blnSchonGespeichert = False Then 'Wenn in dieser Sitzung noch nicht gespeichert:
            lngZeile = lngZeile + 1 'Zeilennummer um 1 erhöhen.
        End If
        .Visible = False 'Einblenden.
'        .Cells(lngZeile, 1).Value = WeekdayName(Weekday(Now), , vbSunday) 'Wochentag Spalte A.
        .Cells(lngZeile, 1).Value = WOCHENTAG(Weekday(Now)) 'Wochentag Spalte A. (eigene Funktion wg. Excel 97)
        .Cells(lngZeile, 2).Value = Format(Now, "DD.MM.YYYY") 'Datum Spalte B.
        .Cells(lngZeile, 3).Value = Format(Now, "HH:MM") 'Uhrzeit Spalte C.
        .Cells(lngZeile, 4).Value = Environ("Username") 'Benutzername Spalte D. (Windows NT-Anmeldename)
        .Activate 'Aktivieren.
        .Cells(lngZeile + 1, 1).Select 'Letzte Zeile markieren. (Falls Tabelle später von Benutzer aufgerufen wird.)
    End With
    blnSchonGespeichert = True 'Statische Variable setzen, damit weitere Speicherungen in dieser Sitzung in gleicher Zeile erfolgen.
    ÄNDERUNGSLISTE_AKTUALISIERT = True 'Ergebnis vermerken.
End Function

Function WOCHENTAG(strString As String) 'Für Excel 97
    Select Case strString
        Case 1
            WOCHENTAG = "Sonntag"
        Case 2
            WOCHENTAG = "Montag"
        Case 3
            WOCHENTAG = "Dienstag"
        Case 4
            WOCHENTAG = "Mittwoch"
        Case 5
            WOCHENTAG = "Donnerstag"
        Case 6
            WOCHENTAG = "Freitag"
        Case 7
            WOCHENTAG = "Samstag"
    End Select
End Function

Sub Änderungsliste_anzeigen()
    Dim blnGespeichert As Boolean

    With ThisWorkbook
        blnGespeichert = .Saved 'Speicherzustand der Datei vermerken.
        With .Worksheets("Änderungsliste") 'Änderungsliste:
            .Visible = True 'Einblenden.
            .Activate 'Aktivieren.
        End With
        .Saved = blnGespeichert 'Speicherzustand der Datei wieder herstellen.
    End With
End Sub

Sub Änderungsliste_ausblenden()
    Dim blnGespeichert As Boolean

    With ThisWorkbook
        blnGespeichert = .Saved 'Speicherzustand der Datei vermerken.
        .Worksheets("Änderungsliste").Visible = False 'Änderungsliste ausblenden.
        .Saved = blnGespeichert 'Speicherzustand der Datei wieder herstellen.
    End With
End Sub

Du kannst die Funktion "ÄNDERUNGSLISTE_AKTUALISIERT" aufrufen, um den Benutzer zu speichern.
z.B. in Workbook_BeforeSave:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim Dummy As Byte

    ...
    If ÄNDERUNGSLISTE_AKTUALISIERT = False Then Exit Sub
    ...
End Sub


Mit "Änderungsliste_anzeigen()" und "Änderungsliste_ausblenden()" wird das Tabellenblatt "Änderungsliste" ein- und ausgeblendet, damit niemand von Hand darin "rumschreibt".

Ich hoffe das hilft Dir weiter.
(Bei uns läuft es unter Excel 97 und 2000)

mfG
Thomas Lambeck

  

Re: Benuzter welcher zuletzt gespeichert hat in Zelle
von: ajk
Geschrieben am: 04.06.2002 - 12:26:06

Hallo,

ich habe eine etwas kürzere Lösungsidee:
In die gewünschte Datei:

In VBA-Editor.
Diese Arbeitsmappe:

Sub Workbook_Open()
Calculate
End Sub

In ein Modul:

Function benutzer()
benutzer = ActiveWorkbook.BuiltinDocumentProperties(7)
End Function

Zum Aufrufen in der Mappe einfach in die gewünschte Zelle:

=Benutzer()
als Formel eingeben.

Noch besser wäre es die Funktion in eine .XLA Datei zu schreiben, dann ist sie immer in jeder Datei verfügbar, wenn man diese .xla in den XLSTART-Ordner kopiert.

Gruß
Andreas

  

Re: Benuzter welcher zuletzt gespeichert hat in Zelle
von: Thomas Lambeck
Geschrieben am: 04.06.2002 - 12:38:17

Na gut,

ich wollte es halt etwas umfangreicher haben...

mfG
Thomas Lambeck


  

Re: Benuzter welcher zuletzt gespeichert hat in Zelle
von: geri
Geschrieben am: 04.06.2002 - 12:53:23

es geht auch so --> Code in Arbeitsblatt und in Zelle A1 stehen nach Änderung die Infos

Private Sub Worksheet_Change(ByVal Target As range)
If Target.Address = "$A$1" Then Exit Sub
range("A1") = "Geänd. von " & _
Application.UserName & _
" am " & _
Format(Date, "dd.mm.yy")
'ActiveWorkbook.Save
End Sub


gruss
geri


  

Nur wenn richtiger Benutzer eingetragen
von: Thomas Lambeck
Geschrieben am: 04.06.2002 - 13:32:10

Hallo geri,

Das liefert aber nur den Benutzernamen, auf den die Office-Installation lautet.
(Würde in einer Firma evtl. "Administrator" oder "Firmenname" sein!)
Nicht den am Rechner gerade arbeitenden Benutzer.

Die beste Lösung, (wenn's einfach sein soll) dürfte wohl die Lösung von Andreas sein.

mfG
Thomas Lambeck


  

Re: Benuzter welcher zuletzt gespeichert hat in Zelle
von: Bendra
Geschrieben am: 04.06.2002 - 13:39:38

danke, das war mir eine super hilfe! es funktioniert *freu*

DANKE!


  

Re: Nur wenn richtiger Benutzer eingetragen
von: geri
Geschrieben am: 04.06.2002 - 19:21:19

liefert den Angemeldeten USER am PC, es war die Rede in der Anfrage von Firmennetz, habe dies so verstanden

  

Re: Benuzter welcher zuletzt gespeichert hat in Zelle
von: AJK
Geschrieben am: 06.06.2002 - 10:01:16

Hallo Thomas,

war nicht böse gemeint ;-).


Gruß
AJK


  

Re: Benuzter welcher zuletzt gespeichert hat in Zelle
von: Thomas Lambeck
Geschrieben am: 07.06.2002 - 11:35:08

Hab's auch nicht so verstanden.

mfG
Thomas Lambeck


 

Beiträge aus den Excel-Beispielen zum Thema "Benuzter welcher zuletzt gespeichert hat in Zelle"