Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1260to1264
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
Inhaltsverzeichnis

VBA Änderungen einer zeile kennzeichnen

VBA Änderungen einer zeile kennzeichnen
Jörg
Hallo Forum,
ich suche nach einer VBA Lösung, wie ich nach Eingabe in einer Zelle, die Veränderung (farbig, Code finde ich im Forum) aber auch mit einem Kennzeichen dokumentieren kann.
In einer Zeile AB587:AZ587 befinden sich in jeder Zelle Zahlen aus einer Funktion.
Wie kann ich in AA587 ein "x" setzen, wenn sich ein oder mehrere Werte in AA587:AE587 geändert hat?
Auf Summe kann ich nicht prüfen.
Macht das denn ein Unterschied, ob manuell ein Wert eingegeben wird, oder ob dieser per Funktion ermittelt wird, kann unabhängig davon ein "x" gesetzt werden?
- wo setze ich den code ein, wenn sich eine Zelle ändert, dass bei Eingabe ein "x" gesetzt wird?
bzw.
Hat so etwas schon einmal jemand gemacht; ich finde auf der CD/im Archiv nichts dazu.
happy Sonntag,
Vielen Dank,
Gruß, J.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA Änderungen einer zeile kennzeichnen
22.04.2012 16:08:22
Reinhard
Hallo Jörg,
der Code gehört in das Modul das Blattes.

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("AB587:AZ587")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Range("AA587").Value = "x"
Application.EnableEvents = True
End Sub

Das Ereignis Worksheet_Change wird nur bei manueller Änderung ausgelöst.
Änderungen des Funktionsergebnisses lösen das nicht aus.
Steht also in AB587 die Formel
=B5*2
so kann man das so tun:
If Intersect(Target, Range("AB587:AZ587,B5")) Is Nothing Then Exit Sub
Gruß
Reinhard
Anzeige
AW: VBA Änderungen einer zeile kennzeichnen
22.04.2012 16:20:05
Jörg
Hallo Reinhard ,
vielen Dank für Deinen code.
Ich beschränke mich auf die manuelle Änderung, weil der Bezug zur Funktion ziemlich bedingt und verschachtelt ist.
Kannst Du mir bitte noch mit einer Codehilfe unterstützen, wie ich target, range zeilenweise für mehr als nur 1 Zeile setzen kann?
In den Dateien werden 15.000 Zeilen geführt, ich will aber nur bei Änderung eines Wertes der Zeile das "x" für die jeweilige Zeile setzen. Wenn ich das Range erweitere, habe ich noch nichts gewonnen.
Vielen Dank nochmal,
Grüße. Jörg
AW: VBA Änderungen einer zeile kennzeichnen
22.04.2012 16:56:49
Reinhard
Hallo Jörg,
####Ich beschränke mich auf die manuelle Änderung, weil der Bezug zur Funktion ziemlich bedingt und verschachtelt ist.####
das spielt nicht die Rolle. Wenn da eine Formel ist die sich auf andere Zellen bezieht wie von mir gezeigt
so müssen diese Zellen "überwacht" werden.
Haben diese Zellen wiederum Daten aus anderen Zellen so müssen diese überwacht werden.
Letztlich genau die Zellen wo du manuell etwas änderst was dann über die Funktionen andere Ergebnisse in den Formelzellen bewirkt.
Mach eine Koipie deiner Tabelle, schmeiß so 14950 Zeilen raus und lade das mal hier hoch.
Dann können wir schauen wie das zu lösen wäre, wenn möglich.
####Kannst Du mir bitte noch mit einer Codehilfe unterstützen, wie ich target, range zeilenweise für
mehr als nur 1 Zeile setzen kann?####
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
' beim Start des Codes ist "target" die Zelle, der Zellbereich der geändert wurde
' Jetzt werden aus Target nur die Zelle übernommen die in Spalte AB-AZ liegen
Set Target = Intersect(Target, Range("AB:AZ"))
' wenn es keine Zellen gibt, also die Änderung außerhalb AB_Az stattfand beebneden des Codes
If Target Is Nothing Then Exit Sub
' Ausschalten daß Vba auf Zelländerungen reagiert
Application.EnableEvents = False
' Jede Zelle einzeln nacheinander
For Each Zelle In Target
' trage ein x in AAZeile ein. Zeile ist die Zeilke der geänderten Zelle
Cells(Zelle.Row, "AA").Value = "x"
Next Zelle
' Einschalten daß Vba auf Zelländerungen reagiert
Application.EnableEvents = True
End Sub

Gruß
Reinhard
Anzeige
AW: VBA Änderungen einer zeile kennzeichnen
22.04.2012 17:20:52
Jörg
Hallo Reinhard,
GENIAL - works as designed.
Vielen Dank für Dein Angebot, ich überwache jetzt an den zwei notwendigen Stellen (manuell und mit Funktionsbezug auf ein Zelle) , das ist funktional genug, den "x" Wert selektiere ich bei der Übergabe nach SAP.
Ein echter Lichtblick am verregneten Sonntag....
Vielen Dank!
Grüße, Jörg

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige