Microsoft Excel

Herbers Excel/VBA-Archiv

Zeile löschen und Bedingung anpassen


Betrifft: Zeile löschen und Bedingung anpassen von: Sebo
Geschrieben am: 23.09.2019 16:18:29

Hallo liebe Leute,

ich habe mir ein Makro geschrieben um die aktuelle und darauffolgende Zeile zu löschen damit die sonstige Formatierung erhalten bleibt und gleichzeitig die Nummerierung angepasst wird.

In der Tabelle habe ich zwischen zwei beschriebenen Zeilen eine Leerzeile und links eine fortlaufende Nummer für jede beschriebene Zeile. Wenn ich nun mein Makro ausführe funktioniert dieser auch wenn nur eine Zeile über der letzten gelöscht werden soll.
Allerdings habe ich jetzt das Problem wenn ich z.B. zwei Zeilen über der letzten löschen möchte. Dh ich bräuchte eine Makro das mir die Position in Relation zur letzten Zeile sucht um die Verknüpfungen der Nummerierungen anzupassen.

Kann auch sein das ich schon viel zu viel rumprobiert habe und deswegen die leichte Lösung nicht mehr sehe, also wäre ich für alle Hinweise dankbar.

Vielen Dank.

Hier mein Makro soweit:




Sub Loeschen()

    Rows(ActiveCell.Row).Select
    Selection.Delete Shift:=xlUp
    Rows(ActiveCell.Row).Select
    Selection.Delete Shift:=xlUp
    
    LetzteZeile = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
   ActiveSheet.Cells(LetzteZeile, 2).Select
   Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=R[-2]C+1"
    
    LetzteZeile2 = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
   ActiveSheet.Cells(LetzteZeile2, 3).Select
        Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlMedium
    End With
    Selection.Borders(xlEdgeRight).LineStyle = xlNone
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    
End Sub

  

Betrifft: AW: Zeile löschen und Bedingung anpassen von: Piet
Geschrieben am: 23.09.2019 23:46:49

Hallo Sebo

an deinem Code kann man sicher einiges verbessern, dazu müsst ich aber genau verstehen was du erreichen willst??
Ich habe noch nicht verstanden was du mit Position über der letzten Zeile genau meinst??

Kannst du uns eine Beispieldatei hochladen, wo du uns die Lösung zeigst. Eine Tabelle vor dem löschen, eine Tabelle nach dem Löschen.

mfg Piet


  

Betrifft: AW: Zeile löschen und Bedingung anpassen von: Sebo
Geschrieben am: 24.09.2019 08:31:50

Hallo Piet,

vielen Dank für deine Antwort. Ich versuche es nochmal genauer zu erklären.
Ich habe eine Tabelle mit mehreren Zeilen. In jeder Zeile steht eine Aufgabe mit Anfang und Enddatum woraus nachher ein Zeitplan erstellt wird. Diese Tabelle kann mit Hilfe eines Makro um eine Zeile erweitert werden. In der 2ten Spalte steht eine fortlaufende Nummerierung aller Zeilen. Jedoch nur in den beschriebenen, da ich jeweils eine Leerzeile nach einer beschriebenen habe.

Wenn ich nun mit meinem Makro, jeweils bestimmt ebenfalls ordentlich verbessert werden könnte, mehrere Zeilen hinzufüge funktioniert mein Makro zum löschen nicht mehr richtig. Ich möchte jetzt also ein Makro haben das die aktive Zeile und die darunter löscht und die Nummerierungen anpasst. Dafür müsste das Makro wissen in welcher Zeile es ist und alle Nummerierungen bis zum Ende anpassen.

Eine Beispieldatei kann ich leider nicht hochladen.
Vielen Dank für deine/eure Hilfe.


  

Betrifft: AW: Zeile löschen und Bedingung anpassen von: Piet
Geschrieben am: 24.09.2019 17:18:50

Hallo Sebo

eine Beispieldatei erstellen, ohne Firmengeheimnisse zu verraten, ist sehr einfach. Erstelle bitte eine leere Datei, mit der Spalte der Lauf Nr. und als Demo Text kopierst du ein Maerchen aus dem Internet rein. Egal was, Haensel und Gertel, Frau Holle, egal was. An disr Datei kannst du mir einee Lösung von Hand vorgeben, wo und wie genau du was verschiebst, bzw. löschst. Dann kann ich die Aufgabe besser verstehen, und Maerchen Texte sind keine wichtigen Daten!

mfg Piet


  

Betrifft: AW: Zeile löschen und Bedingung anpassen von: Piet
Geschrieben am: 24.09.2019 17:22:35

Nachtrag:

weil du auch Rahmen löschst versehe den Maerchen Text bitte auch mit Rahmen. lass deiner Fantasie freien Lauf. Hauptsache ich erkenne was du genau da löschst.


  

Betrifft: AW: Zeile löschen und Bedingung anpassen von: Daniel
Geschrieben am: 24.09.2019 17:38:15

Hi
vielleicht löst sich dein Problem in Wohlgefallen auf, wenn du für die fortlaufende Nummerierung folgende Formel verwendest (angepasst an die jeweilige Spalte):

=Index(A:A;Zeile()-2)+1
Gruß Daniel


Beiträge aus dem Excel-Forum zum Thema "Zeile löschen und Bedingung anpassen"