Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
796to800
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
796to800
796to800
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Bei Änderung im Arbeitsblatt Datum schreiben

Bei Änderung im Arbeitsblatt Datum schreiben
05.09.2006 11:31:17
Jörg
Hallo liebe Forumsteilnehmer,
für den Datenaustausch mit einem Steuerberater nutze ich Excel als Daten-Container. Im Normalfall wird nach einem Monatsabschluss das Arbeitsblatt mit dem entsprechenden Monatsnamen mit einer Tabelle gefüllt. Nun kommt es manchmal vor, dass auch in Vormonaten noch Änderungen erfolgen und diese in das entsprechende Monatsarbeitsblatt eingefügt werden. Diesen Schritt kann ich aktuell aber nicht registrieren.
Ich habe mir daher folgendes überlegt, es sollte doch möglich sein, dass Excel bei einer Änderung im Arbeitsblatt dieses registriert und anschließend das aktuelle Systemdatum in eine Zelle zur Verwaltung der Versionsstände schreibt.
Ich habe eine Datei beigefügt: https://www.herber.de/bbs/user/36421.xls
Da ich schon ein wenig im Internet recherchiert habe, habe ich mitbekommen das so etwas nur mit VBA möglich ist. Mit den entsprechenden Beispielen bin ich aber nicht weitergekommen, da ich eigentlich nur mit dem Makro-Rekorder arbeite und keine wirklichen eigenen Codes schreibe. Ich brauche einen VBA-Code, der z. B. bei einer Änderung des Arbeitsblattes "Januar" das Systemdatum in das Arbeitsblatt "Versionsstände" Zelle B2 schreibt usw.
Wer kann helfen? Vielen Dank im voraus.

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

Betreff
Datum
Anwender
Anzeige
AW: Bei Änderung im Arbeitsblatt Datum schreiben
05.09.2006 11:40:13
Matthias
Hallo Jörg,
folgenden Code in "DieseArbeitsmappe":

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Monat As Integer
If IsDate("1. " & Sh.Name) Then
Monat = Month("1. " & Sh.Name)
Sheets("Versionsstände").Cells(Monat + 1, 2) = Now
End If
End Sub

Der Code ist noch "roh", z.B. wird das aktuelle Datum auch eingetragen, wenn Zellinhalte gelöscht werden. Falls das so ok ist...
Gruß Matthias
AW: Bei Änderung im Arbeitsblatt Datum schreiben
05.09.2006 12:12:51
Jörg
Hallo Matthias,
habe den Code-Vorschlag von Harald genommen und noch etwas ergänzt (siehe Antwort an Harald) und damit mein Ziel erreicht. War für mich als VBA-Anfänger leichter zu durchschauen.
Vielen Dank für deine Antwort
Jörg
Anzeige
AW: Bei Änderung im Arbeitsblatt Datum schreiben
05.09.2006 12:19:13
Matthias
Hallo Jörg,
ok, zum lernen:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Monat As Integer
'setze "1. " und Blattnamen zusammen und schaue, ob ein Datum rauskommt
'sprich: ist der Blattname ein Monatsname?
If IsDate("1. " & Sh.Name) Then
'Monat als Zahl setzen (1 bei Januar, 2 bei Februar usw.)
Monat = Month("1. " & Sh.Name)
'im Blatt "Versionsstände" Zeile (Monat+1), Spalte B die Systemzeit setzen:
Sheets("Versionsstände").Cells(Monat + 1, 2) = Now
End If
End Sub

Gruß Matthias
AW: Bei Änderung im Arbeitsblatt Datum schreiben
05.09.2006 13:22:23
Jörg
Hallo Matthias,
vielen Dank für die Erläuterung, jetzt kann ich nachvollziehen, was da passiert. Ist in meinen Augen schon ein smarter Code.
Habe jetzt für die Monate deinen Code eingesetzt und weil ich zusätzlich noch ein Blatt "letzte BWA" habe, was ich hinsichtlich der Änderungen erfassen muss, habe ich eine Anleihe bei Harald gemacht, um dieses Sheet ebenfalls mit zu erfassen.
Sieht jetzt so aus:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Monat As Integer
If IsDate("1. " & Sh.Name) Then
Monat = Month("1. " & Sh.Name)
Sheets("Versionsstände").Cells(Monat + 1, 2) = Now
End If
If Sh.Name = ("letzte BWA") Then
Sheets("Versionsstände").Cells(14, 2) = Now
End If
End Sub

Dir und Harald an dieser Stelle nochmal herzlichen Dank.
Jörg
Anzeige
AW: Bei Änderung im Arbeitsblatt Datum schreiben
05.09.2006 11:41:19
Harald
Hallo Jörg,
ohne mir die Mappe angesehen zu haben.
Folgenden Code ins Modul DieseArbeitsmappe
Der Code läuft los, sobald in irgendeinem Blatt etwas eingetragen oder gelöscht wird

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'für alle Blätter ausser "Versionsstände"
If ActiveSheet.Name = "Versionsstände" Then Exit Sub
Sheets("Versionsstände").Range("B2") = Date
End Sub

Gruss Harald
AW: Bei Änderung im Arbeitsblatt Datum schreiben
05.09.2006 12:07:51
Jörg
Hallo Harald,
habe deinen Code genommen und die Monate wie folgt weiter untergliedert
If ActiveSheet.Name = "Januar" Then Sheets("Versionsstände").Range("B2") = Date
If ActiveSheet.Name = "Februar" Then Sheets("Versionsstände").Range("B3") = Date
und die globale Datumssetzung in die Zelle B2 rausgenommen. Damit habe ich das gewünschte Ergebnis erzielen können.
Vielen Dank
Jörg
Anzeige
AW: Bei Änderung im Arbeitsblatt Datum schreiben
05.09.2006 12:10:27
Matthias
Hallo Jörg,
habe deinen Code genommen (Haralds)
Schade, mit meinem hättest du dir viel Tipp- und Kopierarbeit erspart.
Gruß Matthias
AW: Bei Änderung im Arbeitsblatt Datum schreiben
05.09.2006 12:49:53
Harald
Hallo Jörg,
danke für die Rückmeldung.
Der komfortablere Code von Matthias ist für den interessierten Anfänger nur auf den ersten Blick verwirrend, übernimmt aber die Untergliederung automatisch.
Gruss Harald

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige