Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

angepasster Code funktioniert nicht!

3 views
Skip to first unread message

Johann Rupp

unread,
Dec 2, 2023, 9:55:14 AM12/2/23
to
Hallo Gruppe,

diesen Code habe ich aus einem anderem Tabellenblatt übernommen
und im neuen Tabellenblatt eingefügt.
Angepasst habe ich nur den Zielbereich.(E12:E104)

Private Sub Worksheet_Change(ByVal Target As Range)
Dim R As Range
Set Target = Intersect(Range("E12:E104"), Target)
If Target Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each R In Target
If IsEmpty(R.Offset(0, -1)) Then R.Offset(0, -1) = 0
Next
Application.EnableEvents = True
End Sub

Es tut sich leider gar nichts und ich weiß nicht warum.
Ich sag schon mal Danke wenn mir jemand auf die Sprünge helfen könnte.

Gruß Johann

Carlos Naplos

unread,
Dec 3, 2023, 9:34:34 AM12/3/23
to
Setze einen Haltepunkt auf die erste Zeile, also auf "Private Sub ...".
Dann gehe das Makro mit F8 Schritt für Schritt durch!

Wenn das Makro nicht anhält, ist vermutlich EnableEvents = False.
Das wird in Zeile 5 gesetzt. Wenn das Makro abstürzt, bleibt
EnableEvents = False, bis es manuell auf True gesetzt wird oder bis zum
Ende der Sitzung.

Mein Mustermakro sieht so aus:

Private Sub Worksheet_Change(ByVal Target As Range)

On Error GoTo ErrorHandler

Application.ScreenUpdating = False
Application.EnableEvents = False

If Intersect(Target, Range("BereichsName")) Is Nothing _
Then GoTo ErrorHandler

' Code

ErrorHandler:
Application.EnableEvents = True
Application.ScreenUpdating = True

End Sub

Gruß CN

Johann Rupp

unread,
Dec 3, 2023, 11:38:49 AM12/3/23
to
Am 02.12.2023 um 15:55 schrieb Johann Rupp:
> Hallo Gruppe,
>
> diesen Code habe ich aus einem anderem Tabellenblatt übernommen
> und im neuen Tabellenblatt eingefügt.
> Angepasst habe ich nur den Zielbereich.(E12:E104)
>
> Private Sub Worksheet_Change(ByVal Target As Range)
>   Dim R As Range
>   Set Target = Intersect(Range("E12:E104"), Target)
>   If Target Is Nothing Then Exit Sub
>   Application.EnableEvents = False
>   For Each R In Target
>     If IsEmpty(R.Offset(0, -1)) Then R.Offset(0, -1) = 0
>   Next
>   Application.EnableEvents = True
> End Sub
>

Danke Euch für den Versuch zu helfen.
Mein Fehler lag an (0, -1) in:
If IsEmpty(R.Offset(0, -1)) Then R.Offset(0, -1) = 0
In diesem Falle musste das "-" weg.

Gruß Johann
0 new messages