Anzeige
Archiv - Navigation
1844to1848
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

Makro zum löschen einer Zeile

Makro zum löschen einer Zeile
14.09.2021 09:37:09
Volker
https://www.herber.de/bbs/user/148060.xlsm
Hallo, sorry aber ich schaff das nicht alleine.
Das Makro soll die Zeile löschen, wenn der Wert in C = 0,00 € ist. Beginnend bei C2 bis C10.
Danke schon mal!
Volker

Sub lö()
' lö Makro
Dim i As Long
For i = 12 To 4 Step -1
If Cells(i, 1).Value = 0 Then Cells(i, 1).Resize(, 3).Delete 'Ganze Zeile löschen
Next
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro zum löschen einer Zeile
14.09.2021 09:45:33
Klaus
Hi Volker,

Sub lö()
' lö Makro
Dim i As Long
For i = 12 To 4 Step -1
If Cells(i, 3).Value = 0 Then Cells(i, 1).EntireRow.Delete 'Ganze Zeile löschen
Next i
End Sub
das löschen ganzer Zeilen verursacht allerdings Bezug-Fehler in deinen Formeln - aber danach hast du nicht gefragt.
Hat die Master-Datei auch nur etwa 8 Zeilen, oder mehrere 100? Bei zweiterem würde ich lieber eine ressourcendschonende Variante ohne Schleife (mit Autofilter) benutzen, da dies bei großen Datenmengen sehr viel performanter löscht.
LG,
Klaus M.
AW: Makro zum löschen einer Zeile
14.09.2021 09:49:47
Volker
Klaus, schon mal vielen Dank!
Kann man das mit dem Bezug-Fehler irgendwie umgehen? Die Datei hat nur die 8 Zeilen.
Danke
Anzeige
AW: Makro zum löschen einer Zeile
14.09.2021 10:16:54
Klaus
Hi,
am einfachsten: Die Formeln mit Text überschreiben, danach löschen:

Sub lö()
' lö Makro
Dim i As Long
Range("C1:C12").Value = Range("C1:C12").Value
For i = 12 To 4 Step -1
If Cells(i, 3).Value = 0 Then Cells(i, 1).EntireRow.Delete 'Ganze Zeile löschen
Next i
End Sub
Dann sind aber für die weitere Verarbeitung die Formeln weg.
Vielleich wäre es gut wenn du mal erklärst was du machen willst (z.B. ist *19% ziemlich offensichtlich eine MwSt) und was genau die Anrechnung in C3 soll. Außerdem: Deine Art, die SUMME Formel zu benutzen, ist nicht effizient. Markiere innerhalb der SUMME immer ganze Bereiche, nicht jede Zelle einzeln.
LG,
Klaus M.
Anzeige
AW: Makro zum löschen einer Zeile
14.09.2021 10:26:27
Volker
Klaus, wenn Beträge in "C" stehen, werden diese addiert, ist ein Betrag bei "Anrechnung" enthalten, wird der zum Abzug gebracht. Und unten - wie Du geschrieben hast- kommt die MWST auf das Ergebnis von C1:C10. Ich möchte das in ein Word Dokument als Baustein einbinden. Dann mit Doppelklick die Exel Datei öffnen, Werte eintragen und zum Schluss wieder in das Word Dokument klicken und dann wird die Exel wieder geschlossen.
AW: Makro zum löschen einer Zeile
14.09.2021 10:42:04
Volker
Klaus, es klappt super! Allerdings nur die Zeile 2 (1008) und 3 (Anrechnung) löscht es bei einem Wert von 0,00 € in Zelle C nicht?
AW: Makro zum löschen einer Zeile
14.09.2021 11:11:24
Daniel
Hi
Du hattest folgendes programmiert um anzugeben welche Zeilen geprüft und gegebenenfalls gelöscht werden sollen:

For i = 12 To 4 Step -1
Vielleicht fällt dir beim Betrachten dieser Zeile ja selber auf, warum Zeile 2 und 3 nicht gelöscht werden.
Außerdem würde ich Werte, die abgezogen werden sollen, als negative Zahl eingeben.
Dann kannst du einfach über alle Zeilen Summieren.
Gruß Daniel
Anzeige
AW: Makro zum löschen einer Zeile
14.09.2021 11:55:24
Volker
Daniel, habs geschnallt das mit der "4". Kannst Du mir bitte auch das mit dem Summieren von positiven und negativen Zahlen erklären?
=SUMME(C1:C10)*19%
Das Makro solll die Werte von C1 bis C10 (auch mit der negativen Zahl) berechnen und dann mal die 19%
Danke!
AW: Makro zum löschen einer Zeile
14.09.2021 12:48:33
Klaus
Hallo Volker,
gib einfach ein - (minus) vor der Zahl ein.
A1: 5
A2: -2
A3: 3
SUMME(A1:A3) = 6
LG,
Klaus M.
AW: Makro zum löschen einer Zeile
14.09.2021 12:54:40
Volker
Vielen Dank für Deine Hilfe!!
Gruß
Volker
AW: Makro zum löschen einer Zeile
14.09.2021 13:11:04
Dieter
Option Explicit

Sub summ_proz()
Dim Bereich As Range
Dim summe As Long
Set Bereich = Tabelle1.Range("C1:C10")
summe = Application.WorksheetFunction.sum(Bereich) 'Bereich addieren
Tabelle1.Range("C11").Value = summe
Tabelle1.Range("B11").Value = "Summe"
Tabelle1.Range("B12").Value = "davon 19%"
Tabelle1.Range("C12").Value = 19 * summe / 100 'Prozent berechnen 19% von der Summe sind
Set Bereich = Tabelle1.Range("C11:C12")
Tabelle1.Range("C13").Value = Application.WorksheetFunction.sum(Bereich) 'Bereich addieren
Tabelle1.Range("B13").Value = "Gesamtsumme"
Tabelle1.Range("B15").Value = "Gesamtsumme"
Tabelle1.Range("C15").Value = summe * 1.19 'Gesamtsumme sofort berechnen
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige