Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makroausführung verhindern

Forumthread: Makroausführung verhindern

Makroausführung verhindern
Ptonka
Hallo zusammen,
habe folgendes Makro als OnChange-Ereignis im Tabellenblatt.
Funktioniert auch prima.
Bei Änderung in einer Spalte wird entsprechend eine Berechnung in der gleichen Zeile in der Spalte daneben durchgeführt.
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim I As Long
If ActiveCell.Column = 1 And Target  "" Then
Application.EnableEvents = False
For I = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(I, 1).Value  "" Then
Cells(I, 2).Value = Cells(I, 1).Value * 0.25
End If
Next I
Application.EnableEvents = True
End If
End Sub
Mein Problem ist nun, wenn ich eine zusätzliche (neue) Zeile einfüge, springt das Makro an und will debuggt werden. Wie kann ich dies verhindern?
Danke im Voraus,
Gruß,
Ptonka
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Makroausführung verhindern
23.04.2010 14:46:10
Rudi
Hallo,
so:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim I As Long
If Target.Cells.Count = 1 Then
If Target.Column = 1 And Target  "" Then
Application.EnableEvents = False
For I = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(I, 1).Value  "" Then
Cells(I, 2).Value = Cells(I, 1).Value * 0.25
End If
Next I
Application.EnableEvents = True
End If
End If
End Sub

Gruß
Rudi
Anzeige
AW: Makroausführung verhindern
23.04.2010 14:55:13
fcs
Hallo Ptonka,
die ActiveCell sollte man hier nicht zum Prüfen nehmen. Besser nur mit Target arbeiten.
Die Prüfung muss du erweitern und zusätzlich prüfen, ob Target nur eine Zelle beinhaltet.
Die Prüfung auf Inhalt "" muss in einer 2. Zeile erfolgen.
Gruß
Franz
Private Sub Worksheet_Change(ByVal Target As Range)
Dim I As Long
If Target.Column = 1 And Target.Cells.Count = 1 Then
If Target  "" Then
Application.EnableEvents = False
For I = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(I, 1).Value  "" Then
Cells(I, 2).Value = Cells(I, 1).Value * 0.25
End If
Next I
Application.EnableEvents = True
End If
End If
End Sub

Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige