Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
732to736
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
732to736
732to736
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Löschen bestimmter Zeilen

Löschen bestimmter Zeilen
Greg
Hallo,
habe ein Problem zu lösen (entweder VBA oder egal wie...(;-)
Excel soll z. B. in den Zeilen C17 bis J17 nach Leerfeldern/Zellen zu überprüfen und dann wenn gefunden die Zeilen 15 bis 21 (für den Fall, dass er in den Zeilen C24:J24 und C30:J30 auch Leerzellen/Felder findet soll er die Zeilen 15:35 KOMPLETT (ALSO NICHT NUR DEN iNHALT)entfernen)löschen. Danach/gleichzeitig soll er dann in denn Zeilen C24:J24 nach Leerstellen/Zellen/Feldern überprüfen und wenn gefunden die Zeilen 22 bis 28 löschen (wenn auch in den Zellen C30:J30 Leerzellen.. dann die Zeilen 22:35 löschen) danach die Zellen C30:J30 nach Leerfeldern/Zellen überprüfen und wenn Leer...gefunden die Zeilen 29-35 Löschen.
Hat jemand eine Idee dazu? Ich beiße mir schon seit Tagen die Zähne daran aus...
Gruss
Greg
AW: Löschen bestimmter Zeilen
16.02.2006 10:20:19
Andi
Hi,
ich versuch das mal zu verstehen, bevor ich da irgendwas programmiere:
1.
Wenn in C17:J17 mindestens eine leere Zelle ist, dann Zeilen 15 bis 21 löschen
2.
Wenn in C24:J24 mindestens eine leere Zelle ist, dann Zeilen 22 bis 28 löschen
3.
Wenn in C30:J30 mindestens eine leere Zelle ist, dann Zeilen 29 bis 35 löschen
Die Kombinationen ('wen da und da ne Leerzelle gefunden wird, dann von hier bis dort löschen') ergibt sich ja aus der Kombination dieser Einzelabfragen.
Löschen heisst in jeden Fall 'Zeilen löschen', und nicht 'Inhalte löschen', oder?
Is das so richtig?
Schönen Gruß,
Andi
Anzeige
Löschen bestimmter Zeilen
16.02.2006 10:23:36
Greg
Hallo Andi,
ja das ist genau das was ich versuche zu programmieren, oder...
Hast Du da eine Lösung?
Gruss
Greg
AW: Löschen bestimmter Zeilen
16.02.2006 10:33:33
Andi
Hi,
dies müsste es eigentlich tun:

Sub suchen_und_loeschen()
If Not Range("C30:J30").Find("") Is Nothing Then Rows("29:35").Delete
If Not Range("C24:J24").Find("") Is Nothing Then Rows("22:28").Delete
If Not Range("C17:J17").Find("") Is Nothing Then Rows("15:21").Delete
End Sub

Code in ein Standard-Modul und über Extras, Makro, Makros ausführen.
Du kannst den Code natürlich auch nen CommandButton oder so zuweisen.
Ganz allgemein solltest Du beim Zeilen löschen immer drauf achten, dass von unten nach oben gearbeitet wird; würdest Du in meinem Makro die Reihenfolge verändern, und zB die Zeilen 15:21 zu erst löschen, dann verschieben sich die Zeilen daruner ja nach oben, alle weiteren Prüf- und Löschvorgänge laufen dann irgendwo ab, aber nicht da wo Du es eigentlich wolltest.
Schönen Gruß,
Andi
Anzeige
Löschen bestimmter Zeilen
16.02.2006 10:35:46
Greg
Hallo Andi,
danke, werde das gleich mal ausprobieren. Melde mich dann, ok?
Gruss
Greg
Löschen bestimmter Zeilen-Fragestellung war falsch
16.02.2006 11:16:32
Greg
Hallo Andi,
tja ich glaube da habe ich ein Fehler alleine schon in der Fragestellung gemacht (Mann, bin ich blöd, dämlich und sonst noch was dazu!)
Es müßte korrekterweise bzw. eigentlich heissen:
schau in den Zeilen C17:J17 nach ob da ein Feld ausgefüllt ist, wenn nein, dann lösche die Zeilen 15:21
schau in den Zeilen C24:J24 nach ob da ein Feld ausgefüllt ist, wenn nein, dann lösche die Zeilen 22:28
schau in den Zeilen C31:J31 nach ob da ein Feld ausgefüllt ist, wenn nein, dann lösche die Zeilen 29:35
Hast Du eine Vorstellung wie dann die Programmierung lautet, denn die Programmierung, die Du mir freundlicherweise gegeben hast funktioniert da nicht?
Sorry fd Umstände...
Greg
Anzeige
AW: Löschen bestimmter Zeilen-Fragestellung war falsch
16.02.2006 11:36:19
Andi
Hi,
die funktioniert da natürlich nicht, die macht ja so ziemlich das Gegenteil davon...
In Deinem Fall müsste folgendes funktionieren:

Sub suchen_und_loeschen()
If Range("C30:J30").Find("*") Is Nothing Then Rows("29:35").Delete
If Range("C24:J24").Find("*") Is Nothing Then Rows("22:28").Delete
If Range("C17:J17").Find("*") Is Nothing Then Rows("15:21").Delete
End Sub

Schönen Gruß,
Andi
Löschen bestimmter Zeilen-Danke es funktioniert
16.02.2006 11:46:34
Greg
Hallo Andi,
recht herzlichen Dank; es funtioniert und werde dies dann in ein anderes Makro einzubinden versuchen.
Danke nochmals...
Gruss
Greg
Anzeige
Gern geschehen... (ot)
16.02.2006 11:49:47
Andi
.
Summe bildet sich nicht nachdem Zeilen gelöscht wu
16.02.2006 13:06:35
Greg
Hallo Andi,
habe Deine Programmierung eingebaut, funktioniert, aber ein kleines Problem stellt sich beim Löschen dar (mit Sicherheit kennst Du das auch).
Löscht er nur ein Block oder Zeile, summiert er mir eine Zelle, die im ursprünglichen Blatte in K37 steht, nicht. Vorsorglich habe ich zwar die Formel SUMME(K33;K26;K19;K12), wobei ich nicht z.B. K12, sondern der Zelle einen Namen verpasst habe eingegeben; trotzdem kommen die Rauten (####) raus. Das Problem löst sich auch nicht wenn ich anstatt Summe als Formel (..+..+..) eingebe...
Wie bringe ich jetzt Excel dazu die Summe aus den verbliebenen Zellen (wenn z.B. bd Kontrolle der belegten Zellen die Zeilen 29:35 gelöscht werden) AUTOMATISCH zu bilden?
Meine Idee:
If Range("C30:J30").Find("*") Is Nothing Then Zelle "Gesamtsumme" = Summe (K26;K19;K12) and Rows("29:35").Delete
If Range("C24:J24").Find("*") Is Nothing Then Zelle "Gesamtsumme" = Summe (K19;K12)and Rows("22:28").Delete
If Range("C17:J17").Find("*") Is Nothing Then Zelle "Gesamtsumme" = Summe (K12) and Rows("15:21").Delete
Ich weiss, dass diese Programmierung zum Totlachen ist, aber hast Du eine Idee wie das richtig zu progammieren ist?
Gruss
Greg
Anzeige
AW: Summe bildet sich nicht nachdem Zeilen gelöscht wu
16.02.2006 15:50:14
Andi
Hi,
mal so auf die Schnelle:

Sub suchen_und_loeschen()
Dim summe As Double
summe = Range("K12").Value + Range("K19").Value + Range("K26").Value + Range("K33").Value
If Range("C30:J30").Find("*") Is Nothing Then
summe = summe - Range("K33").Value
Rows("29:35").Delete
End If
If Range("C24:J24").Find("*") Is Nothing Then
summe = summe - Range("K26").Value
Rows("22:28").Delete
End If
If Range("C17:J17").Find("*") Is Nothing Then
summe = summe - Range("K19").Value
Rows("15:21").Delete
End If
Range("Gesamtsumme").Value = summe
End Sub

Schönen Gruß,
Andi
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige