Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1944to1948
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
Formel übernehmen bei Zeile einfügen
03.09.2023 12:22:11
Dieter
Hey all,
Ich habe schon lange danach gesucht aber leider nicht das richtige gefunden, deshalb versuche ich es mal hier.
In meiner Tabelle lasse ich egal wo ich bin ein neue Zeile einfügen, was auch geht.
Außerdem wird mir die Formatierung übernommen, was auch geht.
Nur habe ich Formel in verschiedene Zellen darüber die leider nicht mit übernommen werden
wenn ich eine neue Zeile einfüge. das ist mein Problem und es würde mich freuen wenn jemand helfen könnte.
Hier mein bisheriger Code
Private Sub CommandButton1_Click()  'Zeile einfügen

Dim iCount As Integer
With Selection
iCount = .Rows.Count
Rows(.Row + iCount & ":" & _
.Row + (iCount * 2) - 1).Rows.Insert , xlFormatFromLeftOrAbove 'hier wird Formatierung übernommen
End With
ActiveCell.Offset(1, 0).Select

End Sub


Wenn der Code umgeschrieben werden muss zur ? besseren Übersetzung kann das auch gerne gemacht werden.
Ich danke schon mal der Hilfe.

MfG.
Dieter

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel übernehmen bei Zeile einfügen
06.09.2023 17:15:24
Dieter
Hallo,
Ich möchte nicht nerven, aber hat keiner eine Lösung für mich parat ?
Ich brauche das eigentlich nur für die Spalte ab B3 nach unten und G3 nach unten für die Formel
wenn neue Zeile eingefügt wird.
Schon mal danke der Mühe.

MfG.
Dieter
AW: Formel übernehmen bei Zeile einfügen
09.09.2023 10:03:47
GerdL
Moin Dieter,

da du das "Formelergebnis" nicht beschreibst, zwei verschiedene Formelvarianten für Spalte B und Spalte G.
Private Sub CommandButton22_Click()  'Zeile einfügen


Dim iCount As Integer

With Selection
iCount = .Rows.Count
Rows(.Row + iCount & ":" & _
.Row + (iCount * 2) - 1).Rows.Insert , xlFormatFromLeftOrAbove 'hier wird Formatierung übernommen

.EntireRow.Cells(1, 2).Copy
Range("B:B").Rows(.Row + iCount & ":" & _
.Row + (iCount * 2) - 1).PasteSpecial xlPasteFormulas

Range("G:G").Rows(.Row + iCount & ":" & _
.Row + (iCount * 2) - 1).FormulaLocal = .EntireRow.Cells(1, 7).FormulaLocal
End With
ActiveCell.Offset(1, 0).Select

End Sub


Gruß Gerd
Anzeige
AW: Formel übernehmen bei Zeile einfügen
09.09.2023 13:05:09
Dieter
Hallo Gerd,
Erst mal danke der Antwort.
Sorry, hab ich vergessen anzugeben die Formel die lautet für ab Spalte B3 =WENN(A3>0;"x";"")
und für die Spalte ab G3 =WENN(F3>0;"-";"")
Sollte ich jetzt eine Zeile zb. in A25 eingeben, müsste die Formel dann in B25 =WENN(A25>0;"x";"")
und in G25 =WENN(F25>0;"-";"") so lauten.
Trotz alledem geht Deine Formel nur bedingt.
Sie setzt zwar die Formel ein, aber die Zelle darüber ist immer noch aktiv.
Wo sind denn bei Deinem Code zwei Formel Varianten ? Ich sehe nur eine. Das ist doch nur ein Code ?? oder übersehe ich da was ?
Vielleicht gibt es da noch was anderes besseres.

MfG
Dieter
Anzeige
AW: Formel übernehmen bei Zeile einfügen
09.09.2023 13:39:54
GerdL
Hallo Dieter!

Die beiden verschiedenen Methoden sind fett dargestellt.
Die Formeln in B u. G. werden aus der ersten Zeile der Markierung geholt.
Die Copy-PasteSpecial-Methode passt nach deiner Beschreibung besser.
Sollen die Formel immer aus B3 bzw, G3 übernommen werden?

Private Sub CommandButton22_Click() 'Zeile einfügen

Dim iCount As Integer

With Selection
iCount = .Rows.Count
Rows(.Row + iCount & ":" & _
.Row + (iCount * 2) - 1).Rows.Insert , xlFormatFromLeftOrAbove 'hier wird Formatierung übernommen

.EntireRow.Cells(1, 2).Copy
Range("B:B").Rows(.Row + iCount & ":" & _
.Row + (iCount * 2) - 1).PasteSpecial xlPasteFormulas

Range("G:G").Rows(.Row + iCount & ":" & _
.Row + (iCount * 2) - 1).FormulaLocal = .EntireRow.Cells(1, 7).FormulaLocal
End With
ActiveCell.Offset(1, 0).Select

End Sub

Gruß Gerd
Anzeige
AW: Formel übernehmen bei Zeile einfügen
09.09.2023 15:57:15
Dieter
Hallo Gerd,
Danke für Deine Mühe, wie Du selber erwähnst, passt die Copy-PasteSpecial-Methode
besser. Was ich nicht verstehe ist, wenn ich Zeile einfüge, ist die Zelle immer noch aktiv wo er die Formel her nimmt ( B )
und die aktive Zelle wird auf C eine Zeile darunter aktiviert.
Beispiel, auf A20 lasse ich Zeile einfügen, Aktivierte Zelle ist dann immer noch B20, und auf C22 ist jetzt die Aktive Zelle zur Eingabe.
Das muss doch so gehen,?? A20 Zeile einfügen mit Formel auf neue Zeile, Zelle B21 und aktive Zelle ist dann A21.
Ich habe Dir mal eine Bsp-Mappe dabei getan zum schauen.
https://www.herber.de/bbs/user/162752.xlsm

MfG.
Dieter
Anzeige
AW: Formel übernehmen bei Zeile einfügen
10.09.2023 11:51:09
Dieter
Hallo Ulf,
Danke für Deinen versuch, aber ich denke Du hast mein Problem nicht richtig gelesen.
Ich wollte ein leere Zeile einfügen und dann Formel kopieren von oben.
Du hast mir einfach nur Die Zeile kopiert mit gesamten Inhalt.
So sollte das nicht sein.
Aber trotzdem danke Für Deine Mühe

MfG.
Dieter
AW: Formel übernehmen bei Zeile einfügen
09.09.2023 20:31:32
GerdL
Guten Abend, Dieter.
Private Sub CommandButton1_Click()  'Zeile einfügen und Formeln kopieren

Dim iCount As Integer, X As Range

With Selection
Set X = ActiveCell
iCount = .Rows.Count
Rows(.Row + iCount & ":" & _
.Row + (iCount * 2) - 1).Rows.Insert shift:=xlDown, copyorigin:=xlFormatFromLeftOrAbove 'hier wird Formatierung übernommen
.EntireRow.Cells(1, 2).Copy
Range("B:B").Rows(.Row + iCount & ":" & _
.Row + (iCount * 2) - 1).PasteSpecial xlPasteFormulas
Range("G:G").Rows(.Row + iCount & ":" & _
.Row + (iCount * 2) - 1).PasteSpecial xlPasteFormulas
Application.CutCopyMode = False
End With
X.Offset(1, 0).Select

End Sub


Gruß Gerd
Anzeige
AW: Formel übernehmen bei Zeile einfügen
10.09.2023 12:13:04
Dieter
Hallo Gerd,
Vielen Dank für Deine Mühe und es klappt jetzt wie ich wollte.
Da ich über längerer Zeit auch nicht untätig war einen Code zu suchen,
habe ich auch doch noch eine Lösung gefunden die auch wunderbar klappt.
Soll aber Deine Arbeit und Hilfe nicht schmälern. ( Ehrlich gemeint )
Bin immer froh wenn geholfen wird, deshalb auch vielen lieben Dank an Dich.
Hier mal der Code den ich gefunden habe,
Bei dem Code fügt er die Neue Zeile ein, und kopiert die gesamten Formel von oben in die neue Zeile ein.
Private Sub CommandButton1_Click()  'Zeile einfügen und Formeln kopieren

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
End Sub

Vielleicht kann jemand den Code für sich gebrauchen.?
Danke nochmals an Dich Gerd und Problem gelöst
MfG.
Dieter
Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige