Inhalte in Spalte D löschen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox


Excel-Version: 9.0 (Office 2000)
nach unten

Betrifft: Inhalte in Spalte D löschen
von: Rolf St
Geschrieben am: 25.06.2002 - 12:12:53

Hallo !
Wenn ich in Spalte D die Inhalte lösche, kommt die Meldung "Falscher Wert" . Ich möchte, das diese Meldung nicht mehr kommt, wenn ich die Inhalte in Spalte D lösche.

Option Compare Text ' Bei Vergleichen Groß-/Kleinschreibung nicht beachten
Option Explicit

Dim busy As Boolean

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Bereich1 As Range, Bereich2 As Range, Bereich3 As Range
Dim c As Range
Dim col As Integer
Dim AK As String
Application.Calculation = xlCalculationAutomatic
If busy Then Exit Sub ' zum Verhindern des Selbstaufrufens durch VBA-geänderte Zellen

Set Bereich1 = Range("D2:D1000")
Set Bereich2 = Range("E2:E1000")
Set Bereich3 = Range("I2:I1000")

If Intersect(Target, Bereich1) Is Nothing And Intersect(Target, Bereich2) Is Nothing _
And Intersect(Target, Bereich3) Is Nothing Then Exit Sub

busy = True
Application.ScreenUpdating = False

For Each c In Target

If Not (Intersect(c, Bereich1) Is Nothing) Then

If c.Value = "m" Then
col = 2
ElseIf c.Value = "w" Then
col = 3
Else
c.Select
Application.ScreenUpdating = True
MsgBox "Falscher Wert"
Application.ScreenUpdating = False
col = 0
End If

ElseIf Not (Intersect(c, Bereich2) Is Nothing) Then

If Cells(c.Row, 4) = "m" Then
col = 2
ElseIf Cells(c.Row, 4) = "w" Then
col = 3
Else
col = 0
End If

ElseIf Not (Intersect(c, Bereich3) Is Nothing) Then

If (Len(c) > 6 Or InStr(c, " ") <> 0 Or InStr(c, ".") <> 0) Then
c.Select
Application.ScreenUpdating = True
MsgBox "Unzulässiger Wert"
Application.ScreenUpdating = False
End If
col = -1 ' Verhindern des Beschreibens der "AK"-Spalte

End If

If col > 0 Then
AK = ""
On Error Resume Next
AK = Application.WorksheetFunction.VLookup(Cells(c.Row, 5), _
Worksheets("Klasseneinteilung").Range("B2:D150"), col, False)
On Error GoTo 0
Cells(c.Row, 6) = AK
ElseIf col = 0 Then
Cells(c.Row, 6) = ""
End If

Next c
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
busy = False

End Sub


Vielen Dank für eure Hilfe!

Tschüß
Rolf

nach oben   nach unten

Re: Inhalte in Spalte D löschen
von: Hans W Hofmann
Geschrieben am: 25.06.2002 - 18:32:49

Hallo Rolf,

laß mal busy sterben und beschäftige Dich mal mit
Application.EnableEvents.
Ansonsten glaub ich net, dass sich jemand durch Deinen IF-THEN-ELSE Bandwurm durchwursteln wird - ich jedenfalls net.
Grundsätzlich is sowas Pothäßlich und sollte vereinfacht werden - daher auch Dein Problem...

Gruß HW


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Inhalte in Spalte D löschen"