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

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

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
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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige