Registriert seit: 24.04.2018
Version(en): 2013
03.07.2018, 06:37
(Dieser Beitrag wurde zuletzt bearbeitet: 03.07.2018, 06:43 von Mr.Invisible.)
Hallo Zusammen,
sobald wenn ich in Excel eine Reihe markiere und lösche, löscht Excel mir den Content der darunter liegenden Reihe eines bestimmten Bereiches mit.
Ich verwende in dieser Arbeitsmappe ein Worksheet Change Makro. Kann mir jemand sagen was ich in dieses Makro schreiben muss, damit es nicht aktiviert wird wenn eine Reihe gelöscht wird?
Danke und Grüße
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
Moin!
Ich glaube, dass hier ein Vorschlag ohne Datei pure Raterei wäre.
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 24.04.2018
Version(en): 2013
Morgen RPP63,
ich hab die Ursache schon gefunden, hab meine Frage auch schon angepasst. Jedoch weiß ich nicht was ich hier schreiben muss damit das Makro beim löschen einer Zeile nicht aktiviert wird.
Ich füg mal den Code ein der für das löschen des Inhaltes verantwortlich ist.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Dim DelRng As Range
Dim Rng As Range
Dim rngyear As Range
Dim rngmonth As Range
Dim lastrow As Long
ChDate = ActiveCell.Offset(-1, 0)
lastrow = ActiveSheet.Cells(Rows.count, "A").End(xlUp).Row + 1
Set KeyCells = Range("H11:H" & lastrow)
year = Format(ChDate, "yyyy")
month = Format(ChDate, "mmm")
If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
Set DelRng = Range("N" & Target.Row & ":BI" & Target.Row)
DelRng.ClearContents ' Hier löscht er mir den Inhalt der Zeilen
' Do Something
Exit Sub
Registriert seit: 24.04.2018
Version(en): 2013
Hab eine Lösung gefunden.
Musste einfach diesen Code einfügen.
Code:
If Target.Cells.Count = Columns.Count Then Exit Sub
Trotzdem danke für deine Zeit.
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
03.07.2018, 07:22
(Dieser Beitrag wurde zuletzt bearbeitet: 03.07.2018, 07:22 von RPP63.)
*gelöscht* wg. falschem Fehler …
Dennoch:
Target.Cells ist zunächst mal genauso wie Range(Target.Address) doppelt gemoppelt, da Target bereits ein Range-Objekt darstellt.
Statt Range(Target.Address) reicht Target
Target.Count kann in einen Überlauf rennen, da Cells>Long ist!
Gewöhne Dir bitte grundsätzlich an, hier .CountLarge zu nehmen.
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)