PDA

Vollständige Version anzeigen : Worksheet_Change


JD124578963
20.07.2012, 08:08
Hey Leute,

ich möchte wenn eine zelle geändert wird und in einer bestimmten anderen Zelle noch kein Wert eingetragen ist soll der wert rückgängig gemacht werden. Da ich damit aber wieder einen change verursache entsteht eine Endlosschleife, habt ihr vielleicht ne Idee wie ich das lösen kann?

Hier mein Code wie er jetzt ist mit Endlosschleife:
Public History As String

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If _
Target.Column >= 1 And _
Target.Column <= 5 And _
Target.Cells.Count = 1 Then _
History = IIf(Target.Value = "", "<leer>", Target.Value)

End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngNaechsteZeile As Long

If Cells(Target.Row, 1) = "" Then
MsgBox "Bitte geben Sie eine neue Nr. ein", , "Nr. fehlt"
Cells(Target.Row, Target.Column) = History
Else
'code zum übertragen der Änderung und allen Daten in ein anderes Tabellenblatt
End If
End If

End Sub



Viele Grüße
JD

Zai-Ba
20.07.2012, 08:15
Probier's mal so:
On Error Goto ErrorHandler
Application.EnableEvents = False

'Hier dein Code mit den Änderungen im Workbook

ErrorHandler:
Application.EnableEvents = True

JD124578963
20.07.2012, 08:33
Dankeschön :)
Hat funktioniert, nur ich hab das ohne den errorhandler sonder einfach so geschrieben:

Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False

If Cells(Target.Row, 1) = "" Then
MsgBox "Bitte geben Sie eine neue Nr. ein", , "Nr. fehlt"
Cells(Target.Row, Target.Column) = ""

Else

'blubb anderer Code
End If

Application.EnableEvents = True

End Sub

Beverly
20.07.2012, 08:43
Hi,

eigentlich sollte dieser Code ausreichen:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngNaechsteZeile As Long
If Cells(Target.Row, 1) = "" Then
MsgBox "Bitte geben Sie eine neue Nr. ein", , "Nr. fehlt"
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
Else
'code zum übertragen der Änderung und allen Daten in ein anderes Tabellenblatt
End If
End Sub

[EDIT]Sorry, Beitrag von 9:33 noch nicht gelesen[EDIT]

<hr width="20%" align="left"><img src="http://excel-inn.de/images/grusz.gif" height=35" align="left" alt="Grußformel"><a href="http://excel-inn.de/" onclick="window.open(this.href);return false"><img border="0" src="http://excel-inn.de/images/logo1.gif" height=35" align="middle" alt="Beverly's Excel - Inn"></a>