Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1108to1112
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

Zellüberwachung

Zellüberwachung
Frank
Hallo zusammen!
Ich habe ein -vielleicht- einfaches Problem.
Ich möchte verhindern, daß der Wert in Zelle A1 geändert wird, wenn in A2 ein Wert größer Null steht.
Als auslösendes Ereignis dachte ich das Worksheet_Change-Ereignis verwenden zu können. Das geht aber nicht, da es erst dann ausgelöst wird wenn die Änderung der Zelle schon vollzogen ist.
Wie kann ich also mit VBA erreichen, daß die Zelländerung von A1 gar nicht erst stattfindet sondern abgebrochen wird falls A2 größer Null?
Vielen Dank,
Frank

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

Betreff
Benutzer
Anzeige
Zellüberwachung
08.10.2009 13:54:46
Helmut
Hallo Frank,
ohne VBA mit Daten Gültigkeit
Gruß
Helmut
AW: Zellüberwachung
08.10.2009 14:00:32
Frank
danke, aber ich habe das problem vereinfacht dargestellt; benötige unbedingt eine vba-lösung.
1.) check: ist A2 größer als Null
2.) änderung in A1 zulassen wenn A2 nicht größer Null bzw. änderung nicht zulassen wenn A2 größer Null.
vielen dank!
AW: Zellüberwachung
08.10.2009 14:11:17
Helmut
dann so
Public mytemp
Private Sub Worksheet_Activate()
mytemp = Range("a1").Value
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And Range("a2").Value > 0 Then
Range("a1").Value = mytemp
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
mytemp = Range("a1").Value
End Sub

Gruß
Helmut
Anzeige
AW: Zellüberwachung
08.10.2009 15:26:42
Helmut
oder so
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("a2").Value > 0 Then
myBlockA1
Else
myUnblocka1
End If
End Sub
Private Sub myBlockA1()
Range("a1").Validation.Delete
With Range("a1").Validation
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=if(a2>0,FALSE,TRUE)"
.IgnoreBlank = True
.InCellDropdown = True
.ErrorTitle = "Fehlermeldung"
.ErrorMessage = "A2 > 0, deshalb keine Eingabe möglich"
.ShowInput = True
.ShowError = True
End With
End Sub
Private Sub myUnblocka1()
Range("a1").Validation.Delete
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige