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

Makro-Problem bei Zeilenlöschung

Makro-Problem bei Zeilenlöschung
15.06.2016 19:15:18
Burghard
Hallo,
ich habe hier ein Makro, dass an sich einwandfrei läuft. Allerdings bekomme ich ein Problem, wenn ich am Ende einer Tabelle eine oder mehrere Zeilen löschen will. Dann umrahmt das Makro die leeren Zeile(n)/Zellen und setzt sie auf 18 (Zeilenhöhe).
Kann man die Ausführung des Change-Ereignisse abbrechen, wenn ich am Ende der Tabelle eine oder mehrere Zeilen lösche oder geht das nicht? Hier mein Makro:
Const cMinHeight = 18
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error GoTo ende
letztezeile = ActiveSheet.Cells(65536, 1).End(xlUp).Row
letztezelle = Range("A1").SpecialCells(xlCellTypeLastCell).Address
Dim rR As Range
For Each rR In Target.Rows
rR.AutoFit
If rR.RowHeight 
Hilfe wäre nett.
Grüße
Burghard

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro-Problem bei Zeilenlöschung
15.06.2016 19:19:59
Hajo_Zi
Hallo Burghard,
wo wird da gelöscht? Ich finde kein Delete.

AW: Makro-Problem bei Zeilenlöschung
15.06.2016 20:08:44
Hajo_Zi
Hallo Burghard,
vielleicht meinst Du auch das Löschen von Hand?
Keine Ahnung ob der Rahmen bei der Letzten Zeile gesetzt werden soll, bei löschen der letzten Zeile?
Ansonsten den Teil löschen.
Excel kann die letzte Zeile erst nach Sichern richtig feststellen.´
Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim letztezeile As Long
Dim letztezelle As String
Dim cMinHeight As Integer
On Error GoTo ende
letztezeile = ActiveSheet.Cells(65536, 1).End(xlUp).Row
letztezelle = Range("A1").SpecialCells(xlCellTypeLastCell).Address
Dim rR As Range
For Each rR In Target.Rows
rR.AutoFit
If rR.RowHeight  0 Then
ActiveSheet.Range("A" & letztezeile & ":" & letztezelle).Borders.LineStyle =  _
xlContinuous
ActiveSheet.Range("A" & letztezeile & ":" & letztezelle).Borders.Weight = xlThin
ActiveSheet.Range("A" & letztezeile & ":" & letztezelle).Borders.ColorIndex = 48
End If
Next rR
ThisWorkbook.Save
letztezelle = Range("A1").SpecialCells(xlCellTypeLastCell).Address
letztezeile = ActiveSheet.Cells(65536, 1).End(xlUp).Row
ActiveSheet.Range("A" & letztezeile & ":" & letztezelle).Borders.LineStyle = xlContinuous
ActiveSheet.Range("A" & letztezeile & ":" & letztezelle).Borders.Weight = xlThin
ActiveSheet.Range("A" & letztezeile & ":" & letztezelle).Borders.ColorIndex = 48
ende:
End Sub

Anzeige
AW: Makro-Problem bei Zeilenlöschung
16.06.2016 02:05:37
Burghard
Hallo Hajo,
da hab ich mich wohl nicht ganz vollständig und richtig ausgedrückt. Also, angenommen, ich habe den Zellbereich der Spalten A1 bis A25, B1 bis B25, C1 bis 25, D1 bis D25 mit Inhalten gefüllt.
Dann lösche ich manuell die Zeilen 20 bis 25. Dann bleibt das Makro aber weiter aktiv (Change-Ereignis) und setzt die Rahmen und die Zeilenhöhe (18) automatisch auch bei den manuell gelöschten Zeilen. Dies will ich eigentlich nicht. Die gelöschten Zeilen sollen ohne Rahmen und die Standardhöhe (12,75 = Autofit) haben. Die Frage war, ob man in das Makro eine Bedingung einbauen kann, z.B. sinngemäß: Wenn Range("A" & letztezeile) = "" Then Exit Sub . Möglicherweise geht so etwas aber auch gar nicht.
Grüße
Burghard

Anzeige
AW: Makro-Problem bei Zeilenlöschung
16.06.2016 06:03:12
Hajo_Zi
Hallo Burghard,
ich interpretiere es mal jetzt so Dir gefällt meine Lösung nicht. Ich bin dann raus.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige