Microsoft Excel

Herbers Excel/VBA-Archiv

Zeilen löschen | Herbers Excel-Forum


Betrifft: Zeilen löschen von: Andreas Müller
Geschrieben am: 27.11.2009 10:34:51

Hallo Gemeinde,

habe wieder einmal ein Problem,
Lösche mit diesem Makro den ich aus diesem Forum habe bestimmte Zeile,
funktioniert super.
Nun soll der Makro auch noch diese Zeilen löschen. Wenn in Spalte B nichts steht ,diese Zeile _ kompl.löschen, somit ich später diese Tabelle weiter bearbeiten kann.

Sub t()
Dim c As Range
Dim bereich As Range
Dim eingabe(10)
' löschzeilenwert festlegen 
eingabe(1) = "hierLöschText1"
eingabe(2) = "hierLöschText2"
eingabe(3) = "hierLöschText3"
'nicht mehr als 10, oder Dim eingabe(10) ensprechend ändern
For j = 1 To 10
Set bereich = Sheets(1).UsedRange
    For Each c In bereich
            If c = eingabe(j) And eingabe(j) <> "" Then
                  reihe = c.Row
                  spalte = c.Column
                  Rows(reihe).Delete
            End If
    Next c
Next j
End Sub

Wäre euch sehr dankbar für die Hilfe,
Wünsche ein schönes WE.
Schöne Grüße Andreas

  

Betrifft: AW: Zeilen löschen von: Rudi Maintaire
Geschrieben am: 27.11.2009 11:22:22

Hallo,
ich glaube nicht, dass das vernünftig läuft, da man eigentlich immer von unten löscht.

Trotzdem:
If c = eingabe(j) And eingabe(j) <> "" Or Cells(c.Row, 2)="" Then

Gruß
Rudi


  

Betrifft: AW: Zeilen löschen von: Andreas Müller
Geschrieben am: 27.11.2009 11:49:08

Hallo Rudi,

danke für deine Hilfe, an welcher Stelle muss ich denn diese Zeile einfüge.

Gruß Andreas


  

Betrifft: AW: Zeilen löschen von: Detlef
Geschrieben am: 27.11.2009 11:58:48

Hallo Andreas,

ein weiterer Ansatz.

Modul Modul1

 
Sub t() 
    Dim c As Range 
    'Dim bereich As Range 
        Dim objBereich As Range 
        Dim objZelle  As Range 
     
     
    Dim eingabe(10) 
    ' löschzeilenwert festlegen 
    eingabe(1) = "hierLöschText1" 
    eingabe(2) = "hierLöschText2" 
    eingabe(3) = "hierLöschText3" 
    'nicht mehr als 10, oder Dim eingabe(10) ensprechend ändern 
    For j = 1 To 10 
    Set objBereich = Sheets(1).UsedRange 
        For Each c In objBereich 
                If c = eingabe(j) And eingabe(j) <> "" Then 
                      reihe = c.Row 
                      spalte = c.Column 
                      Rows(reihe).Delete 
                End If 
        Next c 
    Next j 
     
    'ab hier wird über die Funktion ZELLELEER geprüft und ggf. gelöscht 
    If Not (objBereich Is Nothing) Then 
        For Each objZelle In objBereich.Cells 
            If Zelleleer(objZelle) Then 
                objZelle.EntireRow.Delete 
            End If 
        Next objZelle 
    End If 
 
End Sub 
 
Function Zelleleer(objZelle As Range) As Boolean 
    If (objZelle.Value = Empty) And _
        ((Trim(objZelle.Value) = "") And _
        (objZelle.Formula = "")) Then 
        Zelleleer = True 
    Else 
        Zelleleer = False 
    End If 
End Function 
 
 



Gruß Detlef


  

Betrifft: AW: Zeilen löschen von: Andreas Müller
Geschrieben am: 27.11.2009 13:10:08

Hallo Rudi und Detlef,

ich danke euch das ihr mit geholfen habt, habe mit noch eine andere Lösung einfallen lassen.


Wünsche euch ein schönes WE.

Schöne Grüße Andreas


Beiträge aus den Excel-Beispielen zum Thema "Zeilen löschen"