Anzeige
Archiv - Navigation
392to396
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
392to396
392to396
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Change-Makro

Change-Makro
11.03.2004 14:18:29
Carmen Pfeiffer
Hallo zusammen,
ich habe folgendes Problem:
Ich möchte, dass bei Änderungen in Spalte M zwischen den Zeilen 3 und 200 meiner Tabelle je nach Änderung unterschiedliche Aktionen durchgeführt werden.
Wenn jemand in eine Zelle in Spalte M eine 100 einträgt, dann soll in die gleiche Zeile in Spalte O das heutige Datum eingetragen werden und danach fest eingefügt werden.
Wenn jemand eine von 100 abweichende Zahl einträgt, dann soll ein evtl. bereits bestehendes Datum in Spalte O in dieser Zeile wieder gelöscht werden
Wenn jemand einen Eintrag aus Spalte M entfernt, dann soll ein bereits bestehendes Datum in dieser Zeile in Spalte O ebenfalls gelöscht werden.
Habe das ganze bereits mit einem Change-Makro versucht, mein Problem hierbei ist aber, dass dieses Makro nur funktioniert, wenn der User nach Eingabe in Spalte M die Return-Taste drückt. Wenn er mit Tab- oder Pfeiltasten weitergeht oder sogar woanders hinklickt, dann ist das ganze Makro hinfällig:


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 13 And Target.Row >= 3 And Target.Row <= 200 And ActiveCell.Offset(-1, 0).Value = 100 Then
ActiveCell.Offset(-1, 2).Select
ActiveCell.FormulaR1C1 = "=TODAY()"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveCell.Offset(0, -2).Select
End If
If Target.Column = 13 And Target.Row >= 3 And Target.Row <= 200 And ActiveCell.Offset(-1, 0).Value <> 100 Then
ActiveCell.Offset(-1, 2).Select
Selection.ClearContents
ActiveCell.Offset(0, -2).Select
End If
If Target.Column = 13 And Target.Row >= 3 And Target.Row <= 200 And ActiveCell.Offset(-1, 0).Value = """" Then
ActiveCell.Offset(-1, 2).Select
Selection.ClearContents
ActiveCell.Offset(1, -2).Select
End If
End Sub

Vielleicht weiß jemand eine bessere Idee, evtl. mit einer Schleife. Dabei muss man aber beachten, dass bereits bestehenden Datumsangaben in der Spalte O nicht überschrieben werden.
Danke und viele Grüße
Carmen

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Change-Makro
11.03.2004 14:33:12
Mac4
Hallo Carmen,
so wie Du es beschrieben hast, müsste es so gehen:

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("M7:M200")) Is Nothing Then
Else
Select Case Target.Value
Case Is = 100: Target.Offset(0, 2).Value = Date
Case Is <> 100: Target.Offset(0, 2).Value = ""
End Select
End If
End Sub

AW: Change-Makro
11.03.2004 14:40:29
Carmen Pfeiffer
So einfach kann es manchmal sein!
Vielen, vielen Dank!
Gruß
Carmen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige