Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Alte Zellwerte bei Zellwertänderung archivieren

Alte Zellwerte bei Zellwertänderung archivieren
18.05.2015 15:32:21
Christoph
Hallo liebes Forum,
ich habe folgenden Sub zusammen geschrieben/kopiert.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count  1 Then Exit Sub
If Not Intersect(Range("J10:J1000"), Target) Is Nothing Then
ActiveSheet.Unprotect "heute"
Target.Offset(0, 1).Value = Date
ActiveSheet.Protect "heute"
Else
If Not Intersect(Target, Range("Z10:Z100")) Is Nothing Then
ActiveSheet.Unprotect "heute"
Target.Offset(0, 1) = Target.Offset(0, 1) + 1
ActiveSheet.Protect "heute"
If Intersect(Target, Range("Z10:Z101")) Is Nothing Then Exit Sub
ActiveSheet.Unprotect "heute"
Cells(Cells(Rows.Count, Target.Row - 8).End(xlUp).Row + 1, Target.Row - 8) = Target.Value
ActiveSheet.Protect "heute"
End If
End If
End Sub

Interessant wird es gerade bei der Archivierung der Daten. Ich habe ein Feld in dem Datumsangaben von Kundenbesuchen hinterlegt werden und möchte jedesmal wenn ein Datum neu eingegeben wird, das alte in einem extra Sheet hinterlegen lassen.
If Intersect(Target, Range("Z10:Z101")) Is Nothing Then Exit Sub
ActiveSheet.Unprotect "heute"
Cells(Cells(Rows.Count, Target.Row - 8).End(xlUp).Row + 1, Target.Row - 8) = Target.Value
ActiveSheet.Protect "heute"
End If
Innerhalb eines Blattes funktioniert der Code wunderbar. Allerdings bin ich noch sehr unbedarft im Umgang mit VBA und weiß nicht wie ich die Archivierung in einem extra Blatt hinbekomme. Zusätzlich wäre es noch gut wenn ich das Datum mit dem Namen des Außendienstmitarbeiters zusammen bekommen könnte. Die Namen sind nochmal in einer extra Spalte aufgeführt.
Lieben Dank für die Hilfe im Vorraus und viele Grüße,
Christoph

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Alte Zellwerte bei Zellwertänderung archivieren
20.05.2015 08:47:26
Christoph
Hallo, ist die Frage zu spezifisch?
Das wichtigste wäre das mir die hier ausgegebenen Werte
If Intersect(Target, Range("Z10:Z101")) Is Nothing Then Exit Sub
ActiveSheet.Unprotect "heute"
Cells(Cells(Rows.Count, Target.Row - 8).End(xlUp).Row + 1, Target.Row - 8) = Target.Value
ActiveSheet.Protect "heute"
End If
in ein extra Blatt kommen. Kann mir da wirklich niemand helfen oder stimmt etwas mit dem Post nicht?
Danke und viele Grüße,
Christoph

Anzeige
AW: Alte Zellwerte bei Zellwertänderung archivieren
20.05.2015 15:25:01
Michael
Hallo Christoph,
füge doch mal das da anstelle Deiner Zeile mit Cells(cells usw. ein:
       With Sheets("Archiv")
z = .Range("G1")
.Range("G1") = .Range("G1") + 1
.Range("A" & z) = Target.Value
.Range("B" & z) = Target.Offset(0, 2).Value
.Range("C" & z) = Target.Offset(0, 1).Value
End With

Anzeige
AW: Alte Zellwerte bei Zellwertänderung archivieren
21.05.2015 15:57:06
Christoph
Hi, Michael, ein dickes Danke! funktioiniert soweit so gut.
Allerdings versteh ich nicht wie du die auszugebenden Zellen addressiert hast.
Der Kundenname den ich noch bräuchte ist in Spalte E untergebracht.
Der Außendienstler befindet sich in Spalte N.
Wie müsste man denn da noch umschreiben?
Danke und viele Grüße,
Christoph

Anzeige
AW: Alte Zellwerte bei Zellwertänderung archivieren
21.05.2015 17:42:05
Michael
Hallo Christoph,
ich sehe halt Deine Daten nicht, aber Target.Offset(reihe,spalte).Value holt sich die Daten aus der Zelle, die reihe Zeilen darunter bzw. spalte Spalten rechts daneben liegt.
Hilft Dir das?
Schöne Grüße,
Michael

sorry, wollte noch nicht absenden
20.05.2015 15:30:05
Michael
Ja, also, das Teil kopiert drei Zellen (target und die zwei rechts daneben) ins sheet "Archiv", wobei ich zu Testzwecken einfach in G1 eine Zeilennummer reingesteckt habe. z kann man natürlich auch anders ermitteln, aber das weißt Du ja.
Ich hätte erwartet, daß offset(0,-1) auch geht, aber mein X2000 hat gezickt, also verwende schlimmstenfalls eben positive Werte.
Du kannst den Code natürlich auch an der Stelle einfügen, *bevor* Du Änderungen vornimmst, dann hast Du die gewünschte "Archiv-Funktion".
Schöne Grüße,
Michael
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige