Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1896to1900
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 wenn Wert erreicht

Zeile einfügen wenn Wert erreicht
31.08.2022 13:11:06
Micha
Schönen guten Tag zusammen,
wahrscheinlich ist es für euch ein leichtes, aber ich stehe gerade vor einem Problem wo ich nicht weiter weiß.
Ich bräuchte einen VBA Code der immer eine Zeile einfügt wenn die Summe in Spalte A einen Wert überschreitet.
Also als Beispiel Wert 10
Vorher:
5
5
6
4
7
3
2
Nachher
5
5
6
4
7
3
2
Ich hoffe das ist verständlich erklärt.
Lieben Dank schon mal an alle für eure Zeit.

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: nur ein Hinweis ...
31.08.2022 13:23:14
neopa
Hallo Micha,
... weil ich mich mit VBA nicht beschäftige.
Aber Du solltest noch klären, wo die Zeile eingefügt werden soll, wenn z.B. Dein erster angegebene Wert kleiner oder auch größer 5 ist.
Gruß Werner
.. , - ...
AW: Zeile einfügen wenn Wert erreicht
31.08.2022 13:29:39
onur
"Also als Beispiel Wert 10" ?
Dieser Wert taucht nicht in deiner Liste auf und wird auch nicht überschritten !
AW: Zeile einfügen wenn Wert erreicht
31.08.2022 13:34:55
GerdL
Moin Micha!

Sub Unit()
Dim x As Long, su As Double, r As Range
For x = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If IsNumeric(Cells(x, 1)) Then su = su + Cells(x, 1)
If su >= 10 Then
su = 0
If r Is Nothing Then
Set r = Cells(x + 1, 1)
Else
Set r = Union(r, Cells(x + 1, 1))
End If
End If
Next
If Not r Is Nothing Then Call r.EntireRow.Insert(shift:=xlShiftDown, copyorigin:=xlFormatFromLeftOrAbove)
Set r = Nothing
End Sub
Gruß Gerd
Anzeige
AW: Zeile einfügen wenn Wert erreicht
31.08.2022 13:43:55
Michael
Entschuldigt, ich glaub ich hab mich unverständlich ausgedrückt.
Der Code soll eine leere Zeile einfügen wenn DIE SUMME aus A einen Wert überschreitet.
Also wenn in A steht
2
3
5
5
sollte dann nach dem dritten Wert (also der Summe 2+3+5 = 10) eine Zeile eingefügt sein
AW: Zeile einfügen wenn Wert erreicht
31.08.2022 13:47:03
onur
Dann musst du aber auch schreiben: "wenn der Wert erreicht wird" und nicht "wenn der Wert überschritten wird".
AW: Zeile einfügen wenn Wert erreicht
31.08.2022 14:00:31
Michael
Ok, ich wusste nicht das man das so detailreich beschreiben muss.
Also wenn die Summe aus A einen Wert (als Beispiel 10) erreicht oder überschreitet soll eine Zeile eingefügt werden.
Also wenn die Liste so aussieht
2
3
5
6
5
7
2
3
1
Muss die danach so aussehen
2
3
5
6
5
7
2
3
1
Anzeige
AW: Zeile einfügen wenn Wert erreicht
31.08.2022 14:09:02
onur
Na klar, VBA versteht nur exakte Befehle und keine Wischiwaschi-Beschreibungen.
Wie soll das passieren? Auf Knopfdruck oder bei Ändern einer Zelle in A?
Was soll denn beim zweiten Aktivieren des Makros passieren? Noch eine leere Zeile einfügen?
Was soll denn passieren, wenn jemand z.B. aus der 5 eine 1 macht und dadurch die 10 nicht mehr erreicht wird? Die leere Zeile wieder löschen? usw usw...
Wenn du ALLES genau beschreibst, entfällen auch die unzähligen Nachbesserungen, die bei so wagen Beschreibungen leider übklich sind.
AW: Zeile einfügen wenn Wert erreicht
31.08.2022 13:46:42
UweD
Hallo
so?

Sub Summe()
Dim LR As Integer, i As Integer, MMax As Integer
Dim Rest1 As Integer, Rest2 As Integer
MMax = 10
Application.ScreenUpdating = False
LR = Cells(Rows.Count, "A").End(xlUp).Row 'letzte Zeile der Spalte
For i = LR To 2 Step -1
Rest1 = WorksheetFunction.Sum(Cells(1, 1).Resize(i - 1, 1)) Mod MMax
Rest2 = WorksheetFunction.Sum(Cells(1, 1).Resize(i, 1)) Mod MMax
If Rest2 
LG UweD
Anzeige
AW: Zeile einfügen wenn Wert erreicht
31.08.2022 14:16:54
UweD
Sind es nur Ziffern kleiner 10 ?
AW: Zeile einfügen wenn Wert erreicht
31.08.2022 14:04:30
Daniel
Hi
probier mal das:

Sub test()
Dim z As Long
Dim Summe As Double
z = 1
Do Until Cells(z, 1) = ""
Summe = Summe + Cells(z, 1)
z = z + 1
If Summe >= 10 Then
Rows(z).Insert
z = z + 1
Summe = 0
End If
Loop
End Sub
geeignet für kleinere Datenmengen, da nicht besonderes schnell.
Gruß Daniel
AW: Zeile einfügen wenn Wert erreicht
31.08.2022 14:10:22
Michael
Hi Daniel,
hier gibts ne Fehlermeldung bei der Zeile:
Summe = Summe + Cells(z, 1)
Fehlermeldung lautet
Laufzeitfehler 13
Typen unverträglich
AW: Zeile einfügen wenn Wert erreicht
31.08.2022 14:20:41
Daniel
Dann läuft die Schleife über eine Zelle mit Text.
Wo die herkommt, weiß ich nicht.
Gestalte deine Datei so, wie du sie uns die Daten gezeigt hast, dann funktioniert auch der Code.
Gruß Daniel
Anzeige
AW: Zeile einfügen wenn Wert erreicht
31.08.2022 14:35:43
UweD
Hallo
so würde Daniels Code auch mit Text laufen

Sub test()
Dim z As Long
Dim Summe As Double
z = 1
Do Until Cells(z, 1) = ""
If IsNumeric(Cells(z, 1)) Then
Summe = Summe + Cells(z, 1)
End If
z = z + 1
If Summe >= 10 Then
Rows(z).Insert
z = z + 1
Summe = 0
End If
Loop
End Sub

AW: Zeile einfügen wenn Wert erreicht
31.08.2022 14:39:46
Daniel
wahrscheinlich muss man nur, falls man eine Überschrift hat, den Startwert der Schleife (z = 1) auf die erste Zeile mit Daten setzen.

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige