Clever-Excel-Forum

Normale Version: Löscht den Content der unteren Reihe
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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
Moin!
Ich glaube, dass hier ein Vorschlag ohne Datei pure Raterei wäre.

Gruß Ralf
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
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.
*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