Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeilen einfügen wenn Bedingung / Formula local

Zeilen einfügen wenn Bedingung / Formula local
15.05.2014 13:27:46
Cédric

Hallo Liebe Comunity
Ich sollte bei einer Datenreihe
110000 XGD
500000 GTH
500001
510000 HTZ
Jeweils bei einem neuen 100ertausenderschritt (also bei 110000 und 50000 und 510000) eine leere Zeile oben einfügen.
Bei 500000 Lohnsumme reinschreiben
bei 570000 Sozialleistungen
und bei 580000 Sachaufwand.
Ich habe versucht mit einer Hilfszeile zu arbeiten (untenstehend) aber vielleicht gehts das ja sogar noch einfacher?
Vielen Dank
Anbei mein Versuch
' Range("H2").Select
' Active.Sheet.Range("H2").FormulaLocal = "=WENN(B6="""";2;WENN(B4="""";'1;WENN(((LINKS(B5;2)*1)-(LINKS(B4;2)*1))[grösser]0;1;2)))"
' Range("H2").Select
' Selection.AutoFill Destination:=Range("H2:H489"), Type:=xlFillDefault
' Range("H2:H999").Select
'Dim a As Long
' a = 999
' For a = 999 To 2 Step -1
' If Cells(a, 8) = 1 Then Rows(a).Insert Shift:=xlDown
'Next a
Dieser verlangt aber nach einem Objekt. :-(
Ich bedanke mich bereits im vorraus überschwenglichst

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen einfügen wenn Bedingung / Formula local
15.05.2014 15:26:28
fcs
Hallo Cédric,
der Objekt-Fehler passiert hier:
Active.Sheet.Range("H2").FormulaLocal = .....
Der Punkt nach Active ist zu viel. Aber irgendwie komm ich mit deiner Formel nicht klar.
Es sollte aber auch ohne Hilfssspalte funktionieren, wenn man die beiden ersten Ziffern in einer Variable zwischenspeichert und mit den Werten in den Zeilen vergleicht.
Sollte etwa wie folgt funktionieren. Das Einfügen der Texte in die eingefügte Zeile kann man dabei über einen Nummernvergleich steuern.
Gruß
Franz
Sub aaTest()
Dim a As Long
Dim varWert, varWert2
Dim wks As Worksheet
Set wks = ActiveSheet
With wks
a = .Cells(.Rows.Count, 2).End(xlUp).Row
'Vergleichswert in der letzten Zeile merken
varWert = Val(Left(.Cells(a, 2).Text, 2))
For a = a - 1 To 1 Step -1
varWert2 = Val(Left(.Cells(a, 2).Text, 2))
If varWert  varWert2 Then
.Rows(a + 1).Insert Shift:=xlDown
varWert = Val(Left(.Cells(a, 2).Text, 2))
varWert2 = ""
Select Case Val(.Cells(a + 2, 2).Text)
Case 500000: varWert2 = "Lohnsumme"
Case 570000: varWert2 = "Sozialleistungen"
Case 580000: varWert2 = "Sachaufwand"
End Select
If varWert2  "" Then
.Cells(a + 1, 2).Value = varWert2
End If
End If
Next a
End With
End Sub

Anzeige
AW: Zeilen einfügen wenn Bedingung / Formula local
15.05.2014 15:46:39
Cédric
Danke vielmals, funktioniert!
Zum Verständniss eine Frage, wenn ich jetzt das ganze unter die letze Zeile der Gruppierung schreiben möchte? (und toll wäre es, wenn es nur 1 Leerspalte und nicht 3 wären)
Sozialleistungen
570000 AHV, IV, EO, ALV
570001 AHV, IV, EO, ALV RST
571000 FAK
571001 FAK RST
Also unter 571001 (die Anzahl von 4 Feldern ist nicht fix).
Zusatzfrage, es wäre jetzt noch toll das ganze in der spalte E pro Gruppe zu summieren. Besteht da eine Möglichkeit ohne meine Hilfsspalte?
Danke super Tipp!!

Anzeige
AW: Zeilen einfügen wenn Bedingung / Formula local
15.05.2014 16:53:38
fcs
Hallo Cédric,
hier das Makro mit Leerzeilen, Beschriftung und Gruppensummierung unterhalb jeder Gruppe.
Gruß
Franz
Sub aaTest()
Dim a As Long
Dim varWert, varWert2
Dim wks As Worksheet
Dim Zeile_L As Long, Zeile_1 As Long
Set wks = ActiveSheet
With wks
a = .Cells(.Rows.Count, 2).End(xlUp).Row
varWert = 0
For a = a To 1 Step -1
varWert2 = Val(Left(.Cells(a, 2).Text, 2))
If varWert  varWert2 Or a = 2 Then
If Zeile_1  0 Then
.Cells(Zeile_L + 1, 5).FormulaR1C1 = _
"=SUBTOTAL(9,R[-" & (Zeile_L - Zeile_1 + 1) & "]C:R[-1]C)"
End If
varWert2 = ""
Select Case Val(.Cells(a + 1, 2).Text)
Case 110000: varWert2 = "Test"
Case 500000: varWert2 = "Lohnsumme"
Case 570000: varWert2 = "Sozialleistungen"
Case 580000: varWert2 = "Sachaufwand"
End Select
If varWert2  "" Then
.Cells(Zeile_L + 1, 2).Value = varWert2
End If
If a = 1 Then Exit For
.Rows(a + 1).Insert Shift:=xlDown
varWert = Val(Left(.Cells(a, 2).Text, 2))
Zeile_L = a
Zeile_1 = Zeile_L
Else
Zeile_1 = a
End If
Next a
End With
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige