Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
956to960
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
956to960
956to960
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

"Gespeichert durch" in Zeile hinterlegen

"Gespeichert durch" in Zeile hinterlegen
29.02.2008 11:26:01
Foxi

Hallo,
Ich habe eine Exceltabelle die in der Zeilenanzahl immer Variiert. In der letzten Zeile in der Spalte "C" schreibe ich dann meinen Namen hinein. Diese Tabelle verschicke ich dann und bekomme diese nach einiger Zeit wieder zurück. Bearbeitet oder unbearbeitet.
Nun wollte ich fragen ob die Möglichkeit besteht, das wenn jemand etwas in der Tabelle ändert, dies in der besagten Zelle oben sein Name speichert??
Gruß Foxi

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: "Gespeichert durch" in Zeile hinterlegen
29.02.2008 11:35:34
selli
hallo foxi,
ohne vba und ohne persönliche eingabe des users nicht möglich.
vba - kein problem.
gruß selli

AW: "Gespeichert durch" in Zeile hinterlegen
29.02.2008 11:39:00
Beverly
Hi,
das lässt sich mit VBA lösen. Bedingung ist aber, dass die Makros aktiviert wurden.


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
With Worksheets("Tabelle1")
.Range("C" & IIf(IsEmpty(.Cells(.Rows.Count, 3)), .Cells(.Rows.Count, 3).End(xlUp).Row,  _
.Rows.Count)) = Environ("Username")
End With
End Sub


Mit Alt+F11 gelangst du in die VBA-Umgebung. Wähle links im Projektexplorer dein VBAProjekt aus. Im Ordner "Microsoft Excel Objekte" machst du einen Doppelklick auf DieseArbeitsmappe und kopierst den Code in das rechte (obere) Codefenster. Dann kannst du die vBA-Umgebung schließen. Sobald nun jemand die Arbeitsmappe speichert, wird der Anmeldename des Betreffenden in die belegte letzte Zelle der Spalte C geschreiben.
Den Tabellenamen "Tabelle1" musst du an deine Bedingungen anpassen.



Anzeige
AW: "Gespeichert durch" in Zeile hinterlegen
29.02.2008 12:33:02
Foxi
Hi,
klappt super. Danke mal für den Tipp. Gibt es auch die Möglichkeit bei dem Befehl Environ("Username") den Benutzername der unter Excel hinterlegt ist zu nehmen?
Gruß Foxi

AW: "Gespeichert durch" in Zeile hinterlegen
29.02.2008 13:20:04
Beverly
Hi,
anstelle = Environ("Username") -> = Application.UserName


AW: "Gespeichert durch" in Zeile hinterlegen
29.02.2008 14:38:30
Foxi
Hi,
klappt super. Danke mal für den Tipp. Gibt es auch die Möglichkeit bei dem Befehl Environ("Username") den Benutzername der unter Excel hinterlegt ist zu nehmen?
Gruß Foxi

AW: "Gespeichert durch" in Zeile hinterlegen
29.02.2008 14:47:10
Foxi
Hi,
vielen Dank mal. Bis jetzt klappt es. Jetzt muss ich noch eine Lösung finden was ich mache wenn ein User die Tabelle ohne Makro öffnet. Hat jemand eine Idee??
Gruß Foxi

Anzeige
AW: "Gespeichert durch" in Zeile hinterlegen
29.02.2008 15:21:54
Beverly
Hi,
es gibt zwar Möglichkeiten, bis zu einem gewissen Grad das Aktivieren von Makros zu erzwingen, sodass andernfalls die Arbeitsmappe nicht bearbeitet werden kann, aber ich weiß nicht, ob das etwas für deinen VBA-Level ist. Du kannst ja mal auf die HP von Hajo Ziplies, Seite "VBA Beispiele", Unterseite "Nur mit Makros" schauen, dort findest du u.a. das Beispiel "nur mit Makros speichern".
Link zur Datei


Anzeige
AW: "Gespeichert durch" in Zeile hinterlegen
03.03.2008 09:08:02
Foxi
Hallo,
habe es so weit in den Griff bekommen. Habe sogar noch das Datum in Spalte A eingefügt.
Hier mein Code:
Option Explicit


Private Sub Workbook_BeforeClose(Cancel As Boolean)
If ThisWorkbook.Saved Then Exit Sub
Tabelle1.Unprotect
With Worksheets("Messbericht")
.Range("C" & IIf(IsEmpty(.Cells(.Rows.Count, 3)), .Cells(.Rows.Count, 3).End(xlUp).Row,  _
_
.Rows.Count)) = Application.UserName
End With
Tabelle1.Protect
Tabelle1.Unprotect
With Worksheets("Messbericht")
.Range("A" & IIf(IsEmpty(.Cells(.Rows.Count, 3)), .Cells(.Rows.Count, 3).End(xlUp).Row,  _
_
.Rows.Count)) = Date
End With
Tabelle1.Protect
If InSpeicher = 1 Then Exit Sub
InSpeicher = 1
If MsgBox("Wollen Sie die Veränderungen speichern?", vbYesNo + vbQuestion, "Speichern ?") =  _
vbYes Then
blenden 2
Else
ThisWorkbook.Saved = True
End If
End Sub



Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Tabelle1.Unprotect
With Worksheets("Messbericht")
.Range("C" & IIf(IsEmpty(.Cells(.Rows.Count, 3)), .Cells(.Rows.Count, 3).End(xlUp).Row,  _
_
.Rows.Count)) = Application.UserName
End With
Tabelle1.Protect
Tabelle1.Unprotect
With Worksheets("Messbericht")
.Range("A" & IIf(IsEmpty(.Cells(.Rows.Count, 3)), .Cells(.Rows.Count, 3).End(xlUp).Row,  _
_
.Rows.Count)) = Date
End With
Tabelle1.Protect
If SaveAsUI Then
Dim StDateiname As String
StDateiname = Application.GetSaveAsFilename(fileFilter:="Excel-Arbeitsmappen (*.xls), *. _
xls")
If UCase(StDateiname) <> "FALSCH" Then  ' ein Dateinmae wurde eingegeben
Application.EnableEvents = False    ' Reaktion auf Aktion in Arbeitsmappe  _
abschalten
ThisWorkbook.SaveAs Filename:=StDateiname
Application.EnableEvents = True     ' Reaktion auf Aktion in Arbeitsmappe  _
einschalten
End If
Cancel = True                           ' speichern unter Dialog abbrechen
End If
Application.ScreenUpdating = False          ' Bildschirmaktualisierung aus
If StTabelle = "" Then
StTabelle = ActiveSheet.Name
'       ausblenden aller Register außer Sheets("Makros_deaktiviert") mit xlVeryHidden (2)
'       dies hat den Vorteil, sie können nur per VBA eingeblendet werden.
blenden 2                               ' Tabellen ausblenden
Cancel = True
End If
Application.ScreenUpdating = True           ' Bildschirmaktualisierung ein
'   damit das einblenden der Register nicht als Veränderung der Datei angesehen wird
'   Schalter Veränderung der Datei zurückstellen
ThisWorkbook.Saved = True
End Sub



Private Sub Workbook_Open()
blenden -1                                  ' Tabellen einblenden
Worksheets("Messbericht").Select               ' damit diese Tabelle beim Start angezeigt  _
wird
'   damit das einblenden der Register nicht als Veränderung der Datei angesehen wird
'   Schalter Veränderung der Datei zurückstellen
ThisWorkbook.Saved = True
End Sub


Gruß Foxi

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige