Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1012to1016
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

Zelle löschen wenn Formel kein übertrag macht

Zelle löschen wenn Formel kein übertrag macht
08.10.2008 11:16:00
Roger
Hallo
Ich hab da folgendes Problem das ich gern egelöst hätte.
Auf einem Blatt (übersicht) habe ich in den Zeilen 7 - 210 Formeln eingetragen, die auf andere Blätter (Monate) verweisen. Wenn nun auf dem anderen Blatt z.b. Monat Januar und Monat Dezember etwas eingetragen wird so wird es also auch auf das Blatt (übersicht) übernommen. Nun ist es aber so das nicht in allen Zeilen jeweils etwas übernommen wird. Diese Zeilen möchte ich nun gerne löschen mit einem Makro. Hab ihr eingie Makros gefunden, die löschen mir aber entweder alles oder dann gar nichts weil ja Formeln drinn stehen.
Weiss allenfalls jemand eine Lösung?
Besten Dank
Gruss
Roger

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelle löschen wenn Formel kein übertrag macht
08.10.2008 11:19:44
David
Hallo Roger,
warum nicht einfach über die Formel selbst:
=WENN('Deine Formel'="";"";'Deine Formel')
Gruß
David
AW: Zeile löschen wenn Formel kein übertrag macht
08.10.2008 11:26:07
Roger
Hallo
Leider funktioniert deine Formel nicht es löscht mir die Zeile nicht. Hab aus versehen im Betreff Zelle anstatt Zeile geschrieben. Sorry
AW: Zeile löschen wenn Formel kein übertrag macht
08.10.2008 21:59:00
Tino
Hallo,
was wird als Ergebnis in den Zellen wo noch was zu sehen ist übernommen,
sind dies Zahlen, Text oder beides?
Werden in diesen Zellen Zahlen übernommen,
kannst Du mit diesem Code alle Formelzellen (Zeilen) löschen,
wo als Ergebnis "" (entspricht Text) drin steht.
Sub Test1()

Dim Zellbereich As Range
Set Zellberich = Range("A1:A500")
Zellberich.SpecialCells(xlCellTypeFormulas, 2).EntireRow.Delete

End Sub


Sonst müsste eine Schleife dies erledigen.

Sub test2()
Dim A As Long
Dim Zellbereich As Range
Set Zellbereich = Range("A1:A500").SpecialCells(xlCellTypeFormulas, 23)
 With Application
  .ScreenUpdating = False
    For A = Zellbereich.Count To 1 Step -1
        If Zellbereich(A).Value = "" Then
         Zellbereich(A).EntireRow.Delete
        End If
    Next A
  .ScreenUpdating = True
 End With
End Sub


Gruß Tino

www.VBA-Excel.de


Anzeige
AW: Zeile löschen wenn Formel kein übertrag macht
09.10.2008 07:39:00
Roger
Hallo Tino
Danke für den Tip nur leider funktioniert er nicht so richtig. Da beides vorkommt habe ich das wzeite probiert und noch angepasst auf A9-A210. Da nur dieser Bereich durchsucht werden muss. Egal ob ich das Original oder mein abgeändertes nehme es kommt immer ein debuug Fehler bei der Linie If Zellbereich(A).Value = "" Then
In Spalte A ist ein Datum in Spalte C Text und in Spalte O Zahlen.
Ich lad das Sheet mal hoch im Blatt Kontoübersicht müssten die Zeilen gelöscht werden. Vielleicht hilft dir das weiter.
Danke
Gruss Roger
https://www.herber.de/bbs/user/55900.xls
Anzeige
AW: Zeile löschen wenn Formel kein übertrag macht
09.10.2008 09:49:00
Tino
Hallo,
so geht es, haben den Code an Deine Umgebung angepasst.
Sub test2()
Dim A As Long

With Application
  .ScreenUpdating = False
    For A = 210 To 9 Step -1
        If (Cells(A, "A").Value = 0 Or Cells(A, "A").Value = "") _
                    And Cells(A, "A").Formula <> "" Then
         Cells(A, "A").EntireRow.Delete
    End If
    Next A
  .ScreenUpdating = True
 End With
End Sub


Problem war, Deine Zellen wo nichts zu sehen ist haben als ergebnis 0 und Nullwerte sind ausgeblendet.
Gruß Tino

Anzeige
Super vielen Dank
09.10.2008 09:57:53
Roger
Hallo Tino
Besten Dank so klappts wunderbar.
Gruss
Roger
AW: Super vielen Dank
09.10.2008 10:15:43
Tino
Hallo,
sollte mal dein Zellbereich wesentlich größer werden, geht’s mit diesem Code viel schneller.
Sub Makro1()
Dim Bereich As Range
Dim lngCol As Long
With Application
 .ScreenUpdating = False
    Set Bereich = Range("A9:A210").SpecialCells(xlCellTypeFormulas, 23)
    lngCol = Columns.Count - Bereich.Column - 1
    Set Bereich = Bereich.Offset(0, lngCol)
    Bereich.FormulaR1C1 = "=IF(OR(RC1=0,RC1=""""),TRUE,"""")"
    On Error Resume Next 'sollte es keine entsprechende Zellen geben 
     Bereich.SpecialCells(xlCellTypeFormulas, 4).EntireRow.Delete
    On Error GoTo 0
 .ScreenUpdating = True
End With
End Sub


Gruß Tino

Anzeige

318 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige