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

Zeile einfügen/löschen mit filldown

Zeile einfügen/löschen mit filldown
23.09.2015 09:00:24
Brandt
Hallo
Benötige eine Unterstützung bei den unten aufgeführten Quellcodes.
In den Makros kann man jeweils eine Zeile löschen oder wieder einfügen und mit filldown die Formeln wieder aktualisieren. Makros funktionieren soweit
Dies wird jeweils von Zeile A17:A37 und D17:D37 realisiert.
Meine Frage: Wie kann man A37 und D37 als dynamisches Ende gestalten, denn wenn ich eine Zeile hinzufüge wird momentan die Formeln nur bis zu diesen Endwerten A34 und D34 aktualisiert.
Als Idee hatte ich daran gedacht unter A37 und D37 das Wort "Ende" zu schreiben und bis zu dieser Zelle die Aktualisierung (filldown) durchzuführen.
Private Sub cmd_Insert_cell_Click()
Dim Zelle As Range
ActiveCell.EntireRow.Copy
Cells(ActiveCell.Row + 1, 1).Insert Shift:=xlDown
For Each Zelle In Range(Cells(ActiveCell.Row + 1, 1), Cells(ActiveCell.Row + 1, 255).End( _
xlToLeft))
If Not Zelle.HasFormula Then
Zelle.ClearContents
End If
Next Zelle
Cells(ActiveCell.Row + 1, 1).Select
Range("A13:A37" & x).FillDown
Range("D13:D37" & x).FillDown
End Sub
Private Sub cmd_delete_row_Click()
Dim Zelle As Range
ActiveCell.EntireRow.Select
Rows(ActiveCell.Row).Delete
Cells(ActiveCell.Row + 1, 1).Select
Range("A13:A37" & x).FillDown
Range("D13:D37" & x).FillDown
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile einfügen/löschen mit filldown
23.09.2015 09:35:29
Werner
Hallo,
Versuch mal -ungetestet-
Private Sub cmd_Insert_cell_Click()
Dim loletzte AS Long
Dim Zelle As Range
loLetzte = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
ActiveCell.EntireRow.Copy
Cells(ActiveCell.Row + 1, 1).Insert Shift:=xlDown
For Each Zelle In Range(Cells(ActiveCell.Row + 1, 1), Cells(ActiveCell.Row + 1, 255).End( _
xlToLeft))
If Not Zelle.HasFormula Then
Zelle.ClearContents
End If
Next Zelle
Cells(ActiveCell.Row + 1, 1).Select
Range("A13:A & loLetzte" & x).FillDown
Range("D13:D & loLetzte" & x).FillDown
End Sub
Ich hab jetzt nur für Spalte A die letzte Zeile ermittelt, bin davon ausgegangen, dass die letzte Zeile in Spalte A und D identisch sind.
Für was bei dir das & x sein soll erschließt sich mir allerdings nicht.
Gruß Werner

Anzeige
AW: Zeile einfügen/löschen mit filldown
23.09.2015 09:51:04
Brandt
Hallo Werner
Habe Deinen Quellcode folgendermassen eingefügt ohne & x.
Makro fügt auch eine Zeitle ein und aktualisiert die Formeln.
Bekommen aber die Fehlermeldung Laufzeitfehler 1004
Die Methode Range für das Objekt'_Worksheet' ist fehlgeschlagen.

AW: Zeile einfügen/löschen mit filldown
23.09.2015 10:06:03
Werner
Hallo,
Gänsefüsschen falsch gesetzt
Range("A13:A" & loLetzte).FillDown
Range("D13:D" & loLetzte).FillDown
Gruß Werner

AW: Nachfrage
23.09.2015 10:07:37
hary
Moin
Du hast in den Bereichen eine Formel.
Jetzt fuegst du eine Zeile hinzu.Formeln passen sich doch an oder?
Probier mal
Sub einfuegen()
Dim bereich As Range
Set bereich = Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, 255).End(xlToLeft))
bereich.Copy
Cells(ActiveCell.Row + 1, 1).Insert Shift:=xlDown
Cells(ActiveCell.Row + 1, 1).PasteSpecial (xlFormulas)
bereich.Offset(1, 0).SpecialCells(xlCellTypeConstants).ClearContents
End Sub
Sub loeschen()
Rows(ActiveCell.Row).Delete
Cells(ActiveCell.Row + 1, 1).Select
End Sub

Ansonsten mal eine Bsp.-Mappe.
Ist so nicht ganz klar.
gruss hary

Anzeige
AW: Nachfrage
23.09.2015 11:37:59
Brandt
Hallo Werner, Hary
Habe Eure Makros wie unten beschrieben eingefügt und dementsprechende für das Einfügen/Löschen der Zeile angepasst aber nach jedem Durchgang fügt das Makro beim Einfügen und beim Löschen 1 bis drei zus. Zeilen ein.
Bekommen den Fehler leider nicht raus
Vielleicht habt Ihr noch eine Idee wo ich einen Fehler gemacht habe
@Hary: Bei Deinem Makro wird immer gefragt ob die verbundenen Zellen zusammengefügt werden sollen. Hier wird auch mein Command Button mit kopiert.
Private Sub cmd_delete_row_Click()
Dim loletzte As Long
Dim Zelle As Range
loletzte = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
ActiveCell.EntireRow.Delete
For Each Zelle In Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, 255).End( _
xlToLeft))
If Not Zelle.HasFormula Then
Zelle.ClearContents
End If
Next Zelle
Cells(ActiveCell.Row + 1, 1).Select
Range("A13:A" & loletzte).FillDown
Range("D13:D" & loletzte).FillDown
Private Sub cmd_Insert_cell_Click()
Dim loletzte As Long
Dim Zelle As Range
loletzte = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
ActiveCell.EntireRow.Copy
Cells(ActiveCell.Row + 1, 1).Insert Shift:=xlDown
For Each Zelle In Range(Cells(ActiveCell.Row + 1, 1), Cells(ActiveCell.Row + 1, 255).End( _
xlToLeft))
If Not Zelle.HasFormula Then
Zelle.ClearContents
End If
Next Zelle
Cells(ActiveCell.Row + 1, 1).Select
Range("A13:A" & loletzte).FillDown
Range("D13:D" & loletzte).FillDown

Anzeige
AW:Beispielmappe
24.09.2015 06:03:08
hary
Moin
Dann waere eine Bsp.-Mappe angebracht. Von verbundenen Zellen war keine Rede.
gruss hary

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige